MarcoDuiker / QGIS_BGT_Import

The QGIS BGT Import plugin for importing Dutch BGT data.
Other
4 stars 1 forks source link

voorloop nullen in pand BAG identificatie missen #9

Closed Harm-Olthof closed 4 years ago

Harm-Olthof commented 4 years ago

Voorloopnullen in het veld identificatieBAGPND van de tabel PAND missen. Zie bijvoorbeeld de BAG identificaties van panden in de gemeente Groningen: deze beginnen met 14, terwijl de CBS-code 0014 is (de lengte van de identificatienummers is dus ook niet 16). Dit lijkt ook te gelden voor de andere BAG identificatie (samengestelde) velden.

MarcoDuiker commented 4 years ago

QGIS kent geen nummer formatting. Daarmee gaan de voorloopnullen verloren als QGIS het identificatieBAGPND veld als een nummer beschouwd.

Met de importdefinities zoals in bijgaande zip beschouwt QGIS het veld identificatieBAGPND als een string.

Zou je willen uitproberen of eea zo naar wens is. Pak bijgaande zip uit en plaats de in de folder van de BGT import plugin onder bgt_utils\gfs waarbij je dus een oudere versie van die bestanden vervangt.

pand_gfs.zip

Harm-Olthof commented 4 years ago

@MarcoDuiker, Dank voor de snelle reactie! Met deze gfs-bestanden is het type van het attribuut identificatieBAGPND string en zie ik idd voorloopnullen. (In de overige BAG-velden zoals identificatieBAGVBOLaagsteHuisnummer zie ik nog niet de juiste voorloopnullen.) Ik zou het wel fijn vinden als je de data typen zo dicht mogelijk brengt bij de formele BGT documentatie (Zie http://register.geostandaarden.nl/gmlapplicatieschema/imgeo/2.1.1/imgeo-simple.xsd of tabel 8.9.1 in de BGT catalogus) Daar staat al dat identificatieBAGPND een characterstring is. Is dat mogelijk in een toekomstige versie voor alle objecttypen en velden?

MarcoDuiker commented 4 years ago

Beste Harm,

Zeker is dat mogelijk. Het is wel veel werk.

Heb je wellicht zin om dat uit te voeren? Het is niet moeilijk ;-).

Harm-Olthof commented 4 years ago

Beste Harm,

Zeker is dat mogelijk. Het is wel veel werk.

Heb je wellicht zin om dat uit te voeren? Het is niet moeilijk ;-). Tuurlijk. Ik ga er naar kijken

MarcoDuiker commented 4 years ago

Fijn, dank je wel.

