Processing math: 0%

19 votos

Obteniendo valores de píxel en un punto único usando rasterio

Para obtener un valor de píxel único en un punto en un ráster usando rasterio, hay un ejemplo aquí: https://github.com/mapbox/rasterio/pull/275

Sin embargo, ¿hay una API directa dentro de rasterio (y no la interfaz de línea de comandos) que se pueda utilizar para extraer el valor en un solo punto en un ráster?

-- EDIT

with rasterio.drivers():

    # Leer bandas de ráster directamente en matrices Numpy.
    #
    with rasterio.open('C:\\Users\\rit\\38ERP.tif') as src:
        x = (src.bounds.left + src.bounds.right) / 2.0
        y = (src.bounds.bottom + src.bounds.top) / 2.0

        vals = src.sample((x, y))
        for val in vals:
            print list(val)

19voto

Antonio Haley Puntos 2588

El método de la API de Python que admite el comando rio-sample está documentado aquí: https://rasterio.readthedocs.io/en/latest/api/rasterio._io.html#rasterio._io.DatasetReaderBase.sample

src.sample() toma un iterador sobre tuplas x, y, así que haz lo siguiente:

for val in src.sample([(x, y)]): 
    print(val)

0 votos

¡Gracias! Estoy teniendo problemas con la sintaxis. ¿Debería ser: vals = src.sample((x, y)) o vals = src.sample(x, y)? Ninguna parece funcionar.

0 votos

Agregué código en mi pregunta anterior

4 votos

src.sample() toma un iterador sobre tuplas x, y, entonces haz for val in src.sample([(x, y)]): print(val).

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