Rasterio kullanarak piksel değerlerini tek noktada elde etme


14

Rasterio kullanarak bir rasterdeki bir noktada tek bir piksel değeri elde etmek için burada bir örnek var: https://github.com/mapbox/rasterio/pull/275

Bununla birlikte, bir rasterdeki tek bir noktada değer elde etmek için kullanılabilecek rasterio içinde (cli değil) doğrudan bir API var mı?

-- DÜZENLE

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)

Yanıtlar:


12

Rio-sample komutunu destekleyen Python API yöntemi burada belgelenmiştir: https://rasterio.readthedocs.io/en/latest/api/rasterio._io.html#rasterio._io.DatasetReaderBase.sample

src.sample() x, y tuples üzerinde bir yineleyici alır, şunları yapın: for val in src.sample([(x, y)]): print(val)


Teşekkürler! Sözdiziminde sorun yaşıyorum. Olmalı: vals = src.sample((x, y))veya vals = src.sample(x, y)? İkisi de işe yaramıyor
user1186

Yukarıdaki
soruma

4
src.sample()x, ytuples üzerinde bir yineleyici alır , öyle for val in src.sample([(x, y)]): print(val).
sgillies
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.