BAGimport via ODS plugin

From OpenStreetMap Wiki
Jump to: navigation, search


OpenStreetMap - BAG import Nederland

VOER EEN BAG IMPORT ALLEEN UIT ALS JE ERVARING HEBT MET JOSM. Werk bij je eerste BAG import met een klein gebied (maximaal 100 huizen). Voor vragen kun je op het NL Forum terecht: [1]

Note: This page is entirely in Dutch as it is only relevant for Dutch OSM mappers and we'd like to have the level of understanding as high as possible as it is a complicated process.

STAP 0. Eenmalige voorbewerking

  1. Verplicht: maak een speciaal useraccount aan bestaande uit je <username_BAG>. Optioneel: gebruik hetzelfde password als van je gewone useraccount.
  2. Zorg dat je Java versie 7.x gebruikt (de plugin werkt niet onder Java 6)
  3. Activeer in JOSM
    • de Expert Mode (via 'View' van Engelse versie)
    • de OpenStreetMap Mapnik WMS (via 'Preferences' en add WMS)
    • de BAG panden WMS (via 'Preferences', http://geodata.nationaalgeoregister.nl/bag/wms?, add WMS, layer: pand)
    • de plugin mirrored_download (via 'Preferences')
    • de plugin utilsplugin2 (via 'Preferences')
  4. Installeer de ODS plugin[1]:
    1. Selecteer de inhoud van …\BAG\BAG\bag-plugin-0.5.x
    2. Kopieer de bestanden ods-bag.jar en opendataservices.jar naar
      • Windows: C:\Users\USERNAME\AppData\Roaming\JOSM\plugins[2]
      • Linux: /home/USERNAME/.josm/plugins
      • Mac OS X: /Users/USERNAME/.josm/plugins
    3. Maak in bovenstaande directory een subdirectory met de naam ods-bag aan.
  5. Start JOSM en activeer de plugin, zoek in Preferences -> Plugins naar ods-bag en opendataservices, vink beide aan en klik OK.
  6. Maak in JOSM de volgende vier filters aan en stel ieder filter in op basis van "Replace selection":
    • (building=yes tags:1) OR (building=yes source=* tags:2) OR (building=yes "3dshapes:ggmodelk" source tags:3) OR (building=yes type tags:2) OR (building=yes source type tags:3) OR (type:way landuse=construction AND construction=building)
    • ("addr:interpolation" OR "addr:street" OR "addr:housenumber") -bag:conversie -(amenity OR leisure OR shop OR office OR tourism OR name) -source:BAG
    • bag=conversie
    • nodes:20- building=*
  7. Zorg dat je de volgende vier windows activeert: Layers, Tags/Memberships, Validation Results en Filter



STAP 1. Contact opnemen met mappers en intekenen op de gemeentenlijst

Neem contact op met mappers die grote aantallen adressen (meer dan honderd) hebben ingevoerd in de woonplaats die je wilt importeren. Maak duidelijk dat je van plan bent een import te doen van adressen en gebouwen, waarbij zij of mee kunnen helpen of kunnen aangeven wat ze willen doen met de door hen ingevoerde adressen. En het zou natuurlijk helemaal mooi zijn als zij willen meehelpen door een gedeelte van de import uit te voeren. Het is binnen OSM normaal om een reactietijd van maximaal een week te geven.
Een hulpmiddel om andere mappers te vinden zijn de site Who is around me? en de site ITO map - recent edits (Gebruik de Layers button om te wisselen tussen periodes en fixups/edits). Ook de OSM inspector website kan aanwijzingen geven wie er in "jouw" gebied actief is. Breng deze actieve mapper op de hoogte middels een mailtje zodat deze weet dat er een import gaat plaatsvinden met BAG data.[2]

  • Er is een sorteerbare intekenlijst van alle gemeentes. Zet je naam op die lijst als je aan de slag gaat. Zo kunnen ook anderen zien wie daar bezig is en eventueel afstemmen wie wat doet.
  • Ldp en Cavit hebben gezorgd dat je op voortgang BAG import, na het selecteren van BAG import status als base layer, kunt zien wat er inmiddels is geïmporteerd.
  • Je kunt polygonen downloaden op BAG polygonen. Deze door Harry gemaakte weergave bevat alleen polygonen van de BAG importeerders die polygonen hebben aangeleverd waardoor de BAG import minder ver lijkt te zijn dan op de weergave van op tile.openstreetmap.nl



STAP 2. BAG panden en adressen voorzien van relevante bestaande data

  1. Om te voorkomen dat je delen van woonplaatsen niet importeert, is het meest handige om een importstrategie te bedenken per woonplaats op basis van de woonplaatsgrenzen, watergangen, doorgaande wegen en spoorlijnen. In deze stap worden daarvoor zogenoemde polygonen gebruikt. Woonplaatsen moet je daarvoor opknippen in stukken van bijvoorbeeld maximaal 5000 gebouwen en/of in stedelijk gebied circa één vierkante kilometer.
    • Trek een gesloten lijn (polygon) rond het gebied dat je wilt gaan importeren met behulp van de OpenStreetMap (Mapnik) WMS achtergrond (selecteer deze WMS in het menu Imagery). Je lijn mag geen gebouwen doorsnijden en je mag geen tag toevoegen aan deze lijn.
    • Controleer in de BAG WMS dat je lijn geen gebouwen doorsnijdt YouTube instructie
    • Sla de laag polygons.osm op in de map C:\Users\USERNAME\AppData\Roaming\JOSM\plugins\ods-bag (Windows) of /home/USERNAME/.josm/plugins/ods-bag (Linux).[3]

    Je mag deze polygonen nooit uploaden naar de OSM server, ook al wil JOSM graag dat je dat wel doet!!
    Open eventueel het bestand, verander upload='true' in upload='false' en open het opnieuw in JOSM.

  2. Selecteer de polygoon en download het gebied binnen de polygoon via de menuoptie ODS..[4]
  3. Draai de validator YouTube instructie op de laag ODS BAG[5]en los alle foutmeldingen op.
    • crossing buildings:
      • maak een node aan op een muur van het aanpalende gebouw en merge de nodes (beide selecteren en shortcut M gebruiken). [3]
      • bij een static_caravan mag alleen de opbouw (het gebouw) als building in OSM worden opgenomen.
    • building inside building:
      • bij een static_caravan mag alleen de opbouw (het gebouw) als building in OSM worden opgenomen. Kopieer alle tags van de landuse naar een nieuw getrokken lijn van de stacaravan en verwijder daarna de landuse.
      • bij ondergrondse parkeergarages moet je layer=-1 op de parkeergarage zetten.
      • bij op elkaar liggende (delen van) gebouwen moet je deze selecteren en SHIFT-J gebruiken zodat alle ref:bag codes worden behouden.
    • self-intersecting ways: verwijder het onjuiste deel van het gebouw [4]
    • ways with same position: selecteer de op elkaar liggende (delen van) gebouwen en merge deze door SHIFT-J gebruiken zodat alle ref:bag codes worden behouden.[5]
  4. Verwijder de 3dShapes panden die geen informatie bevatten YouTube instructie
    • Sommige gebouwen staan wel in 3dShapes, maar niet in de BAG. Die gebouwen willen we behouden. Doorzoek daarom in de laag OSM BAG handmatig industriële complexen op aanwezige opslagtanks, volkstuinen, bunkers en sportcomplexen (tribunes). Opslagtanks kun je vinden met het geïnverteerde filter 'nodes:20- building'. Voeg bij opslagtanks de tag man_made=storage_tank toe YouTube instructie, bij bunkers building=bunker en bij volkstuintjes building=shed. Volkstuinen herken je aan landuse=allotments, industriële complexen aan landuse=industrial. Let ook goed op in gebieden die tegen de Duitse of Belgische grens aanliggen: de 3dShapes data gaat verder de grens over dan de BAG data.
    • Activeer op de laag OSM BAG het geïnverteerde filter: (building=yes tags:1) OR (building=yes source=* tags:2) OR (building=yes "3dshapes:ggmodelk" source tags:3) OR (building=yes type tags:2) OR (building=yes source type tags:3) OR (type:way landuse=construction AND construction=building)
    • Selecteer vervolgens met je muis alle gebouwen.
    • Deselecteer nodes met SHIFT-U, om te voorkomen dat POI’s die op de rand van gebouwen zitten mee verwijderd worden.
    • Check in de tag lijst (dialoogvenster Tags / Memberships) dat hooguit de vijf tags building, 3dshapes:ggmodelk, source, landuse en construction in de selectie zijn opgenomen. Soms kom je een multipolygoon tegen, verwijder deze dan eerst handmatig om te voorkomen dat er in de database een lege relatie overblijft. YouTube instructie.
    • Verwijder de resterende selectie in het gebied dat je vervangt.
  5. Verwijder bestaande niet-BAG adressen YouTube instructie
    • Activeer op de laag OSM BAG het geïnverteerde filter ("addr:interpolation" OR "addr:street" OR "addr:housenumber") -bag:conversie -(amenity OR leisure OR shop OR office OR tourism OR name) -source:BAG.
    • Zet eventuele actieve "Address Tags Validator" stylesheet uit, anders licht de selectie niet op.
    • Check handmatig de resterende selectie en unglue POI’s die op de lijn interpolation zitten door eerst in te zoomen en dan de shortcut G te gebruiken. Voeg bij te behouden adressen de tag bag:conversie toe.
    • Selecteer alle adressen met je muis.
    • Check in de tag lijst (dialoogvenster Tags / Memberships) dat deze uitsluitend de tag addr: hebben. Als je een andere tag ziet, dan eerst oplossen door bijvoorbeeld te ungluen (toets G). Verwijder alle geselecteerde adressen in het gebied dat je vervangt.
  6. Merge de laag ODS BAG naar OSM BAG[6] YouTube instructie
  7. Draai de validator en los de crossing buildings [7] en crossing ways problemen (bijvoorbeeld achterpaden die door panden lopen) op. Gebruik de aanwijzingen hierna onder 'verwijderen/samenvoegen dubbele panden' (zoals het gebruik van CTRL-SHIFT-G) als je een pandcontour ziet met relevante en dus te behouden tags. Check ook de melding building inside building. Check handmatig kerkgebouwen (amenity=place_of_worship), de validator signaleert deze niet goed. Als je ergens twijfelt, voeg dan een fixme toe. (note=FIXME + fixme=omschrijf kort het probleem)
  8. Optioneel kun je ook andere foutmeldingen van de validator, niet gerelateerd aan de BAG import, oplossen zoals de duplicated nodes en duplicated ways.


    Verwijderen/samenvoegen dubbele panden YouTube instructie

    • Selecteer beide panden en merge dubbele panden met het merge gereedschap CRTL-SHIFT-G [8]
    • Controleer op dubbele value’s in een key, selecteer de te behouden waarde
    • Verwijder de tag bag:conversie als je de merge hebt doorgevoerd. Bij één POI/één gebouw mag je eventueel alle tags inclusief het adres op de outline zetten (CTRL-SHIFT-G), maar voeg dan de tag entrance=main toe bij de ingang[9]. Je mag er van uitgaan dat de BAG panden beter zijn gepositioneerd dan de Bing beelden, verschuif dus niet zomaar de BAG panden.
    • Let op bij samenvoegen op een multipolygon, zet in dit geval de extra informatie niet op het pandcontour maar open de relatie en voeg daar de aanvullende tags toe.
    • Herhaal dit zo vaak als nodig is.



STAP 3. Upload naar OSM server

Upload de data naar de OSM server met je _BAG useraccount. Gebruik een chunk size van 100 en als omschrijving Import BAG [gebied] en als source BAG [sourcedate[10]].
De chunksize kun je opgeven bij het uploadscherm onder het tabblad Advanced.
JOSMchunk.jpg

Om niet het risico te lopen onder een verkeerde gebruikersnaam te wijzigen kun je het best de optie save user and password uitvinken
JOSMcredentials.jpg
Nadat je op de Authenticatie hebt geklikt wordt er in brokken van 100 geupload. Dat kan best een aantal uren duren maar soms gaat er iets mis. Hieronder een aantal mogelijke fouten en oplossingen.

Failed to upload to changeset

Het kan gebeuren dat je na een aantal chunks van 100 deze melding krijgt.
Failedtoupload.jpg

Probeer dan nogmaals of je met de upload knop weer verder kunt. Als je dan een melding krijgt dat deze changeset al klaar is probeer het dan nogmaals maar wijzig iets in de omschrijving door bv het woord "2e poging" toe te voegen.

Failed to open a connection to the 'remote server

Klik op OK als je de melding ‘failed to open a connection to the 'remote server' krijgt tijdens het uploaden.
Als je een foutmelding krijgt over synchronisatie die niet met de door JOSM aangereikte methode is op te lossen, gebruik dan niet ‘cancel’ maar ‘upload each object individually’. Bij eventuele conflicten kun je in noodgevallen FILE -> Update selection toepassen. Het is normaal als de upload lang duurt, soms is het erg druk op de OSM server. Je kunt nu een volgend gebied in de woonplaats importeren (begin vanaf stap 2a)



STAP 4 Nabewerking

  1. Download minimaal een uur na afronding van je import via de optie 'Download from OSM mirror' het gebied dat je hebt geïmporteerd. Draai de validator en los met behulp van het commando 'fix' automatisch alle duplicated ways en building duplicated nodes op. Onder warnings kun je ook nog 'other duplicated nodes - duplicated nodes' tegenkomen. Los ook deze automatisch op. [11] Geef bij upload als omschrijving: "Validatortest" en als source: "Validator" mee

  2. Na één à twee dagen is de OSM inspector van Geofabrik bijgewerkt. Verbeter dan met de adresweergave van OSM inspector (nodes with addresses -> street not found) de mismatches tussen adressen en straten. In principe is de BAG naam juist. In OSM worden straatnamen echter voluit geschreven. Volg in die gevallen de OSM notitie en verander dan de adresnodes. Bijvoorbeeld: Dr. -> Dokter (en soms doctor), Burg. -> Burgemeester, Prof. -> Professor (zie Name_finder:Abbreviations#Nederlands_-_Dutch voor een complete lijst met afkortingen). Je kunt voor de schrijfwijze en de ligging van straten ook het NWB raadplegen via http://pdokviewer.pdok.nl. Het is aan te raden om bij twijfel een opmerking bij de kaart maken op osm.org




  1. Stuur even een mailtje naar osmned@gmail.com (Johan) om de plugin toegestuurd te krijgen. De java broncode, geschreven door Gertjan Idema, is te vinden op github josm-openservices
  2. In Windows moet je de verborgen bestanden zichtbaar maken via de verkenner, extra -> mapopties -> weergave
  3. Bij de eerste keer opslaan moet je deze directory nog selecteren. Als je een volgende keer de plugin start laadt hij de polygonen automatisch
  4. Incidenteel kan het druk zijn op de WFS server. Dat merk je als het downloaden heel lang duurt en/of foutmeldingen geeft. Een oplossing is om het een dag later nogmaals te proberen. De BAG WFS kan maximaal 15.000 objecten aan. Bij een te groot gebied zullen gebouwen en adressen ontbreken. Hou in stedelijk gebied een maximale omvang van één bij één vierkante kilometer aan per download. Een download via de API is begrensd op 50.000 objecten.
  5. Zet het groene vinkje voor de laag ODS BAG
  6. Gebruik hiervoor je rechtermuisknop op de laag ODS BAG. Als je een enkel adres of pand wilt toevoegen: vanuit de plugin kan mergen alleen met selecteren van objecten en CTRL-SHIFT-M (let op: die toetscombinatie kopieert geen multipolygonen)
  7. Soms heb je een pad dat onder een gebouw doorloopt. Dat gedeelte van het pad moet je dan taggen met tunnel=building_passage' en layer=-1. Een tweede mogelijkheid is dat je het pad onder het gebouw aan het pand knoopt, in dat geval heb je geen layer=.. tag nodig. Eventueel kun je het gebouw splitsen, waarbij je het gedeelte waar het pad onderdoor loopt layer=1 geeft. De melding building inside building verschijnt ook als er op een bestaande node, een tag: building=yes aanwezig is. Verwijder dan deze tag op de node
  8. Indien deze optie niet in het menu "more tools" heeft staat, dan is de plugin "utilsplugin2" niet geïnstalleerd
  9. Als je de ingang niet zeker weet kun je een fixme=entrance op de pandcontour zetten
  10. De sourcedate is de datum van de release van de BAG data, die regelmatig wordt bijgewerkt door het Kadaster. Je kunt die datum vinden op de panden en de adressen in je download van de BAG data. Voer deze datum op basis van het volgende format in: YYYY-MM-DD
  11. Al deze dubbele nodes en ways zijn in de OSM database terechtgekomen als gevolg van verstoringen tijdens de upload die het gevolg kunnen zijn van een slechte verbinding met de OSM server en mogelijk een tijdelijke overload op de OSM server.