Quiero unirme espacialmente con SpatialPolygonsDataFrame y SpatialPointsDataFrame.
obtener solo un punto de datos dentro de múltiples polígonos, bajo el código.
sp::over(meuse, srdf)
Algunos puntos de datos en múltiples polígonos. Quiero obtener datos de puntos y mantener todos los datos de polígonos.
por ejemplo: punto A dentro del polígono ay b.
ahora puede obtener:
| point | polygon |
-------------------
| A | a |
Me pongo así:
| point | polygon |
-------------------
| A | a |
| A | b |
Usar datos:
coordinates(meuse) = ~x+y
sr1=Polygons(list(Polygon(cbind(c(180114, 180553, 181127, 181477, 181294, 181007, 180409,
180162, 180114), c(332349, 332057, 332342, 333250, 333558, 333676,
332618, 332413, 332349)))),'1')
sr2=Polygons(list(Polygon(cbind(c(180042, 180545, 180553, 180314, 179955, 179142, 179437,
179524, 179979, 180042), c(332373, 332026, 331426, 330889, 330683,
331133, 331623, 332152, 332357, 332373)))),'2')
sr3=Polygons(list(Polygon(cbind(c(179110, 179907, 180433, 180712, 180752, 180329, 179875,
179668, 179572, 179269, 178879, 178600, 178544, 179046, 179110),
c(331086, 330620, 330494, 330265, 330075, 330233, 330336, 330004,
329783, 329665, 329720, 329933, 330478, 331062, 331086)))),'3')
sr4=Polygons(list(Polygon(cbind(c(180304, 180403,179632,179420,180304),
c(332791, 333204, 333635, 333058, 332791)))),'4')
sr5=Polygons(list(Polygon(cbind(c(179500, 180000, 180000, 179500),
c(331000, 331000, 331500, 331500)))), '5')
sr=SpatialPolygons(list(sr1,sr2,sr3,sr4, sr5))
srdf=SpatialPolygonsDataFrame(sr, data.frame(row.names=c('1','2','3','4', '5'), PIDS=1:5, y=runif(5)))
st_join
ahora está en la versión CRAN lanzadaUtilizar
over(meuse, srdf, returnList=TRUE)
El primer punto se superpone a un polígono, el punto 135 se superpone a dos:
Tenga en cuenta que si solo desea los índices de polígonos superpuestos y no todos los atributos, simplemente convierta los polígonos a SpatialPolygons y obtendrá una lista de números de índice en lugar de marcos de datos con todos los atributos en:
fuente
Puedo obtener data.frame bajo el código:
Es una
.id
columna agregada automáticamente .Si se filtran o editan datos de Mosa, hazlo bajo el código.
fuente