Ich habe versucht, meine Filter im DEM-Raster auf Mustererkennung zu überprüfen. Dabei fehlen immer die letzten Zeilen und Spalten (wie z . B. 20) . Ich habe mit PIL-Bibliothek versucht, Bilder zu laden. Dann mit Numpy. Die Ausgabe ist die gleiche.
Ich dachte, mit meinen Schleifen stimmt etwas nicht, als ich die Werte im Array überprüfte (indem ich nur die Pixel mit "Identifikation" in ArcCatalog auswählte), stellte ich fest, dass die Pixelwerte nicht in ein Array geladen wurden.
Öffnen Sie einfach das Array und speichern Sie das Bild aus dem 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)
Entfernt die letzten Zeilen und Spalten. Das Bild kann leider nicht # gepostet werden
Kann jemand helfen zu verstehen, warum? Und eine Lösung empfehlen?
BEARBEITEN:
Ich habe es also geschafft, mit Hilfe von Leuten kleine Raster in Numpy-Arrays zu laden, aber wenn ich ein größeres Bild habe, bekomme ich Fehler. Ich nehme an, es geht um die Grenzen des Numpy-Arrays, und so wird das Array automatisch umgeformt oder ähnliches ... Also Bsp .:
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
Der Punkt ist, dass ich Block für Block nicht lesen möchte, da ich mehrmals mit verschiedenen Filtern und verschiedenen Größen filtern muss