我正在使用下面的代码编写一个单波段tif。我最感兴趣的是为波段0和tiff一起编写一个色彩Map表。
下面的代码正在迭代其他一些文件,并成功地写出每个输入的每个波段。我希望能够适用于每个输出的色彩Map表。下面我试图要求将绿色限制在5类。
我想避免明确地避免导入GDAL -这似乎是完全可能的。
所以我的问题是如何写出应用了viridis色彩Map表的文件?如有必要,应用于波段[0]
import xarray as xr
import rioxarray
import cftime
import os
import datetime
from rasterio.enums import Resampling
import matplotlib.pyplot as plt
ds_input = "inputfile.nc"
operatingdir = '\\'
filename = ds_input[:-3]
#determine the maximum number of bands in the raster using the band name in position 0 of the common_key list
bandcount = 7
#create a colormap for the output raster, with 5 colour bands
cmap = plt.cm.get_cmap('viridis', 5)
#use a for loop to output each day of the forecast
for i in range(0, bandcount):
#Convert ds_netcdf_interp to raster using the max fbi values
ds_input.var_name.rio.to_raster('{}\\Output\\{}_number{}.tif'.format(operatingdir, filename, i),
windowed=True,
compress='lzw',
dtype='int16',
nodata=-9999,
overwrite=True,
tiled=True,
cloud_optimized=True,
driver='COG',
colormap=cmap
)
1条答案
按热度按时间fcwjkofz1#
您可以使用rasterios
write_colormap()
将色彩Map表写入tiff文件。下面是一个简短的例子,说明如何使用它从文档:基本上,
write_colormap
将波段号作为第一个参数,然后将栅格值的字典作为键,将其对应的RGBA值作为值。