मैं शीर्ष स्थानों, पहला, दूसरा स्वरूप में सहेजी से बहुभुज का एक सेट बनाने के लेने के लिए कोशिश कर रहा हूँ से आर में बहुभुज का एक सेट बना रहा है। कृपया मेरे साथ नंगे क्योंकि मैं आर के लिए नया हूं और आज अन्य पदों की खोज करने में काफी समय लगा हूं।SpatialPolygons - निर्देशांक
यहाँ मेरी डेटा का एक उदाहरण है - प्रत्येक पंक्ति एक बहुभुज के लिए कोने प्रतिनिधित्व करता है। बहुभुज
square <- rbind(c(255842.4, 4111578, 255862.4, 4111578, 255862.4, 4111558,
255842.4, 4111558, 255842.4, 4111578, 255842.4, 4111578),
c(257397.0, 4111309, 257417.0, 4111309, 257417.0, 4111289,
257397.0, 4111289, 257397.0, 4111309, 257397.0, 4111309))
ID <- c("SJER1", "SJER2")'
मैं SpatialPolygons
का उपयोग कर रहा है, इस प्रकार अपने डेटा एक सूची में होना चाहिए वर्गों रहे हैं। इसलिए मैंने मैट्रिक्स से सूची प्रारूप में अपना डेटा प्राप्त करने का प्रयास करने के लिए एक लूप बनाया।
मैं कोड है कि मैं इस साइट पर कुछ अन्य प्रश्न में पाया निम्नलिखित एक पाश पैदा करते हैं। मैंने समझने की कोशिश करने के लिए प्रत्येक चरण को तोड़ दिया कि मुझे आउटपुट के रूप में केवल एक बहुभुज क्यों मिल रहा है, इसके माध्यम से मेरे पास 2 अंक हैं।
for (i in 1:2) {
pts <- rbind(c(square[i,1], square[i,2]), c(square[i,3], square[i,4]),
c(square[i,5],square[i,6]), c(square[i,7],square[i,8]),
c(square[i,9],square[i,10]))
sp1 <- list(Polygon(pts))
sp2 <- list(Polygons(sp1,i))
sp = SpatialPolygons(sp2)
}
plot(sp)
आप कृपया मुझे समझ कैसे मैं बजाय सिर्फ एक दो बहुभुज को लिखने के लिए कोड समायोजित करने में मदद कर सकते हैं? और यह भी, मैं कैसे प्रत्येक बहुभुज को पहचान प्रदान करेगा मैं अपने शुरुआती डाटासेट के रूप में एक मैट्रिक्स (वर्ग) का उपयोग कर रहा हूँ और अगर मैं एक चरित्र आईडी असाइन, यह एक चरित्र में अपने डेटा के सभी बदल दिया।
मेरे अंतिम लक्ष्य SpatialPolygons
वस्तु में दो बहुभुज, आईडी SJER1
के साथ पहली और आईडी SJER2
SpatialPolygons
वस्तु में संग्रहीत के साथ दूसरे स्थान पर है।
तब मैं इस एक शेपफ़ाइल के लिए बाहर लिखेंगे।
किसी भी मार्गदर्शन के लिए और आपके धैर्य के लिए धन्यवाद। लिआ
आपको बहुत बहुत धन्यवाद। मुझे लगता है कि मैं इसे बेहतर समझता हूं, लेकिन क्या आप कृपया मुझे बता सकते हैं कि क्यों: '(i में 1: 2) { polys <- स्थानिक पालीगन्स (सूची ( बहुभुज (सूची (बहुभुज (मैट्रिक्स (वर्ग [i, ], ncol = 2, byrow = TRUE))), आईडी [i]) )) } ' या ' एक <- वेक्टर ('सूची', लंबाई (2)) के लिए (1 में मैं : 2) { एक [[i]] <- सूची ( बहुभुज (सूची (बहुभुज (मैट्रिक्स (वर्ग [i,], ncol = 2, बाई = TRUE)), आईडी [i]) ) } स्पेटियल पॉलीगन्स (ए) ' काम नहीं करते? मुझे इसे कई बिंदुओं पर चलाने की ज़रूरत है इसलिए मुझे किसी प्रकार की लूप की आवश्यकता होगी। आपका समय और स्पष्टीकरण बहुत सराहना की जाती है। मैंने दस्तावेज़ीकरण की समीक्षा भी की। –
@LWasser पहली बार लूप के माध्यम से पहली बार 'polys' ओवरराइट करता है, इसलिए आप' स्पैटियल पॉलीगन्स 'ऑब्जेक्ट के साथ समाप्त होते हैं जिसमें केवल अंतिम पॉली होती है। दूसरा काम करेगा यदि आप बाहरी 'सूची() 'को हटाते हैं, यानी बस एक [[i]] <- बहुभुज (सूची (बहुभुज (मैट्रिक्स (वर्ग [i,], ncol = 2, byrow = TRUE)), आईडी [i]) '। ऐसा इसलिए है क्योंकि 'ए' पहले से ही एक सूची है। – jbaums
@LWasser, मेरे दृष्टिकोण को एक ऐसे दृष्टिकोण के लिए देखें जिसका उपयोग प्रक्रिया को स्वचालित करने के लिए किया जा सकता है यदि आपके पास कई पंक्तियां हैं। (इसके अलावा, माफ करना, मैं किसी भी तरह से कोड शामिल करना भूल गया जो एसपीडीएफ बनाता है।) – jbaums