Я намагався перевірити свої фільтри на DEM- растрі на предмет розпізнавання шаблонів, і це завжди призводить до відсутності останніх рядків і стовпців (наприклад, 20) . Я спробував з бібліотекою PIL, завантаженням зображення. Потім з нумером. Вихід той самий.
Я подумав, що з моїми циклами щось не так, під час перевірки значень у масиві (лише підбір пікселів з ідентифікацією в ArcCatalog) я зрозумів, що значення пікселів не завантажуються в масив.
Отже, просто відкриваючи, вкладаючи в масив і зберігаючи зображення з масиву:
a=numpy.array(Image.open(inraster)) #raster is .tif Float32, size 561x253
newIm=Image.new(Im.mode, Im.size)
Image.fromarray(a).save(outraster)
Результати відрізання останніх рядків та стовпців. Вибачте, не можна розмістити зображення
Хто-небудь міг допомогти зрозуміти, чому? І порадити якесь рішення?
Редагувати:
Отже, мені вдалося завантажити маленькі растри в numpy масив за допомогою хлопців, але коли я маю більше зображення, я починаю отримувати помилки. Я припускаю, що мова йде про межі масиву numpy, і тому масив автоматично переробляється чи розмірується так ... Так наприклад:
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
Справа в тому, що я не хочу читати блок за блоком, оскільки мені потрібна фільтрація, кілька разів з різними фільтрами, різного розміру .. Чи є якась робота навколо, або я повинен навчитися опрацюванню блоків: O