De QGIS BGT plugin

The Dutch Basisregistratie Grootschalige Topografie (BGT) is exchanged via gml.
Unfortunately the used gml application schema is quite involved and leads to incomplete imports in QGIS.
The BGT-import plugin is now available so that the gml files can be imported correctly.
To illustrate the point two screen shots (one wrong, and one right):
selection_276 selection_275

Join the Conversation

46 Comments

  1. Handig die plugin bedankt. Ik heb nog wel een andere vraag: Ik wil dit vervolgens omzetten naar dxf om de pdok in te lezen in microstation maar het exporteren lukt me niet. De DXF kan microstation niet inlezen. Wat doe ik verkeerd?

    1. Tja, .dxf is geen open standaard, met alle problemen van dien. Middels veel ‘reverse engineering’ moeten ontwikkelaars proberen de boel aan elkaar te knutselen. Dat gaat niet altijd goed.
      Mijn ervaringen zijn het best via ogr2ogr. Je zou kunnen proberen bijv. de _V.gml bestanden mbv ogr2ogr om te zetten naar .dxf. Eerst vanuit Qgis de laag opslaan als een shapefile, en daarna mbv ogr2ogr converteren naar .dxf is ook een kansrijke optie.

  2. Beste Marco,
    Hartelijk dank voor de plugin, deze is erg handig. Kan het zijn dat er bij de ‘scheiding’ iets mis gaat? In het gebied wat ik aan het testen ben is er een polygoon van een geluidsscherm (vlak), met daarin een hartlijn (lijn). De GML wordt netjes gesplitst in _L en _V alleen het lijnen-bestand (_L) geeft zowel de omtrek van de polygoon als de hartlijn, terwijl ik hier alleen de hartlijn zou verwachten.
    Alvast bedankt voor de reactie!

    1. Gerbert,
      Er kan natuurlijk altijd iets misgaan. Maar dan zou het mis moeten gaan in ogr, de bibliotheek die in QGIS alle vectordata inleest. En ogr is wel erg goed …
      Weet je zeker dat in het lijnen bestand zowel een vlak als een lijn zit? Is het niet de omtrek (begrenzing) zowel als de hartlijn. Dat zouden in beide gevallen lijnen zijn, en technisch klopt het dan. Of dat ook is wat je wilt weet ik niet.

      1. Beste Marco,
        Er lijken twee dingen mis te gaan:
        – Op sommige plekken is er inderdaad zowel een omtreklijn als een hartlijn aanwezig. Dat zit dus gewoon in de BGT zelf. Volgens mij heeft de bronhouder dat niet goed gedaan, maar daar kan de plugin niets aan doen.
        – Maar met de bestanden zelf lijkt ook iets niet goed te gaan. In QGIS splitst de plugin de bestanden netjes naar _L en _V, maar ik gebruik deze bestanden om ze in te lezen in een ander softwarepakket. Daar wordt ook onderscheid gemaakt in lijnen en vlakken. Maar als ik het vlakken bestand in dat pakket inlees, worden er veel meer vlakken geladen dan in QGIS (op plekken waar in QGIS alleen een lijn aanwezig is). Als ik het vlakken bestand uit QGIS exporteer naar shape en die vervolgens in mijn softwarepakket inlaadt, gaat het wel goed. Kan het zijn dat er op dit punt toch een foutje in de GML zit? Voor andere BGT lagen gaat het namelijk wel goed.

        1. Beste Gerbert,
          De plugin verandert aan de .gml bestanden niets. De enige reden dat er een _L en een _V gemaakt wordt is dat er dan een _L.gfs of _V.gfs bestand naast gezet kan worden. In de .gfs bestanden wordt door de plugin de info geschreven die door ogr gebruikt wordt om de gml goed in QGIS in te lezen.
          Blijkbaar gebruikt jouw andere software-pakket geen ogr om de gml in te lezen. Dan werkt het dus niet. De plugin is dan ook bedoeld om de gml bestanden in QGIS in te lezen …

  3. Vanaf qgis 3 (nu nog 2.99) zal de gmlAS plugin voor qgis beschikbaar komen. Daarmee wordt het mogelijk om volledige application schema’s zoals BGT te openen in QGIS.
    De werking van gmlAS is gebaseerd op het automatisch aanmaken van een relationele database (postgres of sqlite) op basis van het xml schema document. Vervolgens wordt de GML ingelezen in de aangemaakte tabellen. Als gebruiker kun je vervolgens bepaalde tabellen als lagen aan de qgis view toevoegen en objecten bekijken en zelfs bewerken. Later kun je het bestand weer als een GML exporteren.
    Een interessante feature die ik wil noemen is de mogelijkheid om tabellen die na import toch geen data zouden gaan bevatten niet aangemaakt worden. Door de geneste structuur van veel application schemas is de hoeveelheid aangemaakte tabellen doorgaans erg groot. Hiermee houdt je dat een beetje in de perken.
    Je kunt meer lezen op
    https://github.com/BRGM/gml_application_schema_toolbox

    1. Beste Paul,
      Vandaag eens uitgeprobeerd hoe dat werkt met een stukje bgt en dan de pandenlaag.
      De wizard neemt je mooi mee door het proces. Na lang wachten (logisch) worden en netjes tabellen en lagen in het QGIS project gezet.
      Helaas zit de attribuutinformatie niet direct gekoppeld aan de geometrie. Het lijkt me logisch dat de attributen er dmv id’s en koppelingen eraan gekoppeld moeten worden. Helaas valt het niet mee om in het woud van tabellen de juiste koppeling aan te maken.
      Is het een idee als je eens beschrijft hoe je middels deze plugin op een bruikbare wijze de bgt kunt inlezen?

      1. Ha Marco, dank voor je PM, ik was deze post uit het oog verloren. Je reactie is een veelgehoord commentaar op de GML-AS plugin. Ik was zelf nog niet in de gelegenheid geweest om dit verder uit te zoeken. Heb vanavond wat onderzoek gedaan. Ik ben verder geen BGT expert, maar ik moet zeggen dat die opsplitsing in een 20-tal featuretypes die wel groot aantal klasses delen (uit citygml) geen optimale use case voor GMLAS is (je zou op zijn minst meerdere files tegelijk willen kunnen importeren). Voordat je alles op je scherm hebt moet je flink wat klikken. Een paar opmerkingen:
        – Op https://downloads.pdok.nl/embed.html kun je kiezen tussen GML en STUF. Ik ken de achtergrond van dat STUF formaat niet, het heeft niet eens een referentie naar een schema definitie.
        – Vreemd dat de GML’s op https://downloads.pdok.nl/embed.html geen srs informatie in zich dragen.
        – Als je postgis gebruikt als tijdelijk opslag formaat dan probeert de plugin wel degelijk links tussen tabellen op te slaan, echter om een bepaalde reden mislukt dit voor de BGT data. Dan zit er niks anders op dan handmatig een link te leggen tussen label en label-positie (wel leuk dat ze zelfs een draaiingshoek voor het label vastleggen).
        – PDOK biedt nu ook een beta WFS aan van de BGT. Het betreft echter een ‘platgeslagen’ WFS, dus niet volgens het imgeo model. Vreemd aan deze WFS is dat GMLAS een foutmelding geeft als je in 1 keer meerdere featuretypes probeert te laden.

  4. Beste,
    Ik gebruik de plugin om snel en makkelijk referentiekaartjes te maken. Nu staat er in de GML heel mooi huisnummers en straatnamen met een aanvullend veld ‘hoek’ erbij. Het lijkt er alleen op dat de plugin deze waardes niet goed leest, in ieder geval de huisnummers en hoek waardes komen er niet goed uit. Ik krijg getallen tussen haakjes zoals (1:22).
    Is er ergens een mogelijkheid om deze waardes wel goed in te lezen? Als ik de GML lees staan ze er wel gewoon in.
    Alvast bedankt!

    1. Beste Douwe,
      De plugin leest de gml bestanden niet in, maar helpt QGIS om de gml bestanden goed in te lezen door te vertellen waar welke informatie staat met betrekking tot de geometrie.
      Het probleem waar jij tegenaanloopt is een interessante. In de BGT is het zo ingeregeld dat sommige attributen meer dan 1 keer voor kunnen komen. Bijvoorbeeld bij tekst en hoek is dit het geval.
      Zodra QGIS merkt dat een attribuut meerdere keren voorkomt plaatst QGIS alle waarden in 1 kolom volgens de volgende systematiek:
      (aantal waarden:1e waarde, 2e waarde, 3e waarde, …).
      In jouw voorbeeld staat er dan (1:22) als er bij dat object maar 1 waarde is. Maar als je zoekt zul je ook objecten vinden met meer waarden. En dan staat er bijvoorbeeld: in het veld tekst de volgende waarde: (2:20,10-14).
      Dit betekent dat er dan twee nummeraanduidingsreeksen zijn; 1 met de waarde 20 en een met de waarde 10-14. In dat geval zijn er ook twee waarden in het veld hoek.
      Dat QGIS alle waarden in 1 veld plaats is misschien niet handig, maar er is ook niet echt een goed alternatief. Het alternatief om elke waarde in een aparte kolom te zetten gaat mis op het moment dat een attribuut vaak voor komt, of wanneer er veel meervoudig voorkomende attributen zijn. er ontstaan dan veel te veel kolommen.
      In jouw geval zou je ertoe over kunnen gaan om alleen de eerste waarde te gebruiken voor het labelen. Als je een slimme expressie gebruikt om te labellen, dan gaat dat wel lukken.
      Indien je hulp nodig hebt voor het opstellen van zo’n expressie kun je het altijd hier laten weten. Er is dan vast wel iemand die een voorbeeldje voor je heeft of in elkaar knutselt.
      Groet, MArco

      1. Hallo Marco,
        Bedankt voor je reactie, dit verduidelijkt mijn probleem. Het is mij met FME gelukt om de waardes eruit te halen.
        Ik heb echter nog een tweede vraag, het attribuut ‘hoek’ kent in veel gevallen meer dan één waarde. Ik verwacht er hier eigenlijk maar één. Heb jij hier wellicht een verklaring voor?
        Groeten, Douwe

        1. Beste Douwe,
          Het is mij niet zo duidelijk waarom je FME nodig hebt om de waardes eruit te halen. QGIS kan dat ook prima.
          Hoek kan meerdere waardes hebben indien er ook meerdere waardes voor de tekst zijn. Zo kan elke tekst met een andere hoek op de kaart worden gezet.
          Groet, MArco

          1. Beste Marco
            Ik ben nieuw met Qgis maar ben positief verrast wat er allemaal met deze opengis mogelijk is.
            Hierboven geef je aan dat je huisnummers (nar) met qgis
            kunt ontsluiten.
            Wil jij aangeven hoe je deze actie moet uitvoeren ?
            gr. Tim

          2. Beste Marco,
            Bedankt voor je antwoord. FME is zeker niet per se nodig maar ik kan er makkelijker de waardes uithalen dan dat ik met QGIS kan.
            Groeten, Douwe

  5. Beste Douwe,
    Je reactie was voor mij inspiratie om een nieuwe post te maken. Jouw probleem komt namelijk best vaak voor wanneer je een gml hebt ingelezen.
    Wellicht heb jij er ook iets aan.
    Vriendelijke groet, MArco

    1. Beste Jan,
      De plugin werkt onder QGIS 2.x.
      Eventueel kun je wel de bestanden eerst 1 keer inlezen met behulp van QGIS2.x.
      Daarna kun je de _P, _L, _V bestanden gewoon direct toevoegen aan QGIS 3.x. (Zie ook de help)
      MArco

  6. Beste Marco,
    Ik ben vrij nieuw met Qgis.
    Nu heb ik een bepaalt stukje kaart gedownload via PDOK.
    en heb nu de laatste dagen er last van dat alle lagen goed geladen worden op de laag BGT_Pand na.
    Hij laad hem wel in als een laag maar laad hem niet zien.
    wat kan ik hieraan doen ?
    Mvg

    1. Beste Joep,
      Tja, dat kan ik zo op afstand moeilijk beoordelen.
      Laad je wel de juiste laag? Dus die eindigend op _V.gml, _L.gml of _P.gml?
      Vriendelijke groet, MArco

      1. Beste Marco,
        Ik zal vanaf het begin vertellen wat ik doe.
        Ik download eerst via de PDOK site het geselecteerd stukje kaart.
        Dan open ik Qgis en ga ik met de BGT import naar het juiste mapje en laad allen bestanden in.
        Hierna komen pas de door u genoemde bestanden: _v.gml _l.gml en _p.gml tevoorschijn. dus die zijn dan gok ik nog niet ingeladen.
        Voorheen ( max week geleden ) kreeg ik dan elke laag perfect te zien en dus tot ong 3 werkdagen terug laat Qgis sommige lagen niet meer in de kaart zien.
        Ben na een beetje puzzelen wel achter gekomen dat ik ze tevoorschijn kan krijgen, als volgt:
        open eigenschappen van bijv. laag BGT_pand, tab algemeen en dan onder Ruimtelijk referentie systeem moet ik dan CRS selecteren en dan amersfoort aanklikken.
        Hierna verschijnen de vlakken/de laag wel weer in de kaart.
        hoop dat je zo genoeg info hebt.
        mvg Joep

        1. Beste Marco,
          Hier nog wat extra info.
          bij het inladen van alleen bgt_pand_v.gml
          krijg ik de foutmelding:
          ongedefineerd standaard naar CRS EPSG:4326 – WGS84.
          gok dat het hierop fout gaat.
          Mvg Joep

        2. Beste Joep,
          Als ik je goed begrijp heb je zelf de oorzaak gevonden.: het CRS moet ingesteld worden op “amersfoort” (EPSG:28992).
          Dat dit soms wel en soms niet expliciet moet worden aangegeven komt doordat het crs dat QGIS aanneemt standaard onder meer afhangt van het crs van de eerste laag die je aan je QGIS project toevoegt.
          Onder het menu Settings -> Options -> Crs (of in het NL Extra -> Opties (instellingen?) -> Crs) kun je instellen hoe QGIS zich gedraagt. Default voor projecten “EPSG:28992” (amersfoort) en bij nieuwe laag dan instellen “Project Crs” vind ik in de praktijk het prettigste werken.
          Vriendelijke groet, MArco

  7. Hi,
    De BGT heeft in de openbare_ruimte_label-, en de panden- laag een attribuut “tekst” en “hoek”. Welke geoprocessing tool in QGIS (of een andere applicatie) is in staat de waardes voor “hoek” zodanig te interpreteren dat de labels correct op de kaart verschijnen?
    Ik wil namelijk de gml bestanden inclusief een laag met labels (voor straatnamen, en huisnummers) omzetten naar CAD.

    1. Ha Charlaine,
      De BGT Import plugin in QGIS gaat er goed mee om indien je het eerste tabblad gebruikt.
      Eerst worden de labels uitgesplitst zodat er steeds maar 1 label en 1 hoek is.
      Eventueel kun je dan nog de field calculator gebruiken om de notaties als {1: 27.23} in het veld voor de hoek om te zetten naar 27.23.
      Daarna exporteren naar DXF.
      groet, MArco

      1. Hi Marco
        Bedankt voor je uitleg, maar ik weet niet zo goed wat je bedoeld met “het 1e tabblad”. Als ik de BGT Import plugin gebruik zie ik namelijk gewoon maar 1 schermpje/tabblad, en niet meer mogelijkheid op andere tabbladen. Ik mis dus de uitsplitsing van de labels.
        De plugin is in staat de data in te lezen, dat gaat allemaal prima. Maar als ik de gewenste datalagen converteer naar CAD, worden er lege bestanden aangemaakt voor bijvoorbeeld de openbare ruimte label laag omdat ik ergens een tussenstapje mis.

  8. Beste Marco,
    ik ben op moment bezig in Qgis 3.4.1 Madeira.
    ik heb Qgis zelf de BGT bestanden laten downloaden in invoegen,
    nu worden er in Qgis onder de laag wegdeel ook fietspad en voetpad gevoegd.
    is er ook een mogelijkheid dat als ik van Qgis naar DXF wil exporteren dat ook deze sublagen onder hun eigen naam komen ?
    als ik ze nu wil exporteren vallen ze onder de naam wegdeel.
    en hierdoor word het nogal lastig om in autocad deze lagen te verdelen kwa kleur/hatch.
    Mvg Joep

  9. Beste Joep,
    Als je eerst de fietspaden selecteert, en dan de laag exporteert kun je aangeven dat je alleen de geselecteerde objecten wilt exporteren.
    Je hebt dan een fietspaden-laag.
    Groet, MArco

  10. Hee Marco,
    ik snap niet helemaal wat je bedoelt, in het lagen venster aan de linker zijde staat er een vinkje in voetpad/fietspad maar zodra ik op exporteren naar DXF druk, zie ik daar alleen nog maar wegdeel aangevinkt staan in het nieuwe venster dat opent en alle andere sublagen die onder wegdeel vallen zie ik niet meer.
    Mvg

    1. Beste Joep,
      Via de tabel van de betreffende laag kun je met behulp van een expressie alleen de voetpaden selecteren. Als je daarna een export doet, kun je aanvinken dat je alleen de geselecteerde objecten wilt exporteren.
      Vriendelijke groet, MArco

      1. Hee Marco,
        ik denk dat ik weet wat je bedoelt.
        Dan zou ik dus alleen de laag voetpad krijgen zonder dat er wegdeel of fietspad bij zit.
        Ik heb dus eigenlijk alle lagen nodig maar onder de eigen naam zodat ze onafhankelijk in autocad te bewerken zijn.
        weet niet of dit ook mogelijk is ?
        Mvg Joep

        1. Beste Joep,
          Je wilt blijkbaar de QGIS BGT Import plugin als een soort importmodule voor Autocad gebruiken.
          Dat kan, wellicht zelfs succesvol, maar vraagt vaardigheden in QGIS die ik je niet via een reactieformulier op een blog post bij kan brengen.
          Met vriendelijke groet, MArco

          1. Hee Marco,
            Bedankt voor je reactie.
            heb je enig idee waar ik over zoiets misschien meer gevonden krijg ?
            maar het is dus niet zo makkelijk gedaan dat er meerdere wegdeel (sub)lagen worden geexporteerd i.p.v. onder dezelfde naam ?
            Mvg Joep

  11. Beste Joep,
    Je weet inmiddels hoe het moet. Het is alleen veel werk,
    Als je daar geen zin in hebt moet je gaan programmeren. Als je dat al kunt, kun je aan de gang met het python qgis cookbook. Anders moet je eerst leren programmeren.
    Vriendelijke groet, MArco

    1. Beste Marco,
      bedankt voor je snelle reacties.
      het is niet zo zeer de zin er niet voor hebben maar de tijd er niet voor.
      en het programmeer werk is misschien wel iets om inteduiken :).
      Mvg Joep

      1. Hoi Jeroen,
        Ik denk dat ik je kan helpen. Op het moment dat je de BGT data importeert met de plugin kun je in de eigenschappen van een laag zien waarop de symboollagen worden gebaseerd. In het geval van bijvoorbeeld de laag ‘wegdeel’ worden de verschillende sublagen gebaseerd op ‘function=…’.
        Op het moment dat je gaat exporteren ga je naar Project>Importeren/Exporteren>Export to dxf
        In het export scherm zie je de lagen verschijnen met daarnaast de kolom ‘Atribuutuitvoerlaag’. Daar kun je kiezen op welke regel de export de lagen exporteert. In het geval van de laag ‘wegdeel’ kun je dan ‘funcion’ kiezen. Als je nu de dxf opent in Autocad zijn alle sublagen aanwezig!

  12. De BGT-plugin werkt niet meer sinds 1 oktober. Kan er een update worden verwacht?

    Per 1 oktober zijn ‘oude’ productie- en bèta-downloadomgevingen voor BGT niet meer beschikbaar
    Per 1 oktober 2020 zijn, zoals eerder aangekondigd, de oude downloadomgevingen voor de BGT niet meer beschikbaar.
    Dit betekent dat per 1 oktober 2020 alle URL’s met BGT-downloadfunctionaliteit die beginnen met “https://downloads.pdok.nl/” en “https://download.pdok.io/” offline zijn.

    U wordt dan ook dringend verzocht om voor 1 oktober a.s. over te gaan naar de nieuwe productieomgeving.
    Na 1 oktober 2020 is alleen deze nieuwe productieomgeving beschikbaar voor BGT-downloads, via de volgende URL’s:

    – Voor de download-viewer: https://app.pdok.nl/lv/bgt/download-viewer/
    – Voor de download API: https://api.pdok.nl/lv/bgt/download/v1_0/ui/

  13. Hallo,

    De BGT plugin werkt goed, erg fijn! Ik wil de BGT ondergrond in Qgis (3.12) exporteren naar DXF. Dit gaat met alle lagen goed, maar de laag ‘wegdeel vlak’ wordt niet geëxporteerd. Als ik alleen deze laag naar DXF exporteer dan zie ik in Autocad een lege DXF. Dat is jammer, aangezien deze laag net zo cruciaal is om in de DXF te krijgen als alle andere lagen van de BGT. Is het bekend waardoor dit zou komen? Bij voorbaat dank, Tom

    1. Ik zou eerst kijken of de DXF data bevat (dus enige omvang heeft). Indien dat zo is, zou ik de leverancier van Autocad vragen waarom de gegevens niet worden getoond.

      Per slot van rekening is DXF geen open bestandsformaat, en kan de maker van een exportmodule daarom alleen maar raden waarom de data niet wordt ingelezen. Bij Autocad is er documentatie en broncode waarop ze dit kunnen nagaan.

      Als maker van de QGIS BGT-import plugin speelt dit zich allemaal geheel buiten mijn blikveld af. De import plugin zorgt ervoor dat de data goed QGIS IN gaat. Als dat niet het geval is, hoor ik dat graag.

Leave a comment

Your email address will not be published. Required fields are marked *