Estou tentando extrair valores de quebra naturais de uma varredura usando Python.
O processo pretendido vai: Objeto de varredura do Arcpy para NumPy Array (usando RasterToNumPyArray ) até valores de quebra naturais (usando a função 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)
Este código retorna o erro "ValueError: matrix deve ser bidimensional".
Tanto quanto eu sei, greenArray é uma matriz bidimensional.
arcgis-desktop
arcpy
numpy
pysal
valueerror
floema
fonte
fonte
flatten
eravel
; oNatural_Breaks
parece aceitar apenas um vector 1d de valores (ou, um(n, 1)
vector).Respostas:
Obrigado pela ajuda, Branco e om_henners.
A resposta para o meu problema parece ser usar numpy.ravel () para alterar a matriz produzida por arcpy.RasterToNumPy () para uma matriz 1D:
fonte