Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
导入Geotiff文件时,如何为Dask.array中的频带指定名称?_Dask_Python Xarray_Geotiff - Fatal编程技术网

导入Geotiff文件时,如何为Dask.array中的频带指定名称?

导入Geotiff文件时,如何为Dask.array中的频带指定名称?,dask,python-xarray,geotiff,Dask,Python Xarray,Geotiff,我正在尝试使用Dask和xarray以及以下代码导入具有多个频带的Geotiff: 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_ras

我正在尝试使用Dask和xarray以及以下代码导入具有多个频带的Geotiff:

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  
目前,我为进入乐队所做的工作如下:

df.isel(band=1) 
这并不是那么直观。
谢谢

您可以使用
isel(band=)
方法创建您的单个数据数组,然后从中构造/合并一个新的数据集。谢谢。这就是我现在正在做的,但是如果有一个重命名方法会更好。我不知道你到底希望做什么?是否要将频带值从1,2,3,4,5,6更改为其他值?请注意,您可以始终使用.to_dataframe()方法将xarray对象转换为pandas dataframe对象。我不尝试更改频带值。我只想给每个乐队命名。正如我在问题中提到的,我希望能够使用df['band1_name'],而不是df.isel(band=1)。
df.isel(band=1)