मैंने इस प्रश्न का उत्तर जानने के लिए थोड़ा समय बिताया है। यह Google खोज से तुरंत स्पष्ट नहीं है , इसलिए यहां पर उत्तर पोस्ट करना उपयोगी हो सकता है। गैर-सन्निहित बहुभुज के बारे में एक अतिरिक्त प्रश्न भी है ।
तत्काल आसान उत्तर: कमांड का उपयोग करें:
centroids <- getSpPPolygonsLabptSlots(polys)
(यह आर, एसपी में स्थानिक पैकेज के लिए SpatialPolygonsDataFrame R डेटा वर्ग के वर्ग विवरण में पाया गया था )
यह ठीक वैसा ही काम करने लगता है
cents <- SpatialPointsDataFrame(coords=cents, data=sids@data, proj4string=CRS("+proj=longlat +ellps=clrk66"))
निम्नलिखित कोड में, जो किसी भी आर इंस्टॉलेशन पर पुनरावृत्ति योग्य होना चाहिए (इसे आज़माएं!)
#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")
जहाँ सेंट (नीला) और केन्द्रक (लाल) समान केन्द्रक हैं (यह आपको कोड चलाने के बाद दिखाई देना चाहिए):
अब तक सब ठीक है। लेकिन जब आप QGIS में बहुभुज केन्द्रक की गणना करते हैं (मेनू: वेक्टर | ज्यामिति | बहुभुज Centroids), गैर-सन्निहित बहुभुज के लिए थोड़ा भिन्न परिणाम होते हैं:
तो यह प्रश्न 3-बातें हैं:
- एक त्वरित और आसान जवाब
- आर का उपयोग करने वाले लोगों के लिए एक चेतावनी गैर-सन्निहित बहुभुज के लिए सेंट्रोइड्स की गणना करने के लिए
- बहु-भाग (गैर-सन्निहित) बहुभुज के लिए आर को ठीक से कैसे किया जाना चाहिए, इस बारे में एक प्रश्न