Lire des aperçus TIF à l'aide de rasterio

9

Je lis une fenêtre d'un tif en utilisant rasterio. Comment utiliser les aperçus disponibles pour obtenir une version sous-échantillonnée des données au lieu de lire à la vraie résolution?

En ce moment, je lis une fenêtre comme celle-ci:

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

Ce que je veux faire:

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)

Des idées? Notez que dans mon cas, les aperçus sont internes , mais toute solution qui lit les aperçus est excellente.

bcollins
la source

Réponses:

6

Répondu à https://github.com/mapbox/rasterio/issues/710 .

Exemple de lecture d'une fenêtre 30x30 dans un tableau 3x3 où les aperçus (si disponibles) entrent en jeu.

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)

Laissez-moi savoir si cela fonctionne pour vous.

sgillies
la source
1
Le rasterio utilise-t-il toujours des aperçus s'ils sont disponibles? Si des aperçus parfaitement pertinents ne sont pas disponibles, quels algorithmes rasterio utilise-t-il pour rééchantillonner et est-il sélectionnable? (Note par exemple , le plus proche voisin et donner zone moyenne des sorties sensiblement différentes.) ..Perhaps devrait se référer à GDAL docs de déduire le comportement par défaut rasterio ..
benjimin