【openlayers系统学习】3.3假彩色图像合成(三个波段合成假彩色图像)

三、假彩色图像合成

在上一步中,我们使用 ol/source/GeoTIFF​ 源从单个多波段源(具有红色、绿色、蓝色和Alpha波段)渲染真彩色图像。在下面这个例子中,我们将从可见光谱之外提取数据,并使用它来呈现假彩色合成。

我们希望渲染一种假彩色合成图像,突出显示植被区域与裸露土壤区域。富含叶绿素的植被在近红外(Sentinel-2 B08)光谱部分中比在可见波长中的反射更明亮。相比之下,裸露土壤在近红外中不如在可见波长中的反射明亮。请参见下面的图表,显示了绿色植被和裸露土壤的反射光谱与 Sentinel-2 波段。

植被(绿色)、土壤(红色)和水(蓝色)的光谱特征。

为了在多光谱图像中突出显示植被,通常在红色通道中显示近红外(B08)反射率,在绿色通道中显示红色反射率(B04),在蓝色通道中显示绿色反射率(B03)。我们可以使用 ol/source/GeoTIFF​ 源来完成此操作,方法是按RGB顺序加载三个单独的单波段GeoTIFF图像。

更新您的 main.js​ :

js 复制代码
const source = new GeoTIFF({
  sources: [
    {
      // near-infrared reflectance
      url: 'https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/21/H/UB/2021/9/S2B_21HUB_20210915_0_L2A/B08.tif',
      max: 5000,
    },
    {
      // red reflectance
      url: 'https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/21/H/UB/2021/9/S2B_21HUB_20210915_0_L2A/B04.tif',
      max: 5000,
    },
    {
      // green reflectance
      url: 'https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/21/H/UB/2021/9/S2B_21HUB_20210915_0_L2A/B03.tif',
      max: 5000,
    },
  ],
});

重新加载 http://localhost:5173/ 以查看合成的假彩色图像。

注意:探索一下sources选项中的max属性有什么用

在地图渲染过程中,通常会将源数据中的数值映射到一个0到1的范围内进行显示。这个映射过程需要确定源数据中的最大值和最小值,然后根据这些值对数据进行归一化处理。其中,最大源数据值(sources选项中的max属性)就是源数据中存在的最大数值,它用来确定数据的最大范围。如果在渲染时没有提供最大源数据值,OpenLayers会尝试使用栅格统计数据来确定最大值。如果栅格统计数据也不可用,OpenLayers会使用数据类型的最大值作为备用值。

改变了几次max值,发现渲染的图像颜色会不同

相关推荐
阿阳微客2 小时前
Steam 搬砖项目深度拆解:从抵触到真香的转型之路
前端·笔记·学习·游戏
Chef_Chen7 小时前
从0开始学习R语言--Day18--分类变量关联性检验
学习
键盘敲没电7 小时前
【IOS】GCD学习
学习·ios·objective-c·xcode
海的诗篇_8 小时前
前端开发面试题总结-JavaScript篇(一)
开发语言·前端·javascript·学习·面试
AgilityBaby8 小时前
UE5 2D角色PaperZD插件动画状态机学习笔记
笔记·学习·ue5
AgilityBaby8 小时前
UE5 创建2D角色帧动画学习笔记
笔记·学习·ue5
武昌库里写JAVA10 小时前
iview Switch Tabs TabPane 使用提示Maximum call stack size exceeded堆栈溢出
java·开发语言·spring boot·学习·课程设计
一弓虽10 小时前
git 学习
git·学习
Moonnnn.13 小时前
【单片机期末】串行口循环缓冲区发送
笔记·单片机·嵌入式硬件·学习
viperrrrrrrrrr713 小时前
大数据学习(131)-Hive数据分析函数总结
大数据·hive·学习