पहली बात यह है कि भू-स्थानिक निर्देशांक में अतिव्यापी आयत का निर्धारण करना है। ऐसा करने के लिए, आपको प्रत्येक स्रोत छवि के लिए जियोट्रांसफॉर्म मिलेगा:
gt1 = ds1.GetGeoTransform()
# r1 has left, top, right, bottom of dataset's bounds in geospatial coordinates.
r1 = [gt1[0], gt1[3], gt1[0] + (gt1[1] * ds1.RasterXSize), gt1[3] + (gt1[5] * ds1.RasterYSize)]
# Do the same for dataset 2 ...
intersection = [max(r1[0], r2[0]), min(r1[1], r2[1]), min(r1[2], r2[2]), max(r1[3], r2[3])]
फिर उस आयत को प्रत्येक छवि के लिए ऊपर और बाएँ निर्देशांक को जोड़कर पिक्सेल में बदल दें और पिक्सेल आकार को गोल करके विभाजित करें।
यहां से आप ReadRaster()प्रत्येक छवि पर कॉल कर सकते हैं , यह पिक्सेल एक्सेलेंट देता है जिसे आपने अभी गणना की है:
band.ReadRaster(px1[0], px1[1], px1[2] - px1[0], px1[3] - px1[1], px1[2] - px1[0], px1[3] - px1[1],
# <band's datatype here>
)
मैं थोड़ा थक गया हूं, इसलिए अगर इससे कोई मतलब नहीं है, मुझे बताएं!
gt1[1]औरgt2[1](याgt1[5]औरgt2[5]) संकेत का विरोध किया है? (जो में से किसी एक को लंबवत रूप से या क्षैतिज रूप से फ्लिप करेगा, मुझे लगता है।) या यदिabs(gt1[2])औरabs(gt1[4])से अधिक हैंabs(gt1[1])औरabs(gt1[5])लेकिनabs(gt2[2])और कीabs(gt2[4])तुलना में छोटे हैं (abs(gt2[1])औरabs(gt2[5])जो संभवतः आपदाओं में से एक को फ्लिप करेगा)?