Ich habe ein wenig Zeit damit verbracht, die Antwort auf diese Frage zu finden. Aus einer Google-Suche ist dies nicht sofort ersichtlich. Daher ist es möglicherweise hilfreich, die Antwort hier zu veröffentlichen. Es gibt auch eine zusätzliche Frage zu nicht zusammenhängenden Polygonen .
Sofortige einfache Antwort: benutze den Befehl:
centroids <- getSpPPolygonsLabptSlots(polys)
(Dies wurde in der Klassenbeschreibung der R-Datenklasse SpatialPolygonsDataFrame für das übergeordnete räumliche Paket in R, sp gefunden. )
Dies scheint genau dasselbe zu tun wie
cents <- SpatialPointsDataFrame(coords=cents, data=sids@data, proj4string=CRS("+proj=longlat +ellps=clrk66"))
im folgenden Code, der bei jeder R-Installation replizierbar sein sollte (probieren Sie es aus!)
#Rcentroids
install.packages("GISTools")
library(GISTools)
sids <- readShapePoly(system.file("shapes/sids.shp", package="maptools")[1],
proj4string=CRS("+proj=longlat +ellps=clrk66"))
class(sids)
plot(sids)
writeSpatialShape(sids, "sids")
cents <- coordinates(sids)
cents <- SpatialPointsDataFrame(coords=cents, data=sids@data,
proj4string=CRS("+proj=longlat +ellps=clrk66"))
points(cents, col = "Blue")
writeSpatialShape(cents, "cents")
centroids <- getSpPPolygonsLabptSlots(sids)
points(centroids, pch = 3, col = "Red")
Wo Cent (blau) und Centroide (rot) identische Centroide sind (dieser Plot sollte erscheinen, nachdem Sie den Code ausgeführt haben):
So weit, ist es gut. Wenn Sie jedoch in QGIS Polygonschwerpunkte berechnen (Menü: Vektor | Geometrie | Polygonschwerpunkte), ergeben sich geringfügig andere Ergebnisse für nicht zusammenhängende Polygone:
Diese Frage besteht also aus drei Dingen:
- Eine schnelle und einfache Antwort
- Eine Warnung für Benutzer, die R verwenden, um Schwerpunkte für nicht zusammenhängende Polygone zu berechnen
- Eine Frage, wie in R mehrteilige (nicht zusammenhängende) Polygone richtig berücksichtigt werden sollen