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.
flatten
und Recht haben ravel
. Das Natural_Breaks
scheint nur einen 1d-Wertevektor (oder einen (n, 1)
Vektor) zu akzeptieren .