首页 > 解决方案 > 生成 GeoTIFF 颜色图

问题描述

我正在生成 2D 统计图,并且还想生成和保存图像颜色图。平均尺寸图像的数据类型为 float32。以下示例从在线资源修改:

with rasterio.open(name,'w',**profile) as dst:
    dst.write(data.astype(np.float32), 1)
    dst.write_colormap(
        1, {
            0: (255, 0, 0, 255),
            255: (0, 0, 255, 255) })
    cmap = dst.colormap(1)
    print (cmp)

不起作用,对 colormap(1) 的调用返回一个 NULL 表并终止程序。

将数据类型更改为 uint8 或 uint16,它以某种方式工作,但我一直无法找到有关如何更改浮点和整数数据类型的颜色表和映射的示例。

有人可以提供一个片段来展示如何为浮点图像生成不同的颜色图、颜色解析和/或颜色托盘吗?虽然我目前正在使用 rasterio,但如果有人可以发布解决方案,我也可以转换此 GDAL。

标签: pythongdalcolormapgeotiffrasterio

解决方案


您的程序崩溃的原因几乎可以肯定是因为您在文件仍处于打开状态时正在读取它。颜色表的格式和语法是正确的。以下代码将退出第一个上下文管理器以关闭文件,然后重新打开。请试试:

with rasterio.open(name,'w',**profile) as dst:
    dst.write(data.astype(np.float32), 1)
    dst.write_colormap(
        1, {
            0: (255, 0, 0, 255),
            255: (0, 0, 255, 255) })

with rasterio.open(name) as dst:
    cmap = dst.colormap(1)
    print (cmp)

推荐阅读