প্রথম কাজটি হল ভূ-স্থানীয় স্থানাঙ্কগুলিতে ওভারল্যাপিং আয়তক্ষেত্রটি নির্ধারণ করা। এটি করার জন্য, আপনি প্রতিটি উত্স চিত্রের জন্য জিওটান্সফর্ম পাবেন:
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]
)) বিরোধী চিহ্ন থাকলেও এটি কি কাজ করে ? (উল্লম্বভাবে বা অনুভূমিকভাবে rasters এক টুসকি হবে কোনটি, আমি মনে করি।) অথবা যদিabs(gt1[2])
এবংabs(gt1[4])
তার চেয়ে অনেক বেশী হয়abs(gt1[1])
এবংabs(gt1[5])
কিন্তুabs(gt2[2])
ওabs(gt2[4])
চেয়ে ছোট হয়abs(gt2[1])
এবংabs(gt2[5])
(সম্ভবত তির্যকভাবে rasters এক টুসকি হবে যা)?