Szukałem dziś pliku kształtu drogi dla Australii. W końcu pojechałem do Geofabrik . Open Street Map ma dane w .osm
formacie. Ale nie mają takiego w .shp
Australii.
Jeśli to możliwe, chcę przekonwertować osm
pliki na shapefiles
R. Korzystałem z wyszukiwania, ale nie znalazłem jeszcze rozwiązania. Czy jest na to jakiś sposób? Alternatywnie, czy można odczytać pliki osm do R i przekonwertować dane na ramkę danych, aby móc rysować za pomocą ggplot2
?
Osiągnąłem następującą grafikę NZ przy użyciu dwóch plików kształtów z maptools
i ggplot2
. Idealnie chciałbym stworzyć podobną mapę Australii.
shapefile
openstreetmap
r
ggplot2
jazzurro
źródło
źródło
Odpowiedzi:
To nie jest rozwiązanie typu R, ale Quantum GIS (QGIS) to świetny sposób na osiągnięcie tego, co chcesz.
Możesz po prostu załadować plik .osm (narzędzie Dodaj wektor), kliknąć go prawym przyciskiem myszy w Spisie treści i zapisać jako plik kształtu ESRI.
QGIS może ulec awarii z tak dużym fragmentem, więc aby tego uniknąć, możesz użyć Narzędzi OSM, takich jak OverPass API, aby pobrać tylko to, czego potrzebujesz, używając obwiedni.
Wiadukt-Turbo Api jest również dostępna w celu uzyskania ekstraktów, krótki tutorial, który jest tutaj!
Uruchomiłem szybki przykład oparty na tagach highway = primary i highway = primary_link (schemat znakowania autostrady OSM można zobaczyć tutaj! ) Za pomocą Kreatora na Overpass-Turbo, a poniższy obrazek był rezultatem dla Victorii.
Następnie wyeksportowałem dane jako GeoJSON, załadowałem je do QGIS, a następnie zapisałem wynik jako plik kształtu. (Drugi obraz pokazuje linie i bieguny załadowane do QGIS)
Inną alternatywą jest pobranie pliku PBF lub OSM dla obszaru z GeoFabrik i podzbiór danych przez wyodrębnienie tagów highway = * za pomocą Osmosis . Jeśli chcesz regularnie aktualizować swoje dane, zalecany jest Osmosis. Jeśli jest to jednorazowy fragment, Overpass prawdopodobnie byłby łatwiejszy, nawet jeśli musisz to zrobić w mniejszych ramkach ograniczających z powodu ograniczeń pamięci. Po prostu zastosujesz te same zapytania Overpass do różnych ramek ograniczających.
źródło
@jazzurro, możesz doskonale to zrobić za pomocą R, po prostu wyszukaj pakiet osmar! Przeczytaj dokumentację osmar (osmar.r-forge.r-project.org/RJpreprint.pdf). Na stronach 11 str. Znajdziesz szczegółowy przykład wydobywania dróg / autostrad za pomocą odpowiednich tagów dla michich.osm! Po pobraniu i wyodrębnieniu danych z pliku planety dla Australii możesz przekonwertować je na dowolny format!
Edytować:
Ponieważ niektórzy komentatorzy narzekali na brak przykładów, opublikuję przykład z dokumentów. IMHO, nie byłoby konieczne przepisywanie tutaj istniejących przykładów, prawda?
źródło
.osm
pliki do ramki danych. Po krótkim spojrzeniu wydaje się, że nie ma bezpośredniego sposobu konwersji.osm
plików na ramkę danych. Czy jest tammunich.osm
! Po pobraniu i wyodrębnieniu danych z pliku planety dla Australii możesz przekonwertować je na dowolny format! ps: usunął drugi link z PO, ponieważ nie dotyczyło to obsługi plików osm ..OK, oto poprawna odpowiedź:
Upewnij się, że
rgdal
(wersja> = 1.0.4) jest zainstalowanaUpewnij się, że
gdal
(wersja> = 1.11.0) jest zainstalowanaUpewnij się, że
gdal
jest skompilowany z obsługą Expat / OSM i SQLite:Upewnij się, że wiesz, którą warstwę chcesz zapisać jako plik kształtu:
Jesteśmy gotowi do pracy:
Po przeczytaniu pliku
readOGR
postępuj zgodnie z tymi wytycznymi, aby dowiedzieć się, jak go narysowaćggplot2
.Zauważ, że możesz również czytać
.osm
pliki w formacie XML, po prostu upewnij się, że nie są one skompresowane (tzn. Rozszerzenie.osm
nie jest.osm.bz2
) Ale spróbuj użyć pliku .osm.pbf, ponieważ są one znacznie mniejsze.źródło
rgdal
dla Windowsa to 0.9-3 i wracaFALSE FALSE
doc('SQLite', 'OSM') %in% ogrDrivers()$name
rgdal
można spróbować pakiet źródłowy ( cran.r-project.org/src/contrib/rgdal_1.0-4.tar.gz ) lub oldrel binarny ( cran.r-project.org/bin/windows/contrib/3.1/ rgdal_1.0-4.zip ). OGDAL
binarnym systemie Windows, nie wiem, możesz wysłać raport o błędzie doGDAL
projektu i zażądać włączenia obsługi Expat i SQLite w plikachGDAL
binarnych Windows .osm2shp.ru tutaj możesz pobrać dane openstreetmap w formacie shapefiles. Dane podzielone według regionów: Ameryka Północna i Południowa, Australia i Oceania, Afryka, Europa i Azja. 61 warstw do pobrania. Dane filtrowane według warunków „Funkcje mapy”.
źródło