GISDday 2014 Geocodierung mit R am Beispiel Google Maps API

820 Aufrufe

Veröffentlicht am

Vortrag am 19.11.2014 14:40 am GFZ Potsdam: Geocodierung mit R am Beispiel Google Maps API #gdmoen

Veröffentlicht in: Ingenieurwesen
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
820
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
29
Aktionen
Geteilt
0
Downloads
5
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

GISDday 2014 Geocodierung mit R am Beispiel Google Maps API

  1. 1. Geographisches Institut / Abteilung Geomatik Geocodierung mit RStudio am Beispiel Google Maps API Thomas Mönkemeier, B.Eng. Prof. Dr. Tobia Lakes Humboldt-Universität zu Berlin moenkemt@geo.hu-berlin.de
  2. 2. Geographisches Institut / Abteilung Geomatik Aufgabe: Geocodierung • Häufige Anforderung aus der Praxis am Institut: „Liste mit Adressen in ein Shape umwandeln“ • Gegeben: Liste mit Adressen • Gewünscht: Shape für irgendeine GIS-Software • Verwendung von RStudio mit der Google Maps API als kleines Beispiel für Flexibilität von R
  3. 3. Geographisches Institut / Abteilung Geomatik Umgebung: RStudio • R ist eine freie Programmiersprache für statistisches Rechnen (z.B. Regressionsanalyse, ANOVA...) und statistische Grafiken • R gilt zunehmend als Standardsprache für statistische Problemstellungen • R ist open source und Teil des GNU-Projekts • Kommandozeilenkonsole führt Befehle direkt aus • RStudio wohl die beliebteste Entwicklungsumgebung • Packages für R stellen weitere Funktionen bereit
  4. 4. Geographisches Institut / Abteilung Geomatik Beispiel: Google Maps API • Aufgabe: Geocodierung • Vorteil: Toleranz bei Eingabefehlern • Webservice, ohne Registrierung verfügbar • Kein API-Schlüssel mehr erforderlich • Lizenzbedingungen: Maximal 2500 Anfragen pro Tag, Ergebnisse müssen auf einer GoogleMap angezeigt werden • Beispiel übertragbar auf andere Geocoder wie OpenCage, Nominatim, BingMaps...
  5. 5. Geographisches Institut / Abteilung Geomatik Funktion für Google Maps API library(RCurl) library(RJSONIO) googleurl=function(address, format = "json", sensor = "false") { root="http://maps.google.com/maps/api/geocode/" url=paste(root, format, "?address=", address, "&sensor=", sensor, sep = "") return(URLencode(url)) }
  6. 6. Geographisches Institut / Abteilung Geomatik Liste der Adressen einlesen • Komplette Adressen in erster Spalte (für Google Maps) • Optional: Weitere Attribute CSV-getrennt • Adress-Liste einlesen in R-Studio Dataframe: liste=read.csv("adressen.txt", header=FALSE, sep=";", fileEncoding="UTF-8") zeilen=nrow(liste) spalten=ncol(liste)
  7. 7. Geographisches Institut / Abteilung Geomatik Old School: Schleife for(i in 1:zeilen) { url=googleurl(liste$V1[i]) doc=getURL(url) coords=fromJSON(doc,simplify = FALSE) if(coords$status=="OK") { liste$x[i]=coords$results[[1]]$geometry$location$lng liste$y[i]=coords$results[[1]]$geometry$location$lat liste$type[i]=coords$results[[1]]$geometry$location_type } Sys.sleep(1) }
  8. 8. Geographisches Institut / Abteilung Geomatik Punkte aus Liste erzeugen • Spatial Data Packages für R einbinden: library(sp) library(rgdal) library(raster) • Spatial Dataframe erzeugen aus Liste: shapefile = SpatialPointsDataFrame (liste[(spalten+1):(spalten+2)], liste) • Räumliches Bezugssystem festlegen: projection(shapefile)= CRS("+proj=longlat +datum=WGS84")
  9. 9. Geographisches Institut / Abteilung Geomatik Optional: Höhenangaben • SRTM-Daten für die Höhe bei Bedarf vorher ergänzen • Raster-Package hält geographische Daten vor: srtm=getData('alt',country="DEU") • Spalte für Höhe anbinden: liste=cbind(liste,ele= extract(srtm,liste[(spalten+1):(spalten+2)], method="bilinear"))
  10. 10. Geographisches Institut / Abteilung Geomatik Punkte als Shape speichern • Spatial Dataframe zur Kontrolle plotten: plot(shapefile) • Und schließlich abspeichern: writeOGR(shapefile, dsn = '.', layer ='adressen', driver = 'ESRI Shapefile') • Fertig!
  11. 11. Geographisches Institut / Abteilung Geomatik Selbst ausprobieren • Download R (z.B. für Windows): http://cran.rstudio.com/bin/windows/base/ • Download RStudio Desktop Open Source Edition: http://www.rstudio.com/ • Software installieren, Libraries aus Packages holen • Adressen in Textdatei vorbereiten • Beispiel für erste eigene Schritte verwenden • Am Ergebnis erfreuen und weitermachen!
  12. 12. Geographisches Institut / Abteilung Geomatik Viel Erfolg! Noch Fragen? #gdmoen

×