ईएसआरआई शेपफाइल का केवल हिस्सा आर में पढ़ें


10

मेरे पास एक बहुत बड़ा ESRI शेपफाइल (> 8000 पॉलीगॉन, .shp फाइल> 32 एमबी) है, जिसे मैं विंडोज 7 पर आर में पढ़ना चाहता हूं।

मैं rgdal और readOGR () से परिचित हूं। हालाँकि, आकार के इस आकार के साथ, संपूर्ण आकृति को स्मृति में पढ़ना बहुत धीमी प्रक्रिया है। इसके अलावा, मुझे केवल 8,000 के कुछ क्लस्टर्ड पॉलीगन्स (<100) में दिलचस्पी है जो शेपफाइल में निहित हैं। जिस प्रक्रिया के लिए मुझे यह करने की आवश्यकता है वह अत्यधिक दोहरावदार है, अर्थात शेपफाइल को कई बार लोड करने की आवश्यकता होती है, इसलिए यह वर्तमान में बहुत धीमी है।

इसलिए, मैं सोच रहा हूं कि क्या प्रक्रिया में तेजी लाने के लिए केवल आकृति के एक हिस्से में पढ़ना संभव है। इस तरह की भारी मात्रा में डेटा को लोड करना और फिर इसे छोड़ना ज्यादातर अव्यावहारिक लगता है।


आप किस प्लेटफॉर्म का उपयोग कर रहे हैं? यदि आपके पास आर्कजीआईएस तक पहुंच है, तो मुझे लगता है कि आप आर्कपी में कुछ लिख सकते हैं जो सबसे अच्छा चयन करता है और फिर अजगर स्क्रिप्ट से एक आर प्रक्रिया निष्पादित करता है। यह निश्चित रूप से संभव है ... अजगर से आर कोड को निष्पादित करने के लिए एक Google खोज चलाएं।
जियो जॉच

3
शायद आपके डेटा के उस हिस्से को नए आकार में निर्यात करने की कोशिश करें, जो आपके लिए महत्वपूर्ण है, और फिर आर। में इस पर काम करें
ami

यह शायद sf के साथ काम करेगा। लेकिन इसे SaveRDS के साथ R कार्यक्षेत्र प्रारूप में सहेजें। SQLite या समान रूप से स्टोर करने के तरीके हैं, लेकिन मुझे संदेह है कि आवश्यक है
mdsumner

जवाबों:


8

केवल एक चीज जो दिमाग में आती है, वह है नई "sfr" लाइब्रेरी का लाभ उठाना और सब्मिट करने के लिए उसका संबद्ध साधारण फीचर क्लास। SFR पुस्तकालय वर्तमान में GitHub पर उपलब्ध है और यहाँ एक है ट्यूटोरियल आप आरंभ करने के लिए।

मुझे विश्वास नहीं है कि आप एक सबसेट क्वेरी के आधार पर डेटा को स्ट्रीम कर सकते हैं, लेकिन यह पट्टे पर पढ़ने की गति को काफी कम कर देगा और माना जाता है कि यह आर स्पैटियल कक्षाओं का भविष्य है

एक अन्य विकल्प डेटाबेस में आपके स्थानिक डेटा को डेटाबेस में संग्रहीत करना होगा (उदाहरण के लिए, पोस्टजीआईएस) और क्वेरी। बड़े डेटा से निपटने का यह एक बेहद कारगर तरीका हो सकता है।


2
sf: पैकेज संस्करण 0.2 (2016/10/26) के बाद से क्रैन पर उपलब्ध है cran.r-project.org/web/packages/sf/index.html
आरसीएस

1

मुझे लगता है कि जीजीएस जैसे क्यूजीआईएस का उपयोग करना और आपके द्वारा आवश्यक सुविधाओं का चयन करना एक अच्छा तरीका होगा।
यदि आपको उन परिणामों को वापस मर्ज करने की आवश्यकता है जो आप 7900 पॉलीगॉन के साथ एक फ़ाइल बना सकते हैं जिसे आप संसाधित नहीं करना चाहते हैं, तो 100 पॉलीगॉन की प्रक्रिया करें, और प्रसंस्करण के बाद फिर से जुड़ जाएं।


0

आप org2ogrकमांड का उपयोग करके एक आकृति का सबसेट बना सकते हैं , जैसा कि यहाँ पर दिया गया है:

विशेषताओं द्वारा सुविधाओं का चयन करना ogr2ogr

हालाँकि आपको अपनी इच्छित सुविधाओं का चयन करने के लिए एक शर्त का पता लगाना होगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.