8 votos

Python/GDAL obtener valores únicos en discretas con valores de ráster

Me gustaría recibir algunos consejos sobre la forma más eficiente para devolver una lista de valores únicos de una discreta con valores raster usando Python y GDAL.

Yo había pensado que la manera más obvia sería la de examinar la trama de la tabla de atributos, pero si hago band.GetDefaultRAT() en la banda de un dataset ráster que contiene un atributo de la tabla (la tabla es visible en ArcCatalog, de todos modos), el resultado es siempre None:

>>> rat = band.GetDefaultRAT()
>>> rat == None
True

En ese caso, me acaban de tener para escanear a través de cada celda de la trama y crear una lista de valores únicos de forma manual. Es esta la única manera de hacerlo?

O hay una manera de construir una tabla de atributos con Python y GDAL, luego de la consulta para una lista de valores únicos?

10voto

Steven Parkes Puntos 625

Si he entendido correctamente, puede utilizar np.única función de numpy lib:

from osgeo import gdal
import numpy as np

ds = gdal.Open("myimg.ext")
band =  ds.GetRasterBand(1)
array = np.array(band.ReadAsArray())
values = np.unique(array)

o usted puede one-shot:

values = np.unique(np.array(ds.GetRasterBand(1).ReadAsArray()))

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