1、将已知的色带数组转换为Excel文件(Test.xlsx)
格式如下:
2、Python生成QGIS colormap文件(.txt)
import numpy as np
import os
import sys
import pandas as pd
#QGSI输入文件
#读取C++中导出的Rainbow数组
fp_rainbow = r'Test.xlsx';
df = pd.read_excel(fp_rainbow)
rainbow_ds = df.values
#将上述数组转换为QGIS输入格式
path = 'colormap.txt';
vmin = 1
vmax = 99
interval = (vmax-vmin)/255 #归一化
with open(path,"w") as f:
for i in range(256):
b = rainbow_ds[i,0]
g = rainbow_ds[i,1]
r = rainbow_ds[i,2]
value = vmin + interval*i
label = round(value, 5)
f.write(str(value))
f.write(',')
f.write(str(r))
f.write(',')
f.write(str(g))
f.write(',')
f.write(str(b))
f.write(',')
f.write(str(255))
f.write(',')
f.write(str(label))
f.write('\n')
生成的colormap样例如下:
3、QGIS中导入colormap.txt,加载导入的色带
4、 样式/保存样式
保存样式:“保存为SLD样式文件”
文件:SLD文件输出地址
“OK”
5、效果展示
灰度图及渲染后图像如下:
注:QGIS中读取顺序为 RGB