Ich habe heute nach einem Road Shapefile für Australien gesucht. Am Ende ging ich zur Geofabrik . Open Street Map enthält Daten im .osm
Format. Aber sie haben keinen .shp
für Australien.
Wenn möglich, möchte ich die osm
Dateien shapefiles
mit R konvertieren . Ich habe gesucht, aber noch keine Lösungen gefunden. Gibt es einen Weg dorthin? Ist es alternativ möglich, Osm-Dateien in R zu lesen und die Daten in Datenrahmen umzuwandeln, damit ich mit Zahlen zeichnen kann ggplot2
?
Ich habe die folgende Grafik von NZ mit zwei Shapefiles mit maptools
und erstellt ggplot2
. Idealerweise möchte ich eine ähnliche Karte von Australien produzieren.
shapefile
openstreetmap
r
ggplot2
Jazzurro
quelle
quelle
Antworten:
Dies ist keine R-Lösung, aber Quantum GIS (QGIS) ist ein großartiger Weg, um das zu erreichen, was Sie wollen.
Sie können einfach die .osm-Datei laden (Vektor-Tool hinzufügen), im Inhaltsverzeichnis mit der rechten Maustaste darauf klicken und als ESRI-Shapefile speichern.
QGIS kann mit einem so großen Auszug abstürzen. Um dies zu vermeiden, können Sie OSM-Tools wie die OverPass-API verwenden , um nur das herunterzuladen, was Sie mithilfe von Begrenzungsrahmen benötigen.
Die OverPass-Turbo-API ist auch verfügbar, um Auszüge zu erhalten. Ein kurzes Tutorial dazu finden Sie hier!
Ich habe ein kurzes Beispiel basierend auf den Tags highway = primary und highway = primary_link (das OSM-Highway-Tagging-Schema finden Sie hier! ) Mit dem Assistenten auf Overpass-Turbo ausgeführt. Das folgende Bild war das Ergebnis für Victoria.
Ich exportierte die Daten dann als GeoJSON, lud sie in QGIS und speicherte das Ergebnis als Formdatei. (Das zweite Bild zeigt die Linien und Polys, die in QGIS geladen wurden.)
Die andere Alternative besteht darin, die PBF- oder OSM-Datei für das Gebiet von GeoFabrik herunterzuladen und die Daten durch Extrahieren der highway = * -Tags mit Osmosis zu unterteilen . Wenn Sie Ihre Daten regelmäßig aktualisieren möchten, ist Osmosis die empfohlene Vorgehensweise. Wenn es sich um einen einmaligen Auszug handelt, ist die Überführung wahrscheinlich einfacher, obwohl Sie dies aufgrund von Speicherbeschränkungen in kleineren Begrenzungsrahmen tun müssen. Sie würden einfach dieselben Überführungsabfragen anwenden, um unterschiedliche Begrenzungsrahmen zu erstellen.
quelle
@jazzurro, du kannst das perfekt mit R machen, schau einfach nach dem osmar-Paket! Lesen Sie die osmar-Dokumentation (osmar.r-forge.r-project.org/RJpreprint.pdf). Auf den Seiten 11 S. finden Sie ein ausführliches Beispiel zum Extrahieren von Straßen / Autobahnen mit den entsprechenden Tags für munich.osm! Nachdem Sie die Daten aus einer Planetendatei für Australien gezogen und extrahiert haben, können Sie sie in ein beliebiges Format konvertieren!
Bearbeiten:
Da sich einige Kommentatoren über fehlende Beispiele beschwerten, werde ich ein Beispiel aus den Dokumenten veröffentlichen. IMHO wäre es nicht nötig, existierende Beispiele hier noch einmal einzutippen, oder?
quelle
.osm
Dateien in einen Datenrahmen konvertieren kann . Auf den ersten Blick scheint es keine direkte Möglichkeit zu geben,.osm
Dateien in einen Datenrahmen zu konvertieren . Oder ist da?munich.osm
! Nachdem Sie die Daten aus einer Planetendatei für Australien gezogen und extrahiert haben, können Sie sie in ein beliebiges Format konvertieren! ps: entfernte den anderen Link aus dem OP, da dieser sich nicht mit dem Umgang mit Osm-Dateien befasste.OK, hier kommt die richtige Antwort:
Stellen Sie sicher, dass
rgdal
(Version> = 1.0.4) installiert istgdal
Stellen Sie sicher, dass (Version> = 1.11.0) installiert istgdal
Stellen Sie sicher, dass mit Expat / OSM- und SQLite-Unterstützung kompiliert wurde:Stellen Sie sicher, dass Sie wissen, welche Ebene Sie als Shapefile speichern möchten:
Wir sind bereit zu gehen:
Wenn Sie die Datei über gelesen haben
readOGR
, befolgen Sie diese Richtlinien , um zu erfahren, wie Sie sie plottenggplot2
.Beachten Sie, dass Sie auch
.osm
Dateien im XML-Format lesen können. Achten Sie jedoch darauf, dass diese nicht komprimiert sind (dh die Erweiterung ist.osm
nicht vorhanden.osm.bz2
). Versuchen Sie jedoch, die Datei .osm.pbf zu verwenden, da sie viel kleiner sind.quelle
rgdal
für Windows kompiliert für ist 0,9-3 und kehrtFALSE FALSE
fürc('SQLite', 'OSM') %in% ogrDrivers()$name
rgdal
Sie das Quellpaket versuchen können ( cran.r-project.org/src/contrib/rgdal_1.0-4.tar.gz ) oder oldrel binär ( cran.r-project.org/bin/windows/contrib/3.1/ rgdal_1.0-4.zip ). Über dieGDAL
Windows-Binärdatei, ich weiß nicht, können Sie einen Fehlerbericht einreichen, um zuGDAL
projizieren und anzufordern, dass die Expat- und SQLite-Unterstützung in Windows-GDAL
Binärdateien aktiviert werden muss .osm2shp.ru hier können sie openstreetmap daten im shapefiles format herunterladen. Daten unterteilt nach Regionen: Nord- und Südamerika, Australien und Ozeanien, Afrika, Europa und Asien.61 Ebenen zum Herunterladen. Daten gefiltert nach "Map Features" -Bedingungen.
quelle