मोसालिंग के लिए gdalwarp और gdal_merge में क्या अंतर है


16

मैं 100 एमबी के आसपास प्रत्येक में 20 डिम टिफ का विलय करना चाहता था, और मैंने गालवडप का इस्तेमाल किया (मुझे वर्चुअल फ़ाइल विकल्प के बारे में पता है):

gdalwarp $(list_of_tiffs) merged.tiff

हालाँकि इस आदेश में बहुत लंबा समय लगा, और कुछ 15 मिनट के बाद यह सेट से 5 वीं छवि को संसाधित कर रहा था। मैं इसे समाप्त करता हूं।

मैंने तब पाया कि gdal_merge.py स्क्रिप्ट का उपयोग मोज़ेकिंग के लिए भी किया जा सकता है, और यह कोशिश की:

gdal_merge.py $(list_of_tiffs)

जो 3min में कम पूरा हुआ।

जैसा कि मैंने उम्मीद की थी कि दोनों कमांड एक ही परिणाम का उत्पादन करेंगे, मुझे आश्चर्य है कि दोनों के बीच क्या अंतर है, क्योंकि परिणाम समान होने पर गालवडप को इतना समय क्यों लगता है?

जवाबों:


22

हालांकि मुझे नहीं पता कि GDAL कार्यक्षमता में इस ओवरलैप को क्यों प्रदान करता है, यह सुनिश्चित करने के लिए कि क्या वास्तव में इसे बनाने के लिए gdalwarp के लिए कैश सेट करना है:

# assuming 3G of cache here:
gdalwarp --config GDAL_CACHEMAX 3000 -wm 3000 $(list_of_tiffs) merged.tiff

मशीन पर रैम होने से अधिक कैश को परिभाषित नहीं करना सुनिश्चित करें।


इस ट्यूनिंग स्विच के बारे में कोई विचार नहीं था, जो वास्तव में इस प्रक्रिया को गति देता है। संदर्भ के लिए 3000 है 3GB (अधिक जानकारी trac.osgeo.org/gdal/wiki/UserDocs/GdalWarp ) मेरे पास मेरे सिस्टम पायथन में MKL के साथ NumPy बिल्ड है, लेकिन फिर भी gdalwarpकुछ और करना होगा, क्योंकि NumPy तेज नहीं हो सकता है, फिर C कार्यान्वयन, हालांकि यह तक पहुँच सकते हैं।
4

क्या 3000 वास्तव में 3GB है या यह 3072 होना चाहिए?
13:40 बजे miln40

15

मैं बस इस सवाल और संभावित जवाब के लिए आया था जब कुछ और खोज रहा था।

gdal_merge.py निकटतम पड़ोसी पुनरुत्पादन का उपयोग करता है। यदि आप उपयोग की गई रेज़ोमिंग पर नियंत्रण चाहते हैं, तो आपको इसके बजाय गाल्डवैप का उपयोग करना चाहिए।

स्रोत: trac.osgeo.org


5

gdal_merge.py उन्हें संसाधित करने से पहले सभी फ़ाइलों को मेमोरी में लोड करता है। इसलिए यह बड़ी फ़ाइलों को संसाधित करने में सक्षम नहीं है यदि आपकी मेमोरी छोटी है। यहाँ देखें

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