2016-04-25 21 views
1

Ich hoffe, ein R-Programm zu schreiben, das ein Datenframe von Lat/Long-Punkten und einem Shapefile von 13 Polygonen einliest und dann identifiziert In welchem ​​Polygon sich jeder Lat/Long-Punkt befindet. Gibt es ein R-Paket, mit dem ich diese Art von räumlicher Verbindung machen kann? Ich habe rgdal verwendet, um die Polygon-Shapefile zu lesen, aber ich sehe keine Option für die Durchführung einer räumlichen Verbindung mit den Lat/Long-Spalten in meinem Datenrahmen. Vielen Dank!Mit R, um einen Datenrahmen von Lat/Long-Punkten räumlich zu einem Polygon zu verbinden shapefil

+2

So einfach wie die Umwandlung Ihres Lat/Long-Datenrahmens in einen 'SpatialPointsDataFrame' und dann die Verwendung der Funktion' over' aus 'library (sp)' –

+0

Dies kann hilfreich sein: http://stackoverflow.com/questions/13316185/ r-convert-zipcode-oder-lat-long-to-county/20131701 # 20131701 – ano

+0

Hat super funktioniert. Vielen Dank. – user3786999

Antwort

2

G. Coccas Lösung funktionierte nach einigen kleineren Änderungen sehr gut.

Letztlich benötigt die Lösung vier Schritten R ‚s library(sp) und library(EcoSpatial):

  1. Convert lat/long Punkt Datenrahmen zu einem SpatialPointsDataFramesp verwenden.
  2. Verwenden Sie spproj4string Funktion, um die SpatialPointsDataFrame so zu projizieren, dass es die gleiche Projektion wie meine Polygon Shapefile verwendet.
  3. Verwenden Sie die Funktion EcoSpatialpoints.in.poly, um die beiden Datensätze räumlich zu verbinden. Dies ist der Schlüsselschritt, da es einen neuen SpatialPointsDataframe erstellt, der relevante Polgyon-Daten an jedem xy-Punkt anbringt.
  4. Verwenden Sie as.data.frame, um die SpatialPointsDataframe wieder in eine reguläre Rdata.frame zu zwingen.

Nochmals vielen Dank für die Hilfe!