Daha çox

Nəticə yalnız kəsişən bölgədə olması üçün GDAL -a fərqli ölçülü rasterləri necə əlavə etmək olar

Nəticə yalnız kəsişən bölgədə olması üçün GDAL -a fərqli ölçülü rasterləri necə əlavə etmək olar


İki raster əlavə edən və tək raster çıxışı yaradan bir Python metodu yazıram. Məndən asılı olmayan səbəblərə görə giriş rasterlərinin əhatə dairəsi fərqlidir, lakin üst -üstə düşür.

Çıxış rasterinin ölçüsü yalnız iki girişin kəsişən bölgəsi olacaq şəkildə çıxışı yaratmaq üçün yalnız üst -üstə düşən 2 bölgədə üst -üstə düşən giriş raster pikselləri üzərində işləmək mümkündürmü?


Ediləcək ilk şey, coğrafi koordinatlarda üst -üstə düşən düzbucağı təyin etməkdir. Bunu etmək üçün hər bir mənbə görüntüsü üçün geotransformasiya əldə edirsiniz:

gt1 = ds1. r1 = [gt1 [0], gt1 [3], gt1 [0] + (gt1 [1] * ds1.RasterXSize), gt1 [3] + (gt1 [5] * ds1.RasterYSize)] # Eyni şeyi edin verilənlər bazası 2… kəsişmə = [max (r1 [0], r2 [0]), min (r1 [1], r2 [1]), min (r1 [2], r2 [2]), maksimum (r1 [3] ], r2 [3])]

Sonra yuxarı və sol koordinatları çıxarıb piksel ölçüsünə bölməklə yuvarlaqlaşdıraraq hər bir görüntü üçün bu düzbucağı pikselə çevirin.

Buradan zəng edə bilərsinizReadRaster ()hər bir şəkil üçün, hesabladığınız pikselin genişliyini verir:

band.ReadRaster (px1 [0], px1 [1], px1 [2] - px1 [0], px1 [3] - px1 [1], px1 [2] - px1 [0], px1 [3] - px1 [1], #  )

Bir az yoruldum, buna görə çox məntiqli deyilsə, mənə bildirin!


Üçüncü kəsişmə elementi min olmalıdır (r1 [2], r2 [2]):

kəsişmə = [max (r1 [0], r2 [0]), min (r1 [1], r2 [1]), min (r1 [2], r2 [2]), maksimum (r1 [3], r2 [3])]

Məlumat toplusunun əslində kəsişdiyini yoxlamaq üçün bir məntiq də tövsiyə edərdim.

Bu bir yanaşmadır:

əgər (kəsişmə [2]