J'essaie d'extraire des valeurs de rupture naturelles à partir d'un raster à l'aide de Python.
Le processus prévu est le suivant: objet raster Arcpy vers NumPy Array (à l'aide de RasterToNumPyArray ) vers des valeurs de rupture naturelles (à l'aide de la fonction PySAL Natural Breaks ).
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)
Ce code renvoie l'erreur "ValueError: la matrice doit être bidimensionnelle".
Pour autant que je sache, greenArray est un tableau à 2 dimensions.
arcgis-desktop
arcpy
numpy
pysal
valueerror
phloème
la source
la source
flatten
etravel
; leNatural_Breaks
semble accepter uniquement un vecteur de valeurs 1d (ou un(n, 1)
vecteur).Réponses:
Merci pour l'aide, Branco et om_henners.
La réponse à mon problème semble être d'utiliser numpy.ravel () pour changer le tableau produit par arcpy.RasterToNumPy () en un tableau 1D:
la source