zpyin / alie Goto Github PK
View Code? Open in Web Editor NEWAtmospheric Lidar Intercomparison Evaluator
License: GNU General Public License v3.0
Atmospheric Lidar Intercomparison Evaluator
License: GNU General Public License v3.0
REAL标准雷达存在高低空通道以达到较高的信号动态范围。在使用REAL数据进行互对比时,需要对信号进行拼接,如下图所示:
激光雷达对比软件中的预处理模块lidarPreprocess中提供数据拼接功能(针对REAL雷达)。拼接参数现在仍然采取手动计算,因此在进行数据拼接时需要手动修改代码中的拼接参数,参考如下代码:
mergeRange = [700, 1200; 1200, 2000; 700, 1200]; % height range for signal merge. (m)
mergeSlope = [15.46, 440.0, 50.8]; % normalization ratio for 532S, 532P, 607 (High / Low)
mergeOffset = [0, 0, 0];
拼接参数与系统状态和接收通道衰减紧密相关,因此可能会随着时间发生变化。本软件同时提供计算拼接参数的功能,但是因为评估拼接参数需要对激光雷达信号有较高的理解,因此不建议普通用户自行计算。如果需要更新拼接参数,可以联系代码开发人员进行获取。
在获取拼接参数后,可以通过运行代码得到拼接后的信号,如对于REAL,拼接后的信号会增加三个额外的通道信号,分别为“532p”,“532s”和“607”。在互对比的REAL通道中可以通过额外添加这三个通道引用拼接的信号,如下所示:
REAL:
lidarNo: 11 # lidar number. (see ./docs/lidarList.md)
chTag: ['532sh', '532pl', '532sl', '607h', '607l', '532ph', '532p']
最后在互对比设置中增加这个额外通道的增益即可引用,如下所示:
RCSCmpCfg:
LidarList: ['REAL', 'CS']
sigCompose:
- [0, 0, 0, 0, 0, 0, 1] # first lidar
气象局定义的二进制数据格式比较清晰,但是有部分厂家并没有严格遵循气象局的激光雷达数据格式,导致其数据不能被程序正确读取。而且整个数据格式修正的反馈过程比较冗长,因此需要自己进行数据的修正。
在bf7d5ce4a1f提交中,提供了correctCmaDataFormat
函数用于修正错误数据,函数用法如下:
correctCmaDataFormat('D:\Data\CMA_Lidar_Comparison\internalChk\HR\detectRange-test', 'hr');
其中第一个参数为数据所在目录,第二个参数为雷达数据的厂家。运行完该命令后,修正后的结果会以correct_
为前缀存储在数据目录中。后续进行数据处理时,设置好过滤关键字即可进行正常的数据处理。
REAL具有如下六个探测通道:
在实际使用过程中需要将对应的高低空通道信号进行融合,形成统一的信号剖面,用于数据反演。代码中提供将高低空通道信号进行融合的功能,位于lidarPreprocess.m
中。融合算法通过将低空信号转换到与高空信号同等的强度,然后以过渡区间为基准,对高低空信号进行组合。
将通道进行组合的参数为拼接参数,理论上只与高低空通道的透过率差异相关。在更换接收通道的滤光片后需要重新获取拼接参数。代码库中包含计算拼接参数的代码,可通过如下方式调用:
LEMain('D:\Coding\Matlab\CMA-lidar-evaluation\configBkp\Wuhan_Real\REAL_QL.yml', 'flagReadData', true, 'flagDebug', true, 'flagQL', true);
其中需要的配置文件样本如下:
################################################################################
# lidar configuration file
# DON'T use Chinese characters!!!
################################################################################
resultPath: D:\Data\REAL\20220421
dataSavePath: D:\Data\REAL\20220421
figFormat: png # figure format to be exported
# data loader configuration
# Load lidar data to a specified directory (defined by `dataSavePath`)
dataLoaderCfg:
REAL: # lidar No.1
dataPath: D:\Data\REAL\20220421\detectRange-test
dataFilenamePattern: .* # all files
# data type
# 1: WHU standard 1064 nm lidar
# 2: WHU non-standard 1064 nm lidar
# 3: CMA standard data format in binary
# 4: Dasun visibility lidar
# 5: REAL
dataFormat: 5
chTag: ['532sh', '532pl', '532sl', '607h', '607l', '532ph'] # 355e; 355p; 355s; 387; 407; 532e; 532p; 532s; 607; 1064e; 1064p; 1064s; 532pl; 532sl; 607l; 532ph; 532sh; 607h
nMaxBin: 2030 # number of bins
dataVisualCfg:
REAL:
lidarNo: 11 # lidar number. (see ./docs/lidarList.md)
chTag: ['532sh', '532pl', '532sl', '607h', '607l', '532ph'] # 355e; 355p; 355s; 387; 407; 532e; 532p; 532s; 607; 1064e; 1064p; 1064s; 532pl; 532sl; 607l; 532ph; 532sh; 607h
figVisible: 'on' # whether display figures
preprocessCfg:
hOffset: 0 # height offset. (m)
tOffset: 0 # time offset. (min)
deadTime: [3.5, 3.5, 3.5, 30.4, 3.5, 3.5] # deadtime (ns). If it's empty, deadtime correction is disabled.
bgBins: [1800, 1900] # [start index, stop index] for background correction
nPretrigger: 55 # if nPretrigger < 0, move signal up
bgCorFile: '' # data file of dark measurement results
overlapFile: ''
vdrCompose: ['532p', '532s', 0.85, 0] # VDR: [pChannel, sChannel, gainRatio, offset]
tRange: '2022-04-21 20:10:00 ~ 2022-04-21 21:00:00'
hRange:
- [0, 10000]
- [0, 10000]
- [0, 10000]
sigRange:
- [1e3, 5e11] # 532s
- [1e1, 1e10] # 532p
- [0, 0.4] # 607
cRange: # color range for Range-corrected signal
- [0, 1e10] # channel 1
- [0, 1e10] # channel 1
- [0, 1e10] # channel 1
title:
- 'REAL 532 s'
- 'REAL 532 p'
- 'REAL volume depolarization ratio'
deltaT: 1 # temporal resolution (min)
markTRange: '2022-04-21 20:10:00 ~ 2022-04-21 21:00:00'
通过观测拼接信号的好坏,可以更改lidarPreprocess.m
中的拼接参数,并经过微调,让拼接结果更加复合预期即可。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.