मेरे पास एक जियोडेटाफ्रेम है जिसमें बहु-बहुभुज भूगोल है। यदि मैं केंद्रों को खोजने के लिए centroid फ़ंक्शन का उपयोग करता हूं, तो परिणाम हमेशा किसी भी बहुभुज के अंदर स्थित नहीं होते हैं उदा। द्वीपों की एक श्रृंखला के लिए। तो, मैं बहु-बहुभुज आकार में केवल पहले बहुभुज का केन्द्रक कैसे खोजूं?

1
Steve Maughan 18 नवम्बर 2018, 22:14

1 उत्तर

सबसे बढ़िया उत्तर

मल्टीपॉलीगॉन के पहले बहुभुज के केंद्रक के लिए आप बस कर सकते हैं

mp[0].centroid

इसे लागू करने के कई तरीके हैं, उदा। पहले अपने डेटाफ़्रेम में प्रत्येक मल्टीपॉलीगॉन को पहले पॉलीगॉन तक सीमित करें।

def keep_first(geo):
   if geo.geom_type == 'Polygon':
       return geo
   elif geo.geom_type == 'MultiPolygon':
       return geo[0]

df.geometry = df.geometry.apply(lambda _geo: keep_first(_geo))

df.centroid
2
Christoph Rieke 20 नवम्बर 2018, 00:40