Как назначить имена полосам в Dask.array при импорте файлов Geotiff? - PullRequest
0 голосов
/ 10 января 2020

Я пытаюсь импортировать Geotiff с несколькими полосами, используя Dask и xarray и следующий код:

import xarray as xr
chunks = {'x': 15886, 'y': 2400, 'band': 1}
df= xr.open_rasterio('multiband.tif',chunks = chunks)
df

, который выглядит как df:

<xarray.DataArray (band: 6, y: 2400, x: 15886)>
dask.array<open_rasterio-b9dd4de67eb722145cdc7b5a3510e05e<this-array>, shape=(6, 2400, 15886), dtype=uint8, chunksize=(1, 2400, 15886), chunktype=numpy.ndarray>
Coordinates:
  * band     (band) int32 1 2 3 4 5 6
  * y        (y) float64 70.0 69.99 69.99 69.99 69.98 ... 60.01 60.01 60.01 60.0
  * x        (x) float64 -146.2 -146.2 -146.2 -146.2 ... -80.01 -80.0 -80.0
Attributes:
    transform:         (0.0041666666662862895, 0.0, -146.190219951, 0.0, -0.0...
    crs:               +init=epsg:4326
    res:               (0.0041666666662862895, 0.0041666666662862895)
    is_tiled:          0
    nodatavals:        (nan, nan, nan, nan, nan, nan)
    scales:            (1.0, 1.0, 1.0, 1.0, 1.0, 1.0)
    offsets:           (0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
    AREA_OR_POINT:     Area
    TIFFTAG_SOFTWARE:  HEG-Modis Reprojection Tool  Nov 4, 2004  

И полосы сохраняются в Dask.array. Интересно, как я могу дать имена каждой группе (аналогично «переменным данных» в xarray). Тогда, например, я могу получить доступ к каждой группе следующим образом:

df['band1name']

В настоящее время то, что я делаю, чтобы получить доступ к группам, выглядит примерно так:

df.isel(band=1) 

, что не так интуитивный. Спасибо

...