如何使用OpenLayers将单波段GeoTIFF以白黑渐变伪彩色可视化?
单波段GeoTIFF伪彩色可视化配置(OpenLayers)
针对你的需求,pseudoColor需要配置为WebGL样式对象,通过数值插值映射实现从白色到黑色的线性渐变,具体代码如下:
const pseudoColor = { color: [ 'interpolate', // 插值函数 ['linear'], // 线性插值方式 ['band', 1], // 读取GeoTIFF的第一波段数据(单波段场景下唯一波段) 0, [1, 1, 1, 1], // 数值0对应白色(RGBA格式,值范围0-1) 1200, [0, 0, 0, 1] // 数值1200对应黑色 ] };
关键参数说明:
['band', 1]:指定读取目标波段,单波段GeoTIFF直接用1即可;如果是多波段需对应调整序号interpolate + linear:采用线性插值逻辑,让颜色在0到1200的数值区间内平滑过渡- RGBA颜色数组:每个分量取值范围为0-1,
[1,1,1,1]表示完全不透明白色,[0,0,0,1]表示完全不透明黑色
整合后的完整代码:
const source = new MultiGeoTIFF({ sources: [ { url:'image.tif', }, ], }); const pseudoColor = { color: [ 'interpolate', ['linear'], ['band', 1], 0, [1, 1, 1, 1], 1200, [0, 0, 0, 1] ] }; const layer = new WebGLTile({ source: source, style: pseudoColor, });
内容的提问来源于stack exchange,提问作者piorkoo
相关产品推荐
相关产品推荐

