मैं एक ही (छोटे) क्षेत्र में मल्टी-बैंड जियोटीफ़ रैस्टर फ़ाइलों के फसल बैचों के लिए एक सरल उपयोगिता लिख रहा हूं। गाल्डपावर का उपयोग करते हुए, मैं आसानी से एकल-बहुभुज क्लिपिंग शेपफाइल का उपयोग करके एक फ़ाइल को क्रॉप कर सकता हूं:
gdalwarp -cutline clipper.shp -crop_to_cutline input.tif output.tif
हालाँकि, मैं जिस वास्तविक क्षेत्र को क्लिप करना चाहता हूं, उसे शुरू में एक अन्य भू-रेखीय रेखापुंज फ़ाइल द्वारा परिभाषित किया जाएगा, न कि एक आकृति। यह अच्छा होगा यदि मैं क्लिपिंग फ़ाइल के रूप में उस रेखापुंज की सीमा का उपयोग कर सकता हूं, लेकिन मुझे यकीन नहीं है कि यह कैसे करना है। अप्रत्याशित रूप से, निम्नलिखित काम नहीं करता है (यह एक त्रुटि नहीं उठाता है, यह सिर्फ कुछ भी पैदा नहीं करता है):
gdalwarp -cutline clipper.tif-crop_to_cutline input.tif output.tif
तो, मेरा सवाल यह है कि gdalwarp -cutline
क्या रास्टर को आपूर्ति करने का कोई तरीका है ? वैकल्पिक रूप से, क्या कोई अन्य गदल फ़ंक्शन है जो एक रैस्टर को दूसरे रैस्टर का उपयोग करके क्लिप कर सकता है? यदि इनमें से कोई भी संभव नहीं है, तो क्या रेखापुंज की सीमा से परिभाषित एकल बहुभुज के साथ एक आकृति बनाने का एक बहुत ही सरल तरीका है?
इस कोड को एक अधिक व्यापक अजगर लिपि में लपेटा जाएगा, इसलिए मैं या तो कमांड लाइन गाल्ड यूटिलिटीज का उपयोग कर सकता हूं या गेल्ड के लिए किसी भी पाइथन बाइंडिंग का उपयोग कर सकता हूं।
एक साइड नोट के रूप में, मुझे पता है कि मैं आसानी से एक कतरन आकार बना सकता हूं जो QGIS में मेरे रेखापुंज की सीमा को कवर करता है। मैं ऐसा कर सकता हूं कि अगर मुझे सीधा हल नहीं मिलता है, लेकिन मैं अंततः दर्जनों पर इस उपयोगिता का उपयोग करके हवा निकालूंगा अगर एक बड़े स्वचालित विश्लेषण के हिस्से के रूप में सैकड़ों क्षेत्र नहीं हैं, तो मैं एक थकाऊ नहीं होना पसंद करूंगा मैनुअल कदम भले ही यह बहुत आसान है।
gdaltindex clipper.shp clipper.tif
द्वारा उपयोग की जाने वाली समस्या को हल करने के लिएgdalwarp -cutline clipper.shp -crop_to_cutline input.tif output.tif