BGT import 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

17 thoughts on “BGT import plugin”

  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

  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 Tim,

            Je vraag is erg algemeen. Wellicht kun je deze wat preciezer stellen?

            Vriendelijke groet, MArco

          3. 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

Leave a Reply to aleks Cancel reply

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

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>