Je cherchais un fichier de formes de route pour l'Australie aujourd'hui. J'ai fini par aller chez Geofabrik . Open Street Map a des données au .osm
format. Mais ils n'en ont pas .shp
pour l'Australie.
Si possible, je veux convertir les osm
fichiers en shapefiles
utilisant R. J'ai cherché autour, mais je n'ai pas encore trouvé de solutions. Y a-t-il un moyen d'y parvenir? Alternativement, est-il possible de lire des fichiers osm en R et de convertir les données en trame de données afin que je puisse dessiner des chiffres en utilisant ggplot2
?
J'ai réalisé le graphique suivant de NZ en utilisant deux fichiers de formes avec maptools
et ggplot2
. Idéalement, je veux produire une carte similaire de l'Australie.
shapefile
openstreetmap
r
ggplot2
jazzurro
la source
la source
Réponses:
Ce n'est pas une solution R, mais Quantum GIS (QGIS) est un excellent moyen de réaliser ce que vous voulez.
Vous pouvez simplement charger le fichier .osm (outil Ajouter un vecteur), cliquer dessus avec le bouton droit dans la table des matières et enregistrer sous forme de fichier ESRI.
QGIS peut planter avec un extrait aussi volumineux, donc pour éviter cela, vous pouvez utiliser les outils OSM comme l' API OverPass pour télécharger uniquement ce dont vous avez besoin en utilisant des boîtes englobantes.
L' OverPass-Turbo Api est également disponible pour obtenir des extraits, un court tutoriel sur celui-ci est ici!
J'ai exécuté un exemple rapide basé sur les balises Highway = primary et Highway = primary_link (le schéma de marquage OSM Highway peut être vu ici! ) En utilisant l'assistant sur Overpass-Turbo et l'image ci-dessous était le résultat pour Victoria.
J'ai ensuite exporté les données sous GeoJSON, les ai chargées dans QGIS, puis j'ai enregistré le résultat sous forme de fichier de forme. (La deuxième image montre les lignes et les polys chargés dans QGIS)
L'autre alternative consiste à télécharger le fichier PBF ou OSM pour la zone à partir de GeoFabrik et à sous-définir les données en extrayant les balises Highway = * en utilisant l' osmose . Si vous souhaitez mettre à jour vos données régulièrement, l'osmose serait la manière recommandée de procéder. S'il s'agit d'un extrait unique, le dépassement serait probablement plus facile, même si vous devez le faire dans des zones de délimitation plus petites en raison de limitations de mémoire. Vous devez simplement appliquer les mêmes requêtes Overpass pour différentes zones de délimitation.
la source
@jazzurro, vous pouvez parfaitement le faire avec R, recherchez simplement le package osmar! Lisez la documentation osmar (osmar.r-forge.r-project.org/RJpreprint.pdf). Aux pages 11 pp. Vous pouvez trouver un exemple détaillé pour extraire des routes / autoroutes par les balises correspondantes pour munich.osm! Après avoir extrait et extrait les données d'un fichier planète pour l'Australie, vous pouvez les convertir dans le format de votre choix!
Éditer:
Comme certains commentateurs se plaignaient du manque d'exemples, je posterai un exemple de la documentation. À mon humble avis, il ne serait pas nécessaire de retaper les exemples existants ici, n'est-ce pas?
la source
.osm
fichiers en trame de données. Après avoir regardé rapidement, il semble qu'il n'y ait aucun moyen direct de convertir des.osm
fichiers en trame de données. Ou y en a-t-il?munich.osm
! Après avoir extrait et extrait les données d'un fichier planète pour l'Australie, vous pouvez les convertir dans le format de votre choix! ps: supprimé l'autre lien de l'OP car cela ne traitait pas du traitement des fichiers osm ..OK, voici la bonne réponse:
Assurez-vous que
rgdal
(version> = 1.0.4) est installéAssurez-vous que
gdal
(version> = 1.11.0) est installéAssurez-vous qu'il
gdal
est compilé avec le support Expat / OSM et SQLite:Assurez-vous de savoir quel calque vous souhaitez enregistrer en tant que fichier de formes:
Nous sommes prêts à partir:
Une fois que vous avez lu le fichier via
readOGR
, suivez ces instructions pour apprendre à le tracer avecggplot2
.Notez que vous pouvez également lire des
.osm
fichiers au format XML, assurez-vous simplement qu'ils ne sont pas compressés (c'est-à-dire que l'extension.osm
ne l' est pas.osm.bz2
). Mais essayez d'utiliser le fichier .osm.pbf car ils sont beaucoup plus petits.la source
rgdal
pour windows est 0.9-3 et revientFALSE FALSE
pourc('SQLite', 'OSM') %in% ogrDrivers()$name
rgdal
vous pouvez essayer le paquet source ( cran.r-project.org/src/contrib/rgdal_1.0-4.tar.gz ) ou le binaire oldrel ( cran.r-project.org/bin/windows/contrib/3.1/ rgdal_1.0-4.zip ). À propos duGDAL
binaire Windows, je ne sais pas, vous pouvez déposer un rapport de bogue àGDAL
projeter et demander que le support Expat et SQLite soit activé dans lesGDAL
binaires Windows .osm2shp.ru ici, vous pouvez télécharger des données openstreetmap au format shapefiles. Données divisées par régions: Amérique du Nord et du Sud, Australie et Océanie, Afrique, Europe et Asie.61 couches à télécharger. Données filtrées par les conditions "Caractéristiques de la carte".
la source