OSM-dataimport på vindskydd i Sverige

Datakällor

Översikt på vindskydd.

Jag stötte på en karta med flera markerade vindskydd, ofta med utförliga kommentarer. Jag beslutade att importera de saknade noderna in i Openstreetmap.

Karta: https://www.google.com/maps/d/u/0/viewer?mid=1doLXXvokOtiMzthVz0SLFjEPmD4. Facebook-gruppen: https://www.facebook.com/groups/vindskyddinorden/

Databearbetning

Först behöver man “utvinna” informationen och konvertera den till en format som OSM kan tolka.

Men att importera noder betyder framförallt att jämföra dem med de befintliga noder så att inte skapa onödiga dubbletter. Processen kallas för “conflation”. Därför behöver man också gamla informationen tillgängligt.

Nytt datalager

  • Exportera punkter från Google-kartor som KML-filer. Om det ger komprimerade KMZ-filer behöver man eventuellt dekomprimera dem.
  • Konvertera KML via gpsbabel till OSM-formatet. Processen sparar koordinater, kommentarer och namn på samtliga noder.

Befintligt datalager

Conflation

Två noder anses vara identiska om dem ligger för nära till varandra. En sådan heuristisk strategi tillåter lösa de flesta dubbletterna om distanströskeln är noggrant vald.

Algoritmen ser ut såhär.

  • För varje punkt från det nya skicket och varje punkt från det befintliga skicket mäta distans mellan dem. Om distansen är mindre än tröskelvärdet, besluta att noderna är dubbletter.
  • För de överlevde nya noderna, sanera etiketter “name” och “note”, sedan lägg till nya väsentliga etiketter (som “amenity=shelter”, “source=*” och dylika).

Det obekraftade-lagret krävde mer manuellt arbete eftersom befintliga namn och anmärkningar oftast var generiska. Jag lade också “fixme”-etikett för dem.

Se skriptet för detaljer: https://github.com/grigory-rechistov/nmd-osm-tools/blob/master/conflate-nodes.py.

Resultat

Jag har lagt till några hundra tidigare saknade vindskydd på Sveriges område. OSM-datafilen: osm.gz.


Written by Grigory Rechistov in Uncategorized on 12.01.2020. Tags: vindskydd, osm, import,


Copyright © 2020 Grigory Rechistov