Voorverwerken BGT voor import in OSM

Sinds ik dit topic heb gelezen en dingen aan het bijwerken ben denk ik regelmatig, zou dat niet kunnen door een BGT object te gebruiken in plaats van het bestaande OSM object uit te lijnen of zelf overtekenen van de BGT omtrekgericht.

Mijn doel is om te beginnen was simpel, gewoon één OSM object vervangen door de BGT shape.

Screenshot_20231119_110902

De eerste stappen heb ik gezet:

  • Een BGT GML extract gemaakt via PDOK download viewer voor het gebied waarin ik geïnteresseerd ben
  • De BGT_extract.zip uitgepakt
  • Dat levert 35 *.gml files op, de 6 grootste:
bgt_wegdeel.gml
bgt_pand.gml
bgt_begroeidterreindeel.gml
bgt_onbegroeidterreindeel.gml
bgt_vegetatieobject.gml
bgt_put.gml

Op basis van de openingspost begroeidterreindeel in QGis geopend, Open Data Source Manager (Ctrl+L) en daar onder Source bgt_begroeidterreindeel.gml als Vector Dataset opgegeven. Na “Add” en inzoomen levert dat op:

Screenshot_20231119_111713

Dat komt prima overeen.

NB: Bij de PDOK download kan je ook ook de download beperken tot begroeidterreindeel alleen.

QGis gebruikt onder water OGR on dingen te lezen, voor de volgende stap:

Commando:

> python3 -m ogr2osm -e 28992 bgt_begroeidterreindeel.gml
Using default translations
Preparing to convert 'bgt_begroeidterreindeel.gml' to 'bgt_begroeidterreindeel.osm'.
Warning 1: Unrecognized geometry type : -2147483648
Unhandled geometry, type 10
<repeated 2170 times>
Unhandled geometry, type 10
Splitting long ways
Writing file header
Writing nodes
Writing ways
Writing relations
Writing file footer

Daarmee krijg ik een .osm file en als ik die in Josm laadt dan zijn redelijk wat objecten daar maar niet het object dat overeen komt het het OSM object dat ik wilde bijwerken. Even gekeken wat dat type 10 is maar dat is type CURVEPOLYGON dus daar ook maar ondersteuning voor toegevoegd. Verder een SimplifyPreserveTopology toegevoegd om “3. Puntdichtheid BGT” zoals genoemd in de openingspost te verlagen.

Verder op basis de tabel van de openingspost en de waarden die voorbij kwamen een translation subclass aangemaakt, die ook BGT objecten met een “eindRegistratie” datum verwijderd.

Daarmee krijg je een .osm file:

Ziet er goed uit wat mij betreft.

Wel zie ik nog objecten die in OSM als één object horen bestaan regelmatig uit meerdere BGT objecten bijv. de twee rood geselecteerde objecten. Op te lossen met Josm Join overlapping Areas (Shift-J) maar BGT omtrekgericht heeft daar geen last van en die functionaliteit zou ook door het script gedaan moeten worden.

Daarna is het nog steeds te vraag wat een goede Josm werkwijze is. Je kan dat .osm bestand als aparte laag openen maar je wilt zeker niet die objecten zomaar opladen. Kopiëren naar een andere laag kan maar dan blijft wel de shape maar niet de locatie niet behouden.

Wat ik nu heb gedaan is in de nieuwe laag de bestaande OSM data downloaden, dan de objecten vervangen met Replace Geometry en dan de vier bijgewerkte objecten en drie nieuwe objecten geselecteerd en daarna Upload selection, resultaat.

Verre van een makkelijke werkwijze en ik denk te makkelijk om fouten te maken. Ik zou veel liever BGT objecten in de huidige edit laag laden of een object selecteren en dan “replace by BGT geometry” uitvoeren.

2 Likes