当前位置: 首页 > article >正文

LESS的叶绿素荧光模拟实现——任意波段荧光模拟

目录

  • 前言
  • 一、任意波段荧光模拟的实现
  • 二、需要注意的输入参数


前言

此专栏默认您对LESS (LargE-Scale remote sensing data and image Simulation framework) 模型和叶绿素荧光(Sun-Induced chlorophyll Fluorescence, SIF)有一定的了解。当然,您也可以在这里下载中文的简明手册,了解更多关于三维辐射传输模型的原理及LESS操作。
此文将扩展LESS对任意波段荧光模拟的实现,以及波段相关参数的输入要求,适用于LESS version 2.1.5-2023-11-29。


一、任意波段荧光模拟的实现

在这篇文章中,荧光矩阵的采样间隔是5 nm,导致输入波段被固定在400-850 nm范围内,限制了模拟波段的自由选择。实际上,人们可能并不关心全波段的荧光,而只想要某个,或者某几个波段的荧光,这便引出了任意波段荧光模拟的需求。

任意波段荧光模拟指的是,不再限制荧光模拟的波段间隔与数量,可以自由模拟关心波段的荧光。本文将在这篇文章的基础上,进一步阐述任意波段荧光模拟的实现。

这篇文章里讲述了如何对荧光矩阵进行任意激发波段和发射波段的重采样。简单来说,就是在激发波段上进行宽波段积分,在发射波段上进行线性插值。例如,设定激发光谱是 E ( [ 400 , 450 , 460 , 500 , 580 , 600 , 650 , 700 , 730 ] ) E\left([400,450,460,500,580,600,650,700,730]\right) E([400,450,460,500,580,600,650,700,730]),发射光谱是 F ( [ 640 , 650 , 685 , 700 , 710.1 , 735.5 , 850 ] ) F\left([640,650,685,700,710.1,735.5,850]\right) F([640,650,685,700,710.1,735.5,850]),那么荧光激发矩阵的大小就是 7 × 9 7\times9 7×9,即 F 7 × 1 = E F 7 × 9 × E 9 × 1 F_{7\times1}=EF_{7\times9}\times E_{9\times1} F7×1=EF7×9×E9×1。这个 E F 7 × 9 EF_{7\times9} EF7×9即由荧光矩阵的重采样实现。

但是,当输入的波段只有发射段(640-850 nm)时,激发段只有一部分(640-750 nm)被考虑在模拟中,400-640 nm的激发段将无法参与模拟,并且,荧光会再激发,导致较大的模拟偏差。因此,在模拟荧光时,需要一条固定的激发光谱,其光谱间隔固定为inc。下图展示了不同光谱间隔下,由重采样造成的误差大小。可以看到,采样带来的误差总体呈上升趋势,在inc=10, 29, 121 nm附近存在低谷。进一步在这几个谷里以0.01 nm步长分析,此时误差较小的波段间隔为10.41(0.00106948),28.74(0.00448519),120.47(0.0141459),括号中为绝对误差,相对误差小于5‰。取inc=28.74 nm能够较好地平衡计算消耗和采样误差。这是由荧光光谱的特殊形状所决定的,这几个波长间隔能较好地描绘出荧光光谱的特征形状。因此,LESS中固定的激发光谱基于这样的考虑内置在程序中。这样带来一个小的麻烦是,所有与波长相关的输入参数必须包含这条固定光谱。该参数可通过“…\app\bin\scripts\Lesspy\const.conf”文件中的"static_spectrum_inc"修改。
重采样偏差随采样间隔的变化

二、需要注意的输入参数

正如前文所述,模拟荧光时,所有与波长相关的输入参数必须包含一条固定的激发光谱。当Console窗口中出现:
If simulating ChlF, make sure to align with the bands in the ".less\EFwlinsim.txt" file
ChlF
可按提示,查看EFwlinsim.txt文件。该文件记录了参与模拟的波段,请确保输入的与波长有关的参数,如土壤的实测光谱、天空光比例、实测的太阳光谱和天空光光谱等,与EFwlinsim.txt文件中的波段对齐。

其余的操作及结果输出与这篇文章无异。


http://www.kler.cn/news/161316.html

相关文章:

  • Uber Go 语言编码规范
  • Android Studio中Flutter项目找不到Android真机设备解决方法
  • class059 建图、链式前向星、拓扑排序【算法】
  • 如何在Spring Boot中集成RabbitMQ
  • C++ vector基本操作
  • dockers安装rabbitmq
  • MySQL 学习笔记(刷题篇)
  • 基于JNI实现调用C++ SDK
  • 深圳锐杰金融:用金融力量守护社区健康
  • workbench导入sql脚本文件
  • (C#)使用sharpcompress压缩解压文件(.rar,.zip,tar.bz2,.7z,.tar.gz)
  • Docker、Kubernetes、OCI、CRI-O、containerd、runc 之间的关系以及它们是如何一起工作的?
  • 5.9 Windows驱动开发:内核InlineHook挂钩技术
  • 移除静态库中多余的符号
  • Docker使用笔记
  • 详细解读python里的列表
  • 排序:直接选择排序
  • Elasticsearch:评估 RAG - 指标之旅
  • WebGL笔记:矩阵缩放的数学原理和实现
  • 【Flink on k8s】- 0 - Flink kubernetes operator 快速入门与实战
  • 【SQL开发实战技巧】系列(四十八):Oracle12C常用新特性☞多分区操作和管理
  • dtaidistance笔记:dtw_ndim (高维时间序列之间的DTW)
  • 嵌入式工程师校招经验与学习路线总结
  • 使用群晖Docker搭建HomeAssistant并实现异地公网访问家中智能设备
  • ES6与ES5的区别?
  • 排序:快速排序(hoare版本)
  • 分布式搜索引擎03
  • Docker 镜像构建的最佳做法
  • Rust国内sparse镜像源配置
  • 第十五届蓝桥杯模拟赛B组(第二期)C++