รับค่าพิกเซลที่จุดเดียวโดยใช้ rasterio


14

ในการรับค่าพิกเซลเพียงจุดเดียวใน raster โดยใช้ rasterio มีตัวอย่างอยู่ที่นี่: https://github.com/mapbox/rasterio/pull/275

อย่างไรก็ตามมี API โดยตรงภายใน rasterio (ไม่ใช่ cli) ซึ่งสามารถใช้เพื่อแยกค่าที่จุดเดียวใน raster หรือไม่?

- แก้ไข

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 tuples ดังนั้นทำ: 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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.