Uzyskiwanie wartości pikseli w jednym punkcie za pomocą rasterio


14

Aby uzyskać wartość pojedynczego piksela w punkcie rastra za pomocą rasterio, istnieje przykład: https://github.com/mapbox/rasterio/pull/275

Czy jednak istnieje bezpośredni interfejs API w rasterio (a nie cli), którego można użyć do wyodrębnienia wartości w jednym punkcie rastra?

-- EDYTOWAĆ

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)

Odpowiedzi:


12

Metoda interfejsu API Python, która obsługuje polecenie rio-sample, jest udokumentowana tutaj: https://rasterio.readthedocs.io/en/latest/api/rasterio._io.html#rasterio._io.DatasetReaderBase.sample

src.sample() bierze iterator nad krotkami x, y, więc: for val in src.sample([(x, y)]): print(val)


dzięki! Mam problem ze składnią. Powinno to być: vals = src.sample((x, y))czy vals = src.sample(x, y)? Wydaje się, że żadne z nich nie działa
1186

Dodano kod do mojego pytania powyżej
1186

4
src.sample()przejmuje iterator nad x, ykrotkami, więc też for val in src.sample([(x, y)]): print(val).
sgillies 21.04.16
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.