Получение значений пикселей в одной точке с использованием растерио


14

Чтобы получить значение одного пикселя в точке растра с помощью растерио, приведите пример здесь: https://github.com/mapbox/rasterio/pull/275

Однако существует ли прямой API в растерио (а не в cli), который можно использовать для извлечения значения в одной точке растра?

-- РЕДАКТИРОВАТЬ

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)

Ответы:


12

Метод Python API, который поддерживает команду rio-sample, описан здесь: https://rasterio.readthedocs.io/en/latest/api/rasterio._io.html#rasterio._io.DatasetReaderBase.sample

src.sample() принимает итератор для кортежей x, y, так что: for val in src.sample([(x, y)]): print(val)


Благодарность! У меня проблемы с синтаксисом. Должно ли это быть: vals = src.sample((x, y))или vals = src.sample(x, y)? Ни один из них не работает
user1186

Добавленный код в моем вопросе выше
user1186

4
src.sample()принимает итератор над x, yкортежами, так что и делайте for val in src.sample([(x, y)]): print(val).
sgillies
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.