Leia as visões gerais do TIF usando o rasterio

9

Estou lendo uma janela de um tif usando rasterio. Como utilizo as visões gerais disponíveis para obter uma versão reduzida dos dados em vez de ler na resolução real?

Agora eu estou lendo uma janela como esta:

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

O que eu quero fazer:

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)

Alguma ideia? Observe que, no meu caso, as visões gerais são internas , mas qualquer solução que leia as visões gerais é ótima.

bcollins
fonte

Respostas:

6

Respondida em https://github.com/mapbox/rasterio/issues/710 .

Exemplo de leitura de uma janela 30x30 em uma matriz 3x3 onde as visões gerais (se disponíveis) são exibidas.

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)

Deixe-me saber se isso funciona para você.

sgillies
fonte
1
O rasterio sempre usa visões gerais, se disponível? Se as visões gerais perfeitamente relevantes não estiverem disponíveis, quais algoritmos o rasterio usa para reamostrar e é selecionável? (Nota eg vizinho mais próximo e dar espaço-média visivelmente diferentes saídas.) ..Perhaps devem consultar docs GDAL ao comportamento RasterIO padrão inferir ..
benjimin