रेखापुंज करने के लिए बड़े आकार का


13

मेरे पास एक बड़ा शेपफाइल (1 जीबी) है और इसे उभारने की जरूरत है। मैंने पहले से ही कोशिश की है।

1.) यह v.in.ogrत्रुटि संदेश के साथ विफल का उपयोग कर GRASS में आयात करें: ERROR: G_realloc: break_polygons.c: 188 पर 498240036 बाइट आवंटित करने में असमर्थ

2.) मेरा दूसरा विचार PostGIS का उपयोग करना था। आकृति को आयात करें, इसे ग्रिड के x, y स्थान पर पुनः सेट करें और फिर इन बिंदुओं को निर्यात करें और xyz से ग्रिड बनाएं। मैंने सफलतापूर्वक शेपफाइल्स (बहुभुज और अंक) का आयात किया लेकिन 300 मिलियन अंकों के साथ 1 मिलियन बहुभुज को पार करना बहुत धीमा प्रतीत होता है। मैंने निम्नलिखित PostGIS सैटमेंट का उपयोग किया, शायद इसमें सुधार की गुंजाइश है।

select polygons.land_id,grid.geom from grid,polygons where grid.geom && polygons.geom and within(grid.geom,polygons.geom)

3.) मैंने भी simplify()PostGIS में उपयोग करने की कोशिश की । लेकिन मैं कई छोटे बहुभुजों से हार गया (अर्थात कुछ क्षेत्र जो केवल छोटे बहुभुजों से आच्छादित थे, अशक्त हो गए)।

किसी भी विचार की बहुत प्रशंसा की जाएगी।


1
आपने किस GRASS संस्करण का उपयोग किया? यह कम से कम 6.4 होना चाहिए। ध्यान दें कि GRASS 7 में बड़े फ़ाइल समर्थन को वेक्टर मानचित्रों के लिए भी लागू किया गया है जो कि संकेतित समस्या को दूर करने में मदद करनी चाहिए (यह बहुत तेज़ है)।
markusN

मैं वर्तमान में GRASS 6.4 का उपयोग कर रहा हूं। मैं जल्द ही 7 को अपडेट करूंगा, संकेत के लिए धन्यवाद।
जोहान्स

आप यहाँ पर नवीनतम precompiled winGRASS 7 बायनेरिज़ प्राप्त कर सकते हैं: wingrass.fsv.cvut.cz/grass70
markusN

जवाबों:


14

आप gdal_rasterize का प्रयास कर सकते हैं , हालाँकि मैंने इसे इतने बड़े आकार के साथ प्रयोग नहीं किया है, इसलिए आपके पास वही मुद्दे हो सकते हैं जैसा आपने GRASS के साथ किया था। मुझे लगता है कि निम्नलिखित कुछ काम करना चाहिए (GDAL> = 1.8.0 के साथ):

gdal_rasterize -a AN_ATTRIB -l THE_LAYER -a_nodata -9999 -a_srs EPSG:27700 -co TILED=YES -tr 10 10 -ot Float32 src.shp dest.tif

बेशक, आपको अपने स्रोत शेपफाइल के आधार पर कुछ विकल्पों के साथ खेलना होगा। सबसे महत्वपूर्ण पैरामीटर -tr है जो पिक्सेल के रिज़ॉल्यूशन को निर्दिष्ट करता है; इसके बिना, आप अपने आप को एक बहुत बड़े रैस्टर के साथ पा सकते हैं ...

यदि आप GRASS से चिपके रहना चाहते हैं, तो रेस्टराइजेशन के लिए थोड़ी सी सीमा तय करने की कोशिश करें, और इस प्रक्रिया को प्रबंधनीय विखंडू में विभाजित करें, फिर चूहों को एक में मोज़ेक करें।


1
gdal rasterize ने यह सब लगभग 5 मिनट में किया :)। इसके लिए बहुत धन्यवाद!
जोहान्स

ठंडा! मुझे खुशी है कि इसने काम किया।
मर्सीवैकिंग

3

अपने पहले इरादे के बारे में, क्या आप अधिक रैम या स्वैप डिस्क स्थान वाली मशीन पर v.in.ogr कमांड चलाने की कोशिश कर सकते हैं ?

यदि आप इसे फिर से विलय करने से पहले उनमें से प्रत्येक में एक rasterize कई फ़ाइलों में विभाजित नहीं कर सकते।


1

यदि आपको रैस्टोरेशन करते समय अधिक नियंत्रण की आवश्यकता होती है, तो पेरीजियो की पॉली_डेंसिटी ओर स्क्रिप्ट की जांच करें जो हुड के नीचे GDAL का उपयोग करता है, लेकिन ओवरलैपिंग सुविधाओं या gdal_rasterizeअकेले उन लोगों से परे सशर्त मूल्यांकन जोड़ने के लिए उपयोग किया जा सकता है ।


0

जैक द रिपर की तरह, इसे भागों द्वारा करें। पोस्टगिस से घास में डेटा आयात के स्लाइस निर्यात और परिवर्तित।


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