Mendapatkan nilai piksel pada satu titik menggunakan rasterio


14

Untuk mendapatkan nilai piksel tunggal pada titik dalam raster menggunakan rasterio, ada contoh di sini: https://github.com/mapbox/rasterio/pull/275

Namun, apakah ada API langsung di dalam rasterio (dan bukan cli) yang dapat digunakan untuk mengekstraksi nilai pada satu titik dalam raster?

- 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)

Jawaban:


12

Metode Python API yang mendukung perintah rio-sampel didokumentasikan di sini: https://rasterio.readthedocs.io/en/latest/api/rasterio._io.html#rasterio._io.DatasetReaderBase.sample

src.sample() mengambil iterator lebih dari x, y tuple, jadi lakukan: for val in src.sample([(x, y)]): print(val)


Terima kasih! Saya mengalami masalah dengan sintaksis. Haruskah itu: vals = src.sample((x, y))atau vals = src.sample(x, y)? Tampaknya tidak berfungsi
user1186

Kode ditambahkan dalam pertanyaan saya di atas
user1186

4
src.sample()mengambil iterator di atas x, ytuple, begitu juga for val in src.sample([(x, y)]): print(val).
sgillies
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.