11 votos

PySAL natural rompe matriz Numpy

Estoy tratando de extracto natural de valores de corte a partir de un raster usando Python.

La intención de proceso: Arcpy trama objeto a la Colección de la Matriz (usando RasterToNumPyArray) natural de valores de corte (utilizando PySAL Natural Saltos de la función).

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 devuelve el error, "ValueError: matriz debe ser de 2-dimensional".

Hasta donde yo sé, greenArray es una de 2 dimensiones de la matriz. Todas las sugerencias son más que bienvenidas!

6voto

Marcin Puntos 11

Gracias por la ayuda, Branco y om_henners.

La respuesta a mi problema parece ser utilizar numpy.ravel() para cambiar la matriz producida por arcpy. RasterToNumPy() a un arreglo de 1D:

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.ravel(),k=2,initial=20)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X