Lấy giá trị pixel tại một điểm bằng rasterio


14

Để có được một giá trị pixel tại một điểm trong raster bằng rasterio, có một ví dụ ở đây: https://github.com/mapbox/rasterio/pull/275

Tuy nhiên, có API trực tiếp trong rasterio (chứ không phải cli) có thể được sử dụng để trích xuất giá trị tại một điểm duy nhất trong raster không?

-- BIÊN TẬP

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)

Câu trả lời:


12

Phương thức API Python hỗ trợ lệnh rio-sample được ghi lại ở đây: https://rasterio.readthedocs.io/en/latest/api/rasterio._io.html#rasterio._io.DatasetReaderBase.sample

src.sample() mất một iterator trên x, y tuples, do đó: for val in src.sample([(x, y)]): print(val)


cảm ơn! Tôi gặp rắc rối với cú pháp. Nó nên là: vals = src.sample((x, y))hay vals = src.sample(x, y)? Cả hai dường như không hoạt động
user1186

Đã thêm mã trong câu hỏi của tôi ở trên
user1186

4
src.sample()mất một iterator trên x, ytuples, do đó, làm for val in src.sample([(x, y)]): print(val).
sgillies
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.