Отримання значень пікселів в одній точці за допомогою растеріо


14

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

Однак чи є прямий API в межах растеріо (а не в кліпі), який можна використовувати для отримання значення в одній точці растра?

- EDIT

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

Метод API Python, який підтримує команду 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)? Ні, здається, не працює
користувач1186

Доданий код у моєму питанні вище
користувач1186

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.