कैसे SpatialPolygons और आर में टोपोलॉजी के संरक्षण के लिए सामान्यीकरण करें?


18

मैं SpatialPolygonsDataFrame प्लॉटिंग को और अधिक कुशल बनाने के लिए आर में एक सामान्यीकरण करना चाहूंगा । बहुभुज के परिणामस्वरूप मेरे पास विशाल पीडीएफ भूखंड हैं जो लोड करने में धीमा हैं और एक दस्तावेज़ में एकीकृत करने के लिए कठिन हैं।

मैंने पैकेज gSimplifyसे फ़ंक्शन का उपयोग करने की कोशिश की rgeos, लेकिन दुर्भाग्य से यह बहुभुज की टोपोलॉजी को संरक्षित नहीं करता है।

क्या कोई विकल्प है जो मैं उपयोग कर सकता हूं?


वास्तव में एक समाधान नहीं है, लेकिन क्या आप इसके बजाय रेखापुंज (jpg / png) की साजिश कर सकते हैं? यह स्टैकओवरफ़्लो प्रश्न जो pdfsize कमी पर चर्चा करता है वह उपयोग का हो सकता है: stackoverflow.com/questions/8521299/…
djq

रेखापुंज छवि के रूप में मानचित्रों को प्लॉट करना एक विकल्प है, लेकिन जब भी संभव हो मैं वेक्टर ग्राफिक्स का उपयोग करना चाहूंगा। वेक्टर ग्राफिक्स का उपयोग करते समय छवि की गुणवत्ता बेहतर होती है, खासकर जब दस्तावेजों के डिजिटल संस्करण को देखते हुए।
पीले रंग की

gSimplify()एक वैकल्पिक पैरामीटर है topologyPreserveजो चूक करता है FALSE। क्या आपने इसे स्थापित करने की कोशिश की है TRUE?
krlmlr

जवाबों:


7

R-sig-geo पर इस बारे में चर्चा चल रही है । एक निश्चित उत्तर के लिए आपको वहां पूछना चाहिए, क्योंकि ऐसे लोग हैं जो स्थानिक आर की अंतर्दृष्टि को जानते हैं।

लेकिन, आप इसे GIS डेस्कटॉप एप्लिकेशन (rgdal से राइटऑग का उपयोग करके निर्यात आकार या maptools से writePolyShape () क्वांटमजीआईएस, GRASS या SAGA) की तरह कर सकते हैं।

क्वांटमजीआईएस के लिए वेक्टर / ज्योमेट्री टूल्स / सरलीकृत ज्यामिति का उपयोग करें (मैंने परीक्षण किया है और टोपोलॉजी को संरक्षित नहीं करता है, लेकिन रोमानिया के लिए प्रशासित किया गया है 1 आकृति, 2000 नोड्स के साथ ठीक दिखता है)।

GRASS के लिए v.generalize का उपयोग करें (एल्गोरिदम के बारे में जानकारी के लिए मैनुअल पढ़ें, कुछ हैं)।

सागा के लिए आपको पहले बहुभुज को रेखाओं में बदलना होगा (आकार - रेखाएँ / रेखाएँ बहुभुज को रेखाएँ), फिर लाइनों को सरल बनाएँ (आकार रेखाएँ / रेखा सरलीकरण), और अंत में लाइनों को पॉलीगॉन (आकृतियाँ - पॉलीगॉन / पॉलीगॉन में कनवर्ट करें) में परिवर्तित करें। मैंने इसका परीक्षण किया है और परिणामों में टोपोलॉजी संरक्षित है।

चीयर्स एंड गुड लक,


इस बीच मुझे एक ऑनलाइन सेवा भी मिली है जो टोपोलॉजी का संरक्षण करते हुए सरलीकरण करती है: maphaper.org । मैं विकल्प के रूप में इसका इस्तेमाल किया, के रूप में ऐसा लगता है कि यह आर सीधे में संभव नहीं है (QGIS संरक्षण टोपोलॉजी वास्तव में नहीं है और मैं अन्य सॉफ्टवेयर संकुल पता नहीं है)
yellowcap

1
मैंने सागा 2.0.8 के साथ आपके अवलोकन का परीक्षण किया, और परिणाम में टोपोलॉजी संरक्षित नहीं है!
फैबियान ज़ींडल

2

अब rmapshaperएंडी टेचर द्वारा अद्भुत पैकेज है जिसमें एक सरलीकृत फ़ंक्शन शामिल है जो "टोपोलॉजिकली-जागरूक मल्टी-पॉलीगॉन सरलीकरण करता है"।

उनके गिथुब रेपो से, एक उदाहरण उदाहरण:

states_simp <- ms_simplify(states_sp)

वस्तु कहां states_spहैspatialPolygons*

अधिक जानकारी के लिए पैकेज README देखें: https://github.com/ateucher/rmapshaper


0

यह मदद करनी चाहिए:

  • gSimplify(..., topologyPreserve=T)से GEOSपैकेज

2
दुर्भाग्यवश टोपोलॉजी संरक्षित विकल्प gSimplifyवास्तव में कई बहुभुजों पर टोपोलॉजी को संरक्षित नहीं करता है। मुझे लगता है कि यह एकल या मल्टीप्लगॉन की टोपोलॉजी से अधिक संबंधित है। कई बहुभुजों के साथ एक आकृति के लिए, टोपोलॉजी संरक्षित नहीं है।
yellowcap
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.