首页 > 其他分享 >[机载LiCHy系统] 数据采集与处理过程的相关问题

[机载LiCHy系统] 数据采集与处理过程的相关问题

时间:2024-06-17 22:24:27浏览次数:18  
标签:处理过程 波形 LiDAR LiCHy 机载 IMU 回波 GPS

关键词:LiCHy系统机载遥感数据采集与预处理 作者:ludwig1860 日期:2024.6.17

前言:以无比感谢与热爱的心,感谢林科院庞勇老师组采集的LiCHy数据。

开展机载植被遥感的学者,可能很少有不知道林科院LiCHy系统的罢。据我盲目估计,这套系统的数据至少支撑了几十甚至上百项研究。

自研究生期间,我就一直在接触和使用LiCHy系统采集的数据。对其了解也是慢慢由浅入深的过程,在此过程中遇到许多疑问以及获得了一些解答,便希望向其他学者分享出来,以供参考。

特别感谢北京林业大学的卢昊老师以及林科院的荚文老师的详细解答(PS:卢老师和荚老师在研究生期间分别是LiCHy系统激光雷达模块与高光谱成像仪模块的具体技术负责人)

LiCHy系统获取的数据示例
LiCHy系统获取的数据示例

1. LiCHy的简要介绍

LiCHy系统由三个主要传感器及其相关的机载控制和计算系统组成:

  • (1) 全波形激光雷达:可获取全波形数据,进而处理为点云数据
  • (2) CCD相机:可获取RGB影像
  • (3) 高光谱成像仪: 可获取高光谱影像,结合多角度模块也可以实现多角度观测

此外,该系统还包含一个惯性导航模块,由GNSS接收机以及IMU(惯性测量单元,可测量姿态角)构成。

LiCHy	系统
LiCHy 系统
LiCHy的三个重要传感器
LiCHy的三个重要传感器

2. 数据采集相关问题

  • Q1: CCD、LiDAR、高光谱和GPS在同一位置吗?记录的坐标是否为LiChy的坐标?

答:不在同一位置,LiCHy在机舱底部,而GPS因为要接收卫星信号,需要置于飞机外部顶上。

那飞行时LiCHy的位置信息是如何计算的呢?

可以粗略(有误差、但没有其他更好的测量方式)测量出来GPS与LiCHy外置的IMU(固定在LiCHy上)之间的平移向量,然后厂商给定了IMU与各个传感器之间的平移向量与旋转矩阵,所以可以通过平移与旋转变换,得到LiCHy各传感器飞行时的位置信息。

LiCHy中各个传感器位置的计算(卢昊老师提供)
LiCHy中各个传感器位置的计算(卢昊老师提供)

  • Q2: 飞行过程中,GPS与IMU是一直获取位置坐标与欧拉角吗?

答:GPS刚性固定在飞机顶部,IMU刚性固定在LiCHy的侧方,GPS以一定的频率(20Hz)采集位置数据,IMU以一定的频率(200Hz)采集欧拉角(偏航角、俯仰角、横滚角)数据,同时具有对应的时间戳.

GPS与IMU数据联合使用时,需要对GPS的数据进行内插,然后按照时间戳对GPS与IMU数据进行时间对齐。

航线示例
航线示例

  • Q3: CCD是以一定的时间间隔拍摄吗?

CCD的拍摄方式有两种:

    • 一是设置固定的时间进行自动拍摄,但是会存在时间间隔过大时,影像重叠度低,而时间间隔过小时,数据量又太大;
    • 二是基于给定的DEM数据,设置一定的影像重叠度,然后软件自动计算出拍摄的间隔或航点信息。

  • Q4: 高光谱成像仪在推扫时,每条扫描线的中心点地理坐标如何确定?

答:与问题Q1与Q2类似,可以参考问题Q1与Q2的回答。所谓扫描线中心点即是相机的中心位置。 高光谱成像仪扫描示意图


  • Q5: IMU惯性测量单元是放在LiCHy上的吧?测量的角度如何使用?俯仰等角度如何用?

答:是的,IMU刚性连接在LiCHy平台上,所测量的偏航、俯仰、滚动角度,可用于传感器的角度计算。


  • Q6:高光谱成像仪推扫时,多角度模块(MAM)是否可以自动调整角度?这个模块一般是否使用?

