Rasterio 为每个波段设置一个唯一的名称

Rasterio set a unique name for each band

我有一个形状为 (b, N, M) 的数组,其中有 b 个条带或大小为 N x M 的图像。我可以使用以下方法将它们写入多波段 .tiff 文件:

        band_nums = range(1, b + 1)
        with rasterio.open(file_path, 'w', **meta_data) as dst:
            dst.write(arrays, indexes=band_nums)

我需要做的是为每个波段设置一个名称。目前,它设置默认名称 Band_0, Band_1, ..., Band_b.

您可以使用 set_description 方法:

 with rasterio.open(
    '.your_file.tif',
    'w',
    driver='GTiff',
    height=height,
    width=width,
    count=2,
    dtype=dtype,
    crs=crs,
    transform=transform,
 ) as dst:
    dst.write(band_1, 1)
    dst.set_band_description(1, 'Band 1 Name')
    dst.write(band_2, 2)
    dst.set_band_description(2, 'Band 2 Name')

否则,正如您所建议的,此解决方案同样有效:

dst.descriptions = tuple(['Band 1 name', 'Band 2 name', 'Band 3 name'])