Eu tenho tentado verificar meus filtros no DEM raster para reconhecimento de padrões e isso sempre resulta em falta das últimas linhas e colunas (como 20) . Eu tentei com a biblioteca PIL, carregamento de imagem. Então com entorpecido. A saída é a mesma.
Eu pensei que algo estava errado com meus loops, ao verificar os valores na matriz (apenas escolhendo pixels com Identificação no ArcCatalog), percebi que os valores de pixel não eram carregados em uma matriz.
Então, basta abrir, colocar no array e salvar a imagem do 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)
Resulta no corte das últimas linhas e colunas. Desculpe, não posso postar a imagem
Alguém poderia ajudar a entender o porquê? E aconselhar alguma solução?
EDITAR:
Então, consegui carregar pequenos rasters em um array numpy com a ajuda de caras, mas ao ter uma imagem maior, começo a receber erros. Suponho que seja sobre os limites da matriz numpy e, portanto, a matriz é automaticamente remodelada ou algo assim ... Então 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
O ponto é que eu não quero ler bloco por bloco, pois preciso filtrar, várias vezes com filtros diferentes, tamanhos diferentes. Existe alguma solução alternativa ou devo aprender a radar por blocos: O