Obtener valores de píxeles en un solo punto usando rasterio


14

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

Sin embargo, ¿hay una API directa dentro de rasterio (y no el cli) que se pueda usar para extraer valor en un solo punto en un ráster?

- EDITAR

with rasterio.drivers():

    # Read raster bands directly to Numpy arrays.
    #
    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)

Respuestas:


12

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

src.sample() toma un iterador sobre x, y tuplas, así que hazlo: for val in src.sample([(x, y)]): print(val)


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

Código agregado en mi pregunta anterior
usuario1186

44
src.sample()toma un iterador sobre las x, ytuplas, así que hazlo for val in src.sample([(x, y)]): print(val).
sgillies
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.