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
1
A
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)
:
- Convert lat/long Punkt Datenrahmen zu einem
SpatialPointsDataFrame
sp
verwenden. - Verwenden Sie
sp
proj4string
Funktion, um dieSpatialPointsDataFrame
so zu projizieren, dass es die gleiche Projektion wie meine Polygon Shapefile verwendet. - Verwenden Sie die Funktion
EcoSpatial
points.in.poly
, um die beiden Datensätze räumlich zu verbinden. Dies ist der Schlüsselschritt, da es einen neuenSpatialPointsDataframe
erstellt, der relevante Polgyon-Daten an jedem xy-Punkt anbringt. - Verwenden Sie
as.data.frame
, um dieSpatialPointsDataframe
wieder in eine reguläreR
data.frame
zu zwingen.
Nochmals vielen Dank für die Hilfe!
So einfach wie die Umwandlung Ihres Lat/Long-Datenrahmens in einen 'SpatialPointsDataFrame' und dann die Verwendung der Funktion' over' aus 'library (sp)' –
Dies kann hilfreich sein: http://stackoverflow.com/questions/13316185/ r-convert-zipcode-oder-lat-long-to-county/20131701 # 20131701 – ano
Hat super funktioniert. Vielen Dank. – user3786999