Lesen Sie mit Rasterio aus TIF-Übersichten

9

Ich lese ein Fenster eines Tif mit Rasterio. Wie verwende ich die verfügbaren Übersichten, um eine heruntergesampelte Version der Daten zu erhalten, anstatt sie mit der tatsächlichen Auflösung zu lesen?

Im Moment lese ich ein Fenster wie dieses:

rmin, cmin = source.index(xmin, ymin)
rmax, cmax = source.index(xmax, ymax)
data = source.read(band, window=((rmax, rmin), (cmin, cmax)))

Was ich machen will; was ich vorhabe zu tun:

rmin, cmin = source.index(xmin, ymin, use_overview=True)
rmax, cmax = source.index(xmax, ymax, use_overview=True)
data = source.read(band, window=((rmax, rmin), (cmin, cmax)), use_overview=True)

Irgendwelche Ideen? Beachten Sie, dass in meinem Fall die Übersichten intern sind , aber jede Lösung, die sich aus Übersichten ableitet, großartig ist.

bcollins
quelle

Antworten:

6

Beantwortet unter https://github.com/mapbox/rasterio/issues/710 .

Beispiel für das Einlesen eines 30x30-Fensters in ein 3x3-Array, in dem Übersichten (falls verfügbar) angezeigt werden.

arr = np.empty(shape=(3, 3)).astype(src.profile['dtype'])
arr = src.read(1, out=arr, window=((0, 30), (0, 30)))
arr array([[9195, 9116, 9134],
           [9158, 9144, 9085],
           [9010, 8935, 9002]], dtype=uint16)

Lassen Sie mich wissen, ob das für Sie funktioniert.

sgillies
quelle
1
Verwendet Rasterio immer Übersichten, falls verfügbar? Wenn perfekt relevante Übersichten nicht verfügbar sind, welche Algorithmen verwendet Rasterio zum Resampling und kann ausgewählt werden? (Beachten Sie, dass z. B. die Mittelwertbildung für den nächsten Nachbarn und die Flächenmittelung deutlich unterschiedliche Ausgaben ergeben.) ..Kann möglicherweise auf GDAL-Dokumente verweisen, um auf das Standardverhalten von Rasterio zu schließen ..
benjimin