我正在生成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。
答案 0 :(得分:1)
几乎可以肯定,程序崩溃的原因是,您正在读取文件,而文件仍处于打开状态。颜色表的格式和语法正确。以下代码将退出第一个上下文管理器以关闭文件,然后重新打开。请尝试:
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)