Saya telah mencoba untuk memeriksa filter saya pada DEM raster untuk pengenalan pola dan selalu menghasilkan baris dan kolom terakhir yang hilang (seperti..20) . Saya sudah mencoba dengan PIL library, memuat gambar. Lalu dengan numpy. Outputnya sama.
Saya pikir, ada yang salah dengan loop saya, ketika memeriksa nilai dalam array (hanya memilih piksel dengan Identifikasi di ArcCatalog) saya menyadari bahwa nilai piksel tidak dimuat ke dalam array.
Jadi, cukup buka, masukkan ke dalam array dan simpan gambar dari array:
a=numpy.array(Image.open(inraster)) #raster is .tif Float32, size 561x253
newIm=Image.new(Im.mode, Im.size)
Image.fromarray(a).save(outraster)
Hasil dalam memotong baris dan kolom terakhir. Maaf, tidak dapat memposting gambar
Adakah yang bisa membantu untuk memahami mengapa? Dan menyarankan beberapa solusi?
EDIT:
Jadi, saya berhasil memuat raster kecil ke array numpy dengan bantuan teman-teman, tetapi ketika memiliki gambar yang lebih besar saya mulai mendapatkan kesalahan. Saya kira ini tentang batas array numpy, dan array secara otomatis dibentuk ulang atau bertaut seperti itu ... Jadi ex:
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
Intinya adalah saya tidak ingin membaca blok demi blok karena saya perlu penyaringan, beberapa kali dengan filter berbeda, ukuran berbeda .. Apakah ada pekerjaan di sekitar atau saya harus belajar rading dengan blok: O