Mam dwie klasy dzielące ten sam CRS (Latitit i Longitude):
bolognaQuartieriMap
:SpatialPolygonDataFrame
zawierające dane gmin miejskich.crashPoints
:SpatialPointsDataFrame
zawierający dane o wypadkach.
Są dobrze wykreślone przy użyciu:
plot(bolognaQuartieriMap)
title("Crash per quartiere")
plot(crashPoints, col="red",add=TRUE)
Potrzebuję uzyskać liczbę punktów ( crashPoints
) w każdym wielokącie, które stanowią bolognaQuartieriMap
. Zaproponowano mi użycie, over()
ale mi się nie udało.
Chcę zostawić inną opcję. Można to osiągnąć za pomocą zadania
poly.counts()
wGISTools
pakiecie. Używając przykładowych danych przez rcs, możesz wykonać następujące czynności. Jeśli spojrzysz na funkcję, zdasz sobie sprawę, że funkcja jest zapisana jakocolSums(gContains(polys, pts, byid = TRUE))
. Możesz więc po prostu użyćgContains()
wrgeos
pakiecie icolSums()
.Lub
Rezultat to:
źródło
Możesz to samo osiągnąć za pomocą
sf
pakietu. Sprawdź odtwarzalny i skomentowany kod poniżej. Pakietsf
służy do obsługi obiektów przestrzennych jako prostych obiektów obiektów. W tej odpowiedzi pakietraster
służy tylko do pobrania przykładowych danych wielokąta, a pakietdplyr
do transformacji danych na końcu.źródło