Ich versuche, mit Python natürliche Unterbrechungswerte aus einem Raster zu extrahieren.
Der beabsichtigte Prozess lautet : Arcpy-Rasterobjekt an NumPy-Array (unter Verwendung von RasterToNumPyArray ) auf natürliche Unterbrechungswerte (unter Verwendung der PySAL-Funktion für natürliche Unterbrechungen ).
import arcpy, pysal
from pysal.esda.mapclassify import Natural_Breaks as nb
# code to create greenIndex arcpy Raster object here
greenArray = arcpy.RasterToNumPyArray(greenIndex)
breaks = nb(greenArray,k=2,initial=20)
Dieser Code gibt den Fehler "ValueError: Matrix muss zweidimensional sein" zurück.
Soweit ich weiß, ist greenArray ein zweidimensionales Array.
arcgis-desktop
arcpy
numpy
pysal
valueerror
Phloem
quelle
quelle
flatten
und Recht habenravel
. DasNatural_Breaks
scheint nur einen 1d-Wertevektor (oder einen(n, 1)
Vektor) zu akzeptieren .Antworten:
Danke für die Hilfe, Branco und om_henners.
Die Antwort auf mein Problem scheint darin zu bestehen, mit numpy.ravel () das von arcpy.RasterToNumPy () erzeugte Array in ein 1D-Array zu ändern:
quelle