答:高光谱相机镜头前方安装了一个可以调整角度的转镜,可以根据要求预先调整角度,但是无法飞行过程中自动旋转角度。


  • Q7:激光雷达在记录波形时,如何判定哪个回波属于哪个波形?

答:没有办法判定。所以激光脉冲有一定的repetition rate,而且这个参数不会过高。

可以想象,当repetition rate很低时,不会存在难以判断的问题,而当repetition rate极高时(例如近似于同时在某个位置处发射多个脉冲),则无法判定回波所属的脉冲。厂商似乎是通过一定的先验知识进行优化。


  • Q8:为什么记录全波形挺方便的,离散回波LiDAR还要记录仅有的几次回波?

答:最早只记录单次回波(single-return LiDAR),后面能够记录两次回波(first 和 last回波),再后来能够记录4-6次回波。

其实LiDAR的receiver是将脉冲的所有时间序列返回值都接收到了,但是可能是由于早期存储速度的问题、亦或是存储能力的问题等,导致无法全部保存。仅仅保存那些大于特定阈值的回波能量,形成回波点云。

后来由于能够全部保存了,所以有了全波形激光雷达。


  • Q9:机载或者星载全波形激光雷达每次发射的脉冲为什么是高斯波而非矩形波?

答:可能是仪器自身原因,可能扫描器发射时突然从0到某个能量值,对于仪器而言是很具有挑战的,而发射高斯波应该是一种权衡,既保证仪器可以顺利发射出,同时也较为容易去解算。


  • Q10: 1机载的全波形LiDAR发射的每条脉冲的波形都一致吗?GEDI这种卫星的呢?

答:由于机载LiDAR的laser scanner是很稳定的,所以发射的每条脉冲的波形可认为是一致的。GEDI由于存在强脉冲与弱脉冲,所以会有不一致的发射波形。

即便星载与机载全波形LiDAR发射的波形不完全是高斯波,可能会存在一个小尾巴,但在后处理时,这个小尾巴会被忽略。


  • Q11: 全波形LiDAR的每个光斑的波形数据是可比的吗? 也就是说每个光斑的波形处理方式是否一致?

答:是可比的。全波形LiDAR以一定的FWHM发射高斯波形,被地物反射,返回的时间序列辐射通量值被receiver光电转换和模数转换为DN值,注意由辐射通量到DN值的变换为线性变换,最终形成返回的波形,这个波形的单位是任意单位。

但由于每个光斑的波形的处理方式完全一致,所以光斑间的数据是可比的。


  • Q12: 高光谱影像中每个像元的观测角度是否一致呢?观测角度不一致带来的BRDF效应如何去校正?

答:在机载高光谱影像中,由于传感器宽视场角推扫成像的特点,每条扫描线上各像元都有所对应的观测天顶角和方位角。

为了针对机载高光谱遥感数据进行 BRDF 校正(又叫做角度归一化),需要根据数据采集时的飞行航迹和成像时刻逐像元地计算其太阳-观测几何信息。

根据单条航带影像的中心坐标以及数据采集时刻信息可计算出当时的太阳天顶角和方位角。若单条航带影像采集时间过长,则可按照上述方法分段计算影像像元对应的太阳几何信息。

3. 数据处理相关问题

  • Q13: 如何计算CCD与高光谱相机逐像元的观测天顶角与观测方位角?

答:基于共线条件方程或者投影变换矩阵,需要已知相机在三维空间中的坐标(Xc, Yc, Zc),以及三个转角参数,即相机的外方位元素以及内方位元素,然后需要知道像元对应的地面点的三维坐标(Xp, Yp, Zp),然后基于这两个坐标,即可根据三角几何进行计算。地面点的三维坐标可以通过LiDAR提供的DSM获得。


  • Q14: 机载Riegl LiDAR处理软件RiProcess中的波形分解是如何做的?自己如何做波形分解呢?

答:该软件中包含多种方法,有的方法效率高但精度相对低,有的方法精度高但效率较低。波形分解的基本方法为高斯混合模型拟合,通过多元高斯混合以及某种优化算法(例如L-M算法)求解。波形分解后的结果可以计算振幅等等,也可以转换为离散回波点云。

