Nutzen von OpenStreetMap-Daten in GIS: Unterschied zwischen den Versionen

Aus Geoinformation HSR
Wechseln zu: Navigation, Suche
K (Überblick)
K
Zeile 14: Zeile 14:
 
** Flächen in OSM sind entweder geschlossene Ways (mit entsprechendem Tag, z.B. natural=water oder building=yes) oder sog. "Multipolygone", d.h. Relationen zu Ways (Testcases for converting OpenStreetMap data into GIS world formats: [https://github.com/nimix/osm_conv_tests])
 
** Flächen in OSM sind entweder geschlossene Ways (mit entsprechendem Tag, z.B. natural=water oder building=yes) oder sog. "Multipolygone", d.h. Relationen zu Ways (Testcases for converting OpenStreetMap data into GIS world formats: [https://github.com/nimix/osm_conv_tests])
  
Es gibt folgende Möglichkeiten aus Sicht GIS um OSM-Daten zu kommen
+
Es gibt folgende Möglichkeiten aus Sicht GIS um OSM-Daten zu kommen:
 
* OSM-Rohdaten exportieren (vgl. unten) und ein weiteres Tool verwenden um die Daten in ein GIS-Format zu konvertieren.
 
* OSM-Rohdaten exportieren (vgl. unten) und ein weiteres Tool verwenden um die Daten in ein GIS-Format zu konvertieren.
* Webdienste nutzen
+
* Direktes Exportieren mittels Webdienste
 
* Selber programmieren.
 
* Selber programmieren.
 
Direktes Exportieren mittels Webdiensten in verschiedene GIS-Formate, wie z.B. Spatialite, Shapefile, GeoJSON, KML etc.:
 
* [[OpenPOIMap]] - Webapplikation mit Preview, Download von Punktdaten direkt in verschiedene GIS-Formate, auch als [[WFS]]-Webservice (zurzeit auf Daten der Schweiz beschränkt).
 
* [[Overpass API]] (insbesondere Overpass Turbo) - selektiver Download von Daten aus der Hauptdatenbank von OSM (GeoJSON und Rohdaten)
 
* [http://www.osm974.re/osm2gis/ OSM2GIS] - Webapplikation mit direktem Download und optionaler Transformation in die Formate Shapefile, MapInfo, KML, GML, SQLite (beschränkt auf einen Bereich von der Breite des Zürichsees und eine Konversion alle 30 min.)
 
* [https://bitbucket.org/metrico/osm2web OSM2WEB (Repository)] - Python-basierter RESTfull Webservice mit einer Datenbankstruktur analog [[EOSMDBOne]] (osm2pgsql, PostGIS), der GeoJSON, KML und alle von OGR unterstützten Formaten zurückliefern kann. Soll auch für Webapplikationen geeignet sein (vgl. [http://lists.openstreetmap.org/pipermail/talk-lu/2012-December/000099.html] und die Tipps unten).
 
  
 
Vgl. dazu auch einzelne Beispiele unten.
 
Vgl. dazu auch einzelne Beispiele unten.
Zeile 68: Zeile 62:
 
* Osm2Csv - Converts an OSM planet file to files nodes.csv, ways.csv and waytags.csv (und dann...?).
 
* Osm2Csv - Converts an OSM planet file to files nodes.csv, ways.csv and waytags.csv (und dann...?).
 
* Osmxapi (siehe unten).
 
* Osmxapi (siehe unten).
 +
 +
Weitere:
 
* Ein OSM-zu-GML-Skript (XSLT), das dann weiter z.B. nach [[Shapefile]] verarbeitet werden kann, z.B. mit [[OGR]] und [[GeoConverter]]: Siehe [http://wiki.openstreetmap.org/index.php/Converting_OSM_to_GML]
 
* Ein OSM-zu-GML-Skript (XSLT), das dann weiter z.B. nach [[Shapefile]] verarbeitet werden kann, z.B. mit [[OGR]] und [[GeoConverter]]: Siehe [http://wiki.openstreetmap.org/index.php/Converting_OSM_to_GML]
 
* [http://wiki.openstreetmap.org/index.php/Planet.osm Osm2Csv] - Converts an OSM planet file to files nodes.csv (id,lat,lon,timestamp,taglist) and ways.csv (id,timestamp,taglist) and waytags.csv (way-id,key,value). It does not use more memory if planet.osm is larger. It uses Java and the MinXML parser.
 
* [http://wiki.openstreetmap.org/index.php/Planet.osm Osm2Csv] - Converts an OSM planet file to files nodes.csv (id,lat,lon,timestamp,taglist) and ways.csv (id,timestamp,taglist) and waytags.csv (way-id,key,value). It does not use more memory if planet.osm is larger. It uses Java and the MinXML parser.
Zeile 77: Zeile 73:
 
Vektordaten von OSM können in GIS genutzt werden, gegeben man hält die ODbL-Lizenz ein und kennt die Besonderheiten von [[OSM], d.h. das spezielle Geometrie- und Tags-Schema. Für den Download der ganzen Welt in diesem Format siehe [http://wiki.openstreetmap.org/wiki/Downloading_data 'Downloading Data'] im offiziellen OSM Wiki.
 
Vektordaten von OSM können in GIS genutzt werden, gegeben man hält die ODbL-Lizenz ein und kennt die Besonderheiten von [[OSM], d.h. das spezielle Geometrie- und Tags-Schema. Für den Download der ganzen Welt in diesem Format siehe [http://wiki.openstreetmap.org/wiki/Downloading_data 'Downloading Data'] im offiziellen OSM Wiki.
  
Es gibt inzwischen immer mehr Werkzeuge, mit denen man OSM-Daten selektieren (mind. räumlich) und als GIS-taugliches Format exportieren kann. Siehe dazu diese [[HowTo_OpenStreetMap#OSM-Daten_exportieren|HowTo OpenStreetMap-Seite]].
+
Es gibt inzwischen immer mehr Werkzeuge, mit denen man OSM-Daten selektieren (mind. räumlich) und als GIS-taugliches Format exportieren kann.  
 +
 
 +
Direktes Exportieren mittels Webdienste in verschiedene GIS-Formate, wie z.B. Spatialite, Shapefile, GeoJSON, KML etc.:
 +
* [[OpenPOIMap]] - Webapplikation mit Preview, Download von Punktdaten direkt in verschiedene GIS-Formate, auch als [[WFS]]-Webservice (zurzeit auf Daten der Schweiz beschränkt).
 +
* [[Overpass API]] (insbesondere Overpass Turbo) - selektiver Download von Daten aus der Hauptdatenbank von OSM (GeoJSON und Rohdaten)
 +
* [http://www.osm974.re/osm2gis/ OSM2GIS] - Webapplikation mit direktem Download und optionaler Transformation in die Formate Shapefile, MapInfo, KML, GML, SQLite (beschränkt auf einen Bereich von der Breite des Zürichsees und eine Konversion alle 30 min.)
 +
* [https://bitbucket.org/metrico/osm2web OSM2WEB (Repository)] - Python-basierter RESTfull Webservice mit einer Datenbankstruktur analog [[EOSMDBOne]] (osm2pgsql, PostGIS), der GeoJSON, KML und alle von OGR unterstützten Formaten zurückliefern kann. Soll auch für Webapplikationen geeignet sein (vgl. [http://lists.openstreetmap.org/pipermail/talk-lu/2012-December/000099.html] und die Tipps unten).
  
 
Nachfolgend ein Beispiel '''"Rollstuhlparkplätze der Schweiz"''':  
 
Nachfolgend ein Beispiel '''"Rollstuhlparkplätze der Schweiz"''':  

Version vom 10. Februar 2013, 01:53 Uhr

Wichtige Weblinks:

Auf dieser Seite werden Anwendungsbeispiele mit Arbeitsabläufen (Workflow) mit Szenarien gezeigt, um Daten von OpenStreetMap (OSM) in GIS als Vektordaten-Layer oder als Geo-Webservice für Karten nutzen zu können. Die Hauptbeteiligten sind u.a. technische Sachbearbeiter CAD-Operateure, Raumplaner, Landschaftsplaner, Naturschützer oder Förster.

Überblick

Folgendes ist wichtig für das Verständnis von OpenStreetMap-Daten:

  • Das Datenschema ist nur lose vorgegeben; dafür gibt es die sog. Tags.
  • Die Geometrie besteht aus einem topol. Netzwerk mit Nodes und Way (keine eigentlichen Areas/Polygone):
    • Linien (Ways) verweisen auuf Nodes (haben selber also keine Koordinaten).
    • Flächen in OSM sind entweder geschlossene Ways (mit entsprechendem Tag, z.B. natural=water oder building=yes) oder sog. "Multipolygone", d.h. Relationen zu Ways (Testcases for converting OpenStreetMap data into GIS world formats: [1])

Es gibt folgende Möglichkeiten aus Sicht GIS um OSM-Daten zu kommen:

  • OSM-Rohdaten exportieren (vgl. unten) und ein weiteres Tool verwenden um die Daten in ein GIS-Format zu konvertieren.
  • Direktes Exportieren mittels Webdienste
  • Selber programmieren.

Vgl. dazu auch einzelne Beispiele unten.

OSM-Rohdaten exportieren

Es gibt folgende Export-Möglichkeiten inkl. Webservices für das Rohdaten-Format von OSM (RAW OSM-XML), d.h. in OSM-Datenstruktur:

  • XAPI-basierte Webservices: Siehe v.a. den XAPI URL Builder mit entsprechendem Osmosis-Befehl für das Overpass-API, das jxapi.openstreetmap.org und für rabler.ru (die MapQuest-Daten seien alt).
  • Die Startseite von OpenStreetMap hat eine Export-Funktion im OSM/XML-Format (reiner Download).
  • Mit derJOSM-Desktopapplikation gibt es einen Export nach OSM/XML.
  • OpenStreetMapData.com - Speziell geeignet für die Extraktion für Länder-, Gewässer- und Küsten-Grenzen der Welt.

Zuerst eine .OSM-Datei in ein lokales Verzeichnis kopieren, d.h.

  1. Kleinere Bereiche können online über die OSM-Startseite (d.h. das API) heruntergeladen werden.
  2. Grössere Ausschnitte können über Webdienste oder die JOSM-Desktopapplikation als OSM/XML oder direkt in einem GIS-Format exportiert werden (vgl. unten).
  3. Ansonsten gibt es noch ganze vorbereitete Datensätze...
    1. solche die in Mirrors mit Snaphsots nach Kontinent und Land geordnet angeboten werden. Siehe Planet.osm Snapshots. ### Bereits aufbereitete Shapefiles herunterladen von Geofabrik: Siehe OSM#OSM_zu_Shapefiles_konvertieren
    2. Der gesamte OSM-Datensatz kann ebenfalls über Planet.osm Snapshots heruntergeladen werden.

Dann muss man die Daten in ein GIS-Format konvertieren (z.B. mit OGR oder GeoConverter), falls die Daten im OSM/XML-Format sind. Man beachte auch, dass man die Daten direkt analysieren kann, vgl. dazu unten HowTo_OpenStreetMap#OSM-Daten_analysieren oder das PostGIS-Terminal.

Tipps zu OSM-Daten exportieren:

Tipp 1: Das Overpass-API ist ein schnelles und aktuelles API für den Online-Zugriff/Export von OSM-Daten (ganzer Planet); siehe dazu XAPI, den XAPI URL Builder und die Overpass API-Doku..

Tipp 2: Es gibt eine OSM2WEB-Instanz [2] auf http://www.gis-hosting.lu/examples/de/ (ganzer Planet). Hier ein Beispiel mit folgenden 'Parametern' (z.T. als URL-Subdirectories):

  • Geometrie = points
  • Exportformat = GeoJSON
  • bbox = (Region Zürichsee min/max im selben SRID wie der SRID-Parameter,
  • SRID = 4326 (d.h WGS84, Default SRID/CRS ist EPSG 3857/9009l3)
 Beispielaufruf: http://www.gis-hosting.lu/osm2web/export/points/amenity/hospital.geojson?bbox=8.420,47.072,9.088,47.431&srid=4326 (*)

Tipp 3: Mit OpenPOIMap kann man die OSM-Daten mit einer eigenen Query abfragen und direkt als Webservice (WFS) in einer Web- oder Desktopapplikation betrachten und analysieren. Ist jedoch nur auf die Schweiz beschänkt.

OpenStreetMap-Daten in ein GIS-Format konvertieren

Die meisten der folgenden Konverter werden im SVN-Repository des OSM-Projekts verwaltet:

  • osm2pgsql - Ein OSM-Daten to PostgreSQL/PostGIS-DB Converter und Loader. Siehe OSM-Technisches.
  • Osmosis - Importiert OSM planet files (OSM, MySQL, PostgreSQL). Siehe OSM-Technisches.
  • Osm2Csv - Converts an OSM planet file to files nodes.csv, ways.csv and waytags.csv (und dann...?).
  • Osmxapi (siehe unten).

Weitere:

  • Ein OSM-zu-GML-Skript (XSLT), das dann weiter z.B. nach Shapefile verarbeitet werden kann, z.B. mit OGR und GeoConverter: Siehe [3]
  • Osm2Csv - Converts an OSM planet file to files nodes.csv (id,lat,lon,timestamp,taglist) and ways.csv (id,timestamp,taglist) and waytags.csv (way-id,key,value). It does not use more memory if planet.osm is larger. It uses Java and the MinXML parser.
  • SQLite/SpatiaLite mit Hilfe der SpatiaLite-Tools 'spatialite_osm_map' und QGIS
  • FME

OpenStreetMap-Daten direkt als GIS-Formate herunterladen

Vektordaten von OSM können in GIS genutzt werden, gegeben man hält die ODbL-Lizenz ein und kennt die Besonderheiten von [[OSM], d.h. das spezielle Geometrie- und Tags-Schema. Für den Download der ganzen Welt in diesem Format siehe 'Downloading Data' im offiziellen OSM Wiki.

Es gibt inzwischen immer mehr Werkzeuge, mit denen man OSM-Daten selektieren (mind. räumlich) und als GIS-taugliches Format exportieren kann.

Direktes Exportieren mittels Webdienste in verschiedene GIS-Formate, wie z.B. Spatialite, Shapefile, GeoJSON, KML etc.:

  • OpenPOIMap - Webapplikation mit Preview, Download von Punktdaten direkt in verschiedene GIS-Formate, auch als WFS-Webservice (zurzeit auf Daten der Schweiz beschränkt).
  • Overpass API (insbesondere Overpass Turbo) - selektiver Download von Daten aus der Hauptdatenbank von OSM (GeoJSON und Rohdaten)
  • OSM2GIS - Webapplikation mit direktem Download und optionaler Transformation in die Formate Shapefile, MapInfo, KML, GML, SQLite (beschränkt auf einen Bereich von der Breite des Zürichsees und eine Konversion alle 30 min.)
  • OSM2WEB (Repository) - Python-basierter RESTfull Webservice mit einer Datenbankstruktur analog EOSMDBOne (osm2pgsql, PostGIS), der GeoJSON, KML und alle von OGR unterstützten Formaten zurückliefern kann. Soll auch für Webapplikationen geeignet sein (vgl. [4] und die Tipps unten).

Nachfolgend ein Beispiel "Rollstuhlparkplätze der Schweiz":

  • Das Tagging-Schema dafür ist
 "amenity=parking" - und (logisch) 
 "capacity:disabled" ~* "[0-9]|yes|unknown" (das ist rechts ein sog. "regulärer Ausdruck"). 
 (es gibt nicht nur "capacity:disabled=yes" sondern auch "capacity:disabled=2" etc.) 

Variante A PostGIS-Terminal

1. Aufrufen von http://labs.geometa.info/postgisterminal, dann Copy&Paste folgender SQL-Anfrage in das Query-Fenster:

 SELECT ST_AsText(way) geom,
 COALESCE(name, )||' '||osm_id AS label
 FROM osm_poi
 WHERE tags @> hstore('amenity', 'parking')
 AND hstore("tags")->'capacity:disabled' ~* '[0-9]|yes|unknown'
 LIMIT 9999

2. Dann anschauen.
3. Falls Daten (im WKT-Format) gewünscht sind, den SELECT-Teil ersetzen mit "SELECT name, osm_id, gtype FROM ..." und Copy&Paste des Konsolen-Inhalts machen.

Daten der Schweiz (Stand Vorgestern). Kennt Punkte (POIs), Linien und Flächen; POI-Tabelle enthält sowohl Punkte wie auch Flächen. Kennt kein Export und kann höchstens GeoJSON. Mehr zum PostGIS_Terminal#Help.

Variante OpenPOIMap

  1. OpenPOIMap aufrufen: http://bit.ly/11OP5Mf
  2. Dann Download z.B. als KML oder SQLite/Spatialite.

Daten der Schweiz (Stand vorgestern); nur Nodes/POIs. Mehr zu OpenPOIMap.

Variante Overpass Turbo (Daten ganze Welt, mit BBox)

  1. Interaktive Karte: http://bit.ly/X8pcmK
  2. OpenLayers-Karte: http://bit.ly/XRN6kD
  3. Query (Permalink): http://bit.ly/WCd6RK
  4. Download als OSM/XML, GeoJSON und als Bild.

Schweiz ist nur als BBox abgegrenzt, gitb also mehr Daten zurück als gewünscht. Gewöhnungsbedürftige Query-Syntax. Hier mehr zu Overpass.

POI-Daten nutzen mit OpenPOIMap

Überblick:

  • Benutzer erfassen POIs im öffentlichen OpenStreetMap (OSM, siehe unten).
  • Am folgenden Tag sind die neuen Daten in OpenPOIMap verfügbar (in EOSMDBOne und zwar ab ca. 8 Uhr diejenigen Daten, die in OSM vor ca. 19:00 Uhr erfasst wurden).
  • Benutzer können POIs in OpenPOIMap direkt anschauen und interaktiv abfragen
  • Benutzer können die POIs direkt ins GIS integrieren mit Hilfe des OpenPOIMap Geo-Webservice (WFS)
  • Benutzer können POIs von OpenPOIMap herunterladen und je nach Format nutzen z.B. in...
    • Google Earth (KML)
    • GIS (Shapefile)
    • Navi/GPS (GPX)

Arbeitsschritte:

  • POIs in OpenPOIMap visualisieren und interaktiv abfragen (=> Tab 'Home')
    • Schritt 1: In OpenPOIMap Tab 'Home' einen Ausschnitt auf der Karte auswählen (Zoom, Pan & Geogr. Suche).
    • Schritt 2: Query-Beispiel auswählen (z.B. Hospitals/Spitäler) oder mit Hilfe von Tab 'Query Builder' eine Query selber definieren.
    • Schritt 3: Mit 'Show' das Resultat auf der Webkarte direkt ansehen.
    • Hinweis: Die POIs auf der Webkarte lassen sich durch Klicken auf ein Punktsymbol interaktiv abfragen. Ev. muss man näher hineinzoomen.
  • POIs herunterladen (=> Tab 'Download'):
    • Schritt 1: In OpenPOIMap Tab 'Home' einen Ausschnitt auf der Karte auswählen (Zoom, Pan & Geogr. Suche).
    • Schritt 2: Query definieren (z.B. in key 'Spital' eingeben und 'amenity=hospital' bestätigen).
    • Schritt 3: Export-Format wählen.
    • Schritt 4: Mit 'Download' Datei lokal speichern und damit selber weiterverarbeiten.
    • Hinweis: Es wird hier gemäss Vorgabe nur der Ausschnitt heruntergeladen. Durch Klick auf eine Checkbox kann auch der Bereich der ganzen Datenbank, d.h. die Schweiz, verwendet werden.
  • POIs als Webservice (WFS) nutzen (=> Tab 'Webservices'):
    • Schritt 1: Zuerst in Tab 'Home' die Query definieren, (z.B. in key 'Spital' eingeben und 'amenity=hospital' bestätigen).
    • Schritt 2: In Tab 'Webservices' die Basis-URL des WFS-Webservices kopieren und im eigenen System eingeben.
    • Hinweis: Es wird hier immer die ganze Datenbank, d.h. die Schweiz, verwendet.

Routing-Daten nutzen mit ArcGIS oder QGIS

  • QGIS: Import in SQLite/SpatiaLite mit Hilfe der SpatiaLite-Tools 'spatialite_osm_net'.
  • ArcGIS: tbd.

POI-Daten erfassen/editieren

mit Potlatch (Browser):

Mit ArcGIS: tbd.

Mit QGIS: OSM-Plugin.