Kalıpları tanımak için filtrelerimi DEM raster üzerinde kontrol etmeye çalışıyorum ve bu her zaman son satır ve sütunların eksik kalmasına neden oluyor (20) . PIL kütüphanesi ile resim yükünü denedim. Sonra da numpy ile. Çıktı aynıdır.
Dizilerdeki değerleri kontrol ederken döngülerimde bir sorun olduğunu düşündüm (ArcCatalog'da Identification ile sadece pikselleri seçerek) Piksel değerlerinin diziye yüklenmediğini fark ettim .
Yani, sadece açmak, diziye koymak ve görüntüyü diziden kaydetmek:
a=numpy.array(Image.open(inraster)) #raster is .tif Float32, size 561x253
newIm=Image.new(Im.mode, Im.size)
Image.fromarray(a).save(outraster)
Son satırları ve sütunları keserek sonuçlanır. Üzgünüz, resmi # t gönderemiyorum
Nedenini anlamada herkes yardımcı olabilir mi? Ve bir çözüm öneriniz var mı?
DÜZENLE:
Bu yüzden, küçük rasterleri numpy dizisine erkeklerin yardımı ile yüklemeyi başardım, ancak daha büyük bir görüntüye sahip olduğumda hataları almaya başladım. Sanırım bu numpy dizisinin limitleri hakkında ve diyelim ki dizi otomatik olarak yeniden şekillendirilmiş veya smth ... Öyleyse:
Traceback (most recent call last):
File "<pyshell#36>", line 1, in <module>
ima=numpy.array(inDs.GetRasterBand(1).ReadAsArray())
File "C:\Python25\lib\site-packages\osgeo\gdal.py", line 835, in ReadAsArray
buf_xsize, buf_ysize, buf_obj )
File "C:\Python25\lib\site-packages\osgeo\gdal_array.py", line 140, in BandReadAsArray
ar = numpy.reshape(ar, [buf_ysize,buf_xsize])
File "C:\Python25\lib\site-packages\numpy\core\fromnumeric.py", line 108, in reshape
return reshape(newshape, order=order)
ValueError: total size of new array must be unchanged
Mesele şu ki, filtrelemeye ihtiyaç duyduğum blok bloğunu okumak istemiyorum, farklı filtrelerle birkaç kez, farklı boyutlarda .. Etrafta herhangi bir çalışma var mı veya bloklar halinde gölgelemeyi öğrenmeliyim: O