Het werk is niet heel moeilijk. Als je een .gfs bestand opent (in de folder bgt_utils\gfs) in een teksteditor zie je zoiets als:

    <PropertyDefn>
      <Name>creationDate</Name>
      <ElementPath>creationDate</ElementPath>
      <Type>String</Type>
      <Width>10</Width>
    </PropertyDefn>
    <PropertyDefn>
      <Name>LV-publicatiedatum</Name>
      <ElementPath>LV-publicatiedatum</ElementPath>
      <Type>String</Type>
      <Width>23</Width>
    </PropertyDefn>
    <PropertyDefn>
      <Name>relatieveHoogteligging</Name>
      <ElementPath>relatieveHoogteligging</ElementPath>
      <Type>Integer</Type>
    </PropertyDefn>
    <PropertyDefn>
      <Name>inOnderzoek</Name>
      <ElementPath>inOnderzoek</ElementPath>
      <Type>String</Type>
      <Width>5</Width>
    </PropertyDefn>
    <PropertyDefn>
      <Name>tijdstipRegistratie</Name>
      <ElementPath>tijdstipRegistratie</ElementPath>
      <Type>String</Type>
      <Width>23</Width>
    </PropertyDefn>
    <PropertyDefn>
      <Name>namespace</Name>
      <ElementPath>identificatie|NEN3610ID|namespace</ElementPath>
      <Type>String</Type>
      <Width>8</Width>
    </PropertyDefn>
    <PropertyDefn>
      <Name>lokaalID</Name>
      <ElementPath>identificatie|NEN3610ID|lokaalID</ElementPath>
      <Type>String</Type>
      <Width>38</Width>
    </PropertyDefn>
    <PropertyDefn>
      <Name>bronhouder</Name>
      <ElementPath>bronhouder</ElementPath>
      <Type>String</Type>
      <Width>5</Width>
    </PropertyDefn>
    <PropertyDefn>
      <Name>bgt-status</Name>
      <ElementPath>bgt-status</ElementPath>
      <Type>String</Type>
      <Width>8</Width>
    </PropertyDefn>
    <PropertyDefn>
      <Name>plus-status</Name>
      <ElementPath>plus-status</ElementPath>
      <Type>String</Type>
      <Width>10</Width>
    </PropertyDefn>
    <PropertyDefn>
      <Name>identificatieBAGPND</Name>
      <ElementPath>identificatieBAGPND</ElementPath>
      <Type>String</Type>
      <Width>16</Width>
    </PropertyDefn>
    <PropertyDefn>
      <Name>tekst</Name>
      <ElementPath>nummeraanduidingreeks|Nummeraanduidingreeks|nummeraanduidingreeks|Label|tekst</ElementPath>
      <Type>StringList</Type>
    </PropertyDefn>
    <PropertyDefn>
      <Name>hoek</Name>
      <ElementPath>nummeraanduidingreeks|Nummeraanduidingreeks|nummeraanduidingreeks|Label|positie|Labelpositie|hoek</ElementPath>
      <Type>RealList</Type>
    </PropertyDefn>
    <PropertyDefn>
      <Name>identificatieBAGVBOLaagsteHuisnummer</Name>
      <ElementPath>nummeraanduidingreeks|Nummeraanduidingreeks|identificatieBAGVBOLaagsteHuisnummer</ElementPath>
      <Type>RealList</Type>
    </PropertyDefn>
    <PropertyDefn>
      <Name>identificatieBAGVBOHoogsteHuisnummer</Name>
      <ElementPath>nummeraanduidingreeks|Nummeraanduidingreeks|identificatieBAGVBOHoogsteHuisnummer</ElementPath>
      <Type>RealList</Type>
    </PropertyDefn>
    <PropertyDefn>
      <Name>eindRegistratie</Name>
      <ElementPath>eindRegistratie</ElementPath>
      <Type>String</Type>
      <Width>23</Width>
    </PropertyDefn>
    <PropertyDefn>
      <Name>terminationDate</Name>
      <ElementPath>terminationDate</ElementPath>
      <Type>String</Type>
      <Width>10</Width>
    </PropertyDefn>

Het werk is nu om steeds het Type element goed in te vullen. En als het een string betreft de juiste Width. Bij een veld met voorloopnullen moet de Width exact kloppen. Bij andere velden moet Width in ieder geval groot genoeg zijn om elke voorkomende waarde kwijt te kunnen.

De .gfs bestanden die je nu ziet zijn gegenereerd door QGIS (ogr). Ik heb daar nog niet op ingegrepen, anders dan de locatie van het geometrie element.

MarcoDuiker commented 4 years ago

Beste Harm,

Ik ga binnen enkele dagen een update uitbrengen. Is jouw werk dan zover dat het mee kan?

MarcoDuiker commented 4 years ago

Inmiddels is de nieuwe update uitgebracht.

Daarin zitten nieuwe gfs bestanden, waarbij alle geometrie wordt gedwongen naar het multi-type. Let dus op als je al een deel hebt gedaan. Indien je nog niks hebt gedaan, dan graag versie 3.13 of nieuwe gebruiken.

MarcoDuiker commented 4 years ago

Inmiddels heb ik ook alle datatypen aangepast, behalve de datum-tijd velden. Die heb ik op string laten staan. @Harm Kun je eens kijken of eea zo naar wens is. Daarvoor moet je master uit github gebruiken, niet de plugin zoals in de QGIS plugin repo.

Harm-Olthof commented 4 years ago

@MarcoDuiker ik was de afgelopen weken op vakantie, dus ik heb nog nergens naar kunnen kijken. En waarschijnlijk kom ik er pas volgende week aan toe. Maar mooi dat jij gewoon door bent gegaan ;-) Heb je ooit al geprobeerd met ogr2ogr het xsd bestand (met --oo parameter) mee te geven? Wellicht dat dan al de goede gfs-bestanden worden gegenereerd.

MarcoDuiker commented 4 years ago

Ik heb geen goede ervaringen met her verwerken van Nederlandse data mbv applicaties die het schema daarbij gebruiken.

Uiteindelijk heb ik mbv een xpath query alle datatypen voor de velden opgevist en via zoeken in de gfs gekeken of het juiste type gebruikt werd. Ging best nog snel.

Uiteindelijk heb ik besloten de datums-tijd velden als strings te behouden. Wellicht ga ik daar in de toekomst nog wat aan doen, als daar behoefte aan is.

Harm-Olthof commented 4 years ago

XPath is idd geweldig! datum-tijd velden zijn ISO8601, dus strings passen denk ik idd beter.

MarcoDuiker commented 4 years ago

closed by 3.14