标签:处理过程,波形,LiDAR,LiCHy,机载,IMU,回波,GPS
From: https://www.cnblogs.com/ludwig1860/p/18253327

相关文章

  • python watchdog检测到文件产生,动态创建进程,不指定进程数去处理,处理过程中需要写文件,
    如果希望在检测到文件时动态创建进程而不预先指定进程数,并确保写文件时不发生冲突,可以使用队列和锁的机制。以下是一个改进的方案:pythonfrommultiprocessingimportProcess,Queue,Lockfromwatchdog.observersimportObserverfromwatchdog.eventsimportFileSystemE......
  • 物联网平台 Thingsboard rule engine 规则引擎 - 设备消息处理过程
    设备消息上报到规则引擎过程第一步:消息入口org.thingsboard.server.actors.app.AppActor#doProcess中找到caseQUEUE_TO_RULE_ENGINE_MSG:onQueueToRuleEngineMsg((QueueToRuleEngineMsg)msg);break;@OverrideprotectedbooleandoProcess(TbActorMsgm......
  • D365 onebox 开发环境证书到期处理过程
            到期证书指纹76338006924d8bbb7f2f28638ec5d41eb5d21a70克隆命令此处需使用WindowsPowerShellSet-Location-Path"cert:\LocalMachine\My"$OldCert=(Get-ChildItem-Path76338006924d8bbb7f2f28638ec5d41eb5d21a70)New-SelfSignedCert......
  • Nginx图片下载不完整的处理过程
    Nginx图片下载不完整的处理过程背景昨天同事进行了nginx的迁移然后晚上发现图片展示不全.自己其实之前遇到过类似的问题但是因为熬夜比较久,脑子已经不转了.所以花了接近半小时才理清楚.感觉一些事情不记录一下,无法加深印象.问题现象客户的nginx从之前的CentOS迁移......
  • 整理C语言预处理过程语法的实用方法与技巧
    预处理目录预处理一、宏定义数值宏常量字符串宏常量用define宏定义注释符号?程序的编译过程预处理中宏替换和去注释谁先谁后?如何写一个不会出现问题的宏函数do-while-zero结构do-while-zero的评价宏定义中的空格宏只能在main函数上面定义吗?宏的作用范围#undef宏替换是在函数调用......
  • 【SpringBoot + Tomcat】【二】请求到达后端服务进程后的处理过程-连接的处理细节
    1 前言上节的后半部分,由于忙项目的事情去了,收尾的有点潦草,我们这节再继续。上节我们的思路是先简单回顾了下,SpringBoot启动和创建Tomcat的时机,然后我们还主要看了下连接器Connector的创建已经启动过程。连接器本身很重要,因为它就像一个港口或者一个枢纽,连接着客户端和服......
  • 【SpringBoot + Tomcat】请求到达后端服务进程后的处理过程
    1 前言这节我主要是想看下,Tomcat如何接收到请求并且是怎么一步步封装并交给SpringMVC处理的。这块之前一直没太深入的了解过,所以这节我们来看看。在看这节之前,你首先要清楚这两个问题,方便你更好的去理解。(1)SpringBoot启动的过程中,Tomcat的创建和启动时机是在什么时候呢?不......
  • C/C++预处理过程
    目录前言:1.预定义符号2. #define定义常量3. #define定义宏4.带有副作用的宏参数5.  宏替换的规则6. 宏和函数的对比7.#和##8. 命名约定9. #undef10. 命令行定义11. 条件编译12. 头文件的包含13. 其他预处理指令总结:。前言:本篇介绍c/c+......
  • 4年前的React老项目打包报错解决问题处理过程
    处理公司一个4年前React应用时,发现打包编译时会出现如题错误:Failedtominifythebundle.Error:index.71782de2.jsfromUglify]s  查看打包编译后源码错误位置: 经过bing搜索引擎查找类似解决方式: https://github.com/sorrycc/blog/issues/68 1、npm安装 https://g......
  • 关于事务处理过程中,查询事务相关表的处理方式
    关于事务处理过程中,查询事务相关表的处理方式DBServerProvider.SqlDapper与repository的区别及应用场景publicoverrideWebResponseContentAudit(object[]keys,int?auditStatus,stringauditReason){Toolstools=newTools();......