主要内容

从航空激光雷达数据中提取森林指标和单树属性

此示例演示如何从航空激光雷达数据中提取森林指标和单个树木属性。

森林研究和应用越来越多地利用机载激光扫描系统获取的激光雷达数据。高密度激光雷达的点云数据不仅可以测量森林指标,还可以测量单个树木的属性。

本例使用机载激光雷达系统捕获的LAZ文件中的点云数据作为输入。在本例中,首先通过将点云数据分类为地面和植被点提取森林指标,然后通过将植被点分割为单独的树提取单独的树属性。该图提供了该流程的概述。

加载和可视化数据

解压缩forestData.zip并从LAZ文件加载点云数据,forestData.laz,进入MATLAB®工作空间。数据来自开放地形数据集[1.]。点云主要包括地面点和植被点。控件将点云数据加载到工作区中readPointCloud委员会的职能激光文件阅读器对象。可视化点云使用pcshow函数。

dataFolder=fullfile(tempdir,“森林数据”,filesep);数据文件=数据文件夹+“forestData.laz”;%检查文件夹和数据文件是否已存在folderExists=存在(dataFolder,“dir”);fileExists=exist(数据文件,“文件”);%创建一个不存在的新文件夹如果~folderExists mkdir(dataFolder);结束%提取不存在的航空数据文件如果~fileExists解压('forestData.zip', dataFolder);结束%从文件中读取LAZ数据lasReader=lasFileReader(数据文件);%读取点云以及相应的扫描角度信息[ptCloud,pointAttributes]=readPointCloud(lasReader,“属性”,“ScanAngle”);%可视化输入点云图pcshow(ptCloud.Location)标题(“输入点云”)

分段接地

地面分割是分离植被数据以提取森林指标的预处理步骤segmentGroundSMRF函数。

分割地面,提取非地面和地面点groundPtsIdx = segmentGroundSMRF (ptCloud);nonGroundPtCloud =选择(ptCloud ~ groundPtsIdx);groundPtCloud =选择(ptCloud groundPtsIdx);%分别用洋红色和绿色可视化非接地点和接地点图pcshowpair(nonGroundPtCloud、groundPtCloud)标题(“分割的非地面点和地面点”)

使高程标准化

使用高程标准化可消除地形对植被数据的影响。使用具有标准化高程的点作为输入,以计算森林指标和树木属性。以下是高程标准化的步骤。

  1. 使用以下方法消除沿x轴和y轴(如果有)的重复点:组摘要函数。

  2. 使用散射分光镜对象,以估计点云数据中每个点的地面。

  3. 通过从原始高程中减去插值的地面高程来规范化每个点的高程。

地面点=地面云层位置;%消除沿x轴和y轴的重复点[uniqueZ,uniqueXY]=groupsummary(groundPoints(:,3),groundPoints(:,1:2),@mean);uniqueXY=[uniqueXY{:}];%创建插值并使用它估计每个点的地面高程F=散射三极管(双(uniqueXY),双(uniqueZ),“自然的”);estElevation = F(双(ptCloud.Location(: 1)),双(ptCloud.Location (:, 2)));按地面归一化标高normalizedPoints = ptCloud.Location;normalizedPoints(:,3) = normalizedPoints(:,3) - estElevation;%可视化标准化点图pcshow (normalizedPoints)标题(“具有标准化高程的点云”)

提取森林指标

的方法从标准化点提取森林度量helperExtractForestMetrics辅助函数,作为支持文件附加到本示例中。金宝app辅助函数首先根据所提供的网格对点云进行划分网格大小,然后计算林指标。helper函数假定标准化高度低于截止高度是地面,其余的点是植被。计算这些森林指标。

  • 雨篷盖(CC)-遮篷[2.]是树冠垂直投影覆盖的森林比例。计算为植被回报相对于总回报数的比率。

  • 间隙分数(GF) -差距分数[3.]是光线穿过树冠而未遇到树叶或其他植物元素的概率。计算为地面收益与总收益的比率。

  • 叶面积指数(LAI)叶面积指数[3.]是每单位地面面积的单侧叶面积。LAI值使用以下公式计算 = - 余弦 ( ) * 自然对数 ( 女朋友 ) K ,在那里为平均扫描角度,女朋友是间隙分数,和K是消光系数,它与叶角分布密切相关。

%将栅格大小设置为每像素10米,将截止高度设置为2米gridSize = 10;cutOffHeight = 2;leafAngDistribution = 0.5;提取森林指标[canopyCover,gapFraction,Leaf Area Index]=helperExtractForestMetrics(标准化点,...pointAttributes.ScanAngle、gridSize cutOffHeight leafAngDistribution);可视化森林指标hForestMetrics=图;axCC=子批次(2,2,1,父项=hForestMetrics);axCC.位置=[0.05 0.51 0.4 0.4];图像SC(canopyCover,父项=axCC)标题(axCC,“天篷盖”)轴颜色映射(灰色)axGF=子批次(2,2,2,父批次=hForestMetrics);axGF.位置=[0.55 0.51 0.4 0.4];图像分割,“家长”axGF)标题(axGF“差距分数”)轴colormap(灰色)axLAI=子批次(2,2,[3,4],父批次=hForestMetrics);axLAI.Position=[0.30.02 0.40.4];imagesc(叶面积指数,父项=axLAI)标题(axLAI,“叶面积指数”)轴彩色地图(灰色)

生成树冠高度模型(CHM)

冠层高度模型(CHM)是树木、建筑物和其他结构高于地面地形高度的光栅表示。使用CHM作为树木检测和分割的输入。使用pc2dem函数。

%将栅格大小设置为每像素0.5米gridRes=0.5;%生成CHMcanopyModel = pc2dem (pointCloud (normalizedPoints) gridRes, CornerFillMethod =“最大值”);%将无效和负CHM值剪裁为零canopyModel(isnan(canopyModel)| canopyModel<0)=0;%执行高斯平滑去除噪声效果H=F特殊(“高斯”,[5],1);canopyModel=imfilter(canopyModel,H,“复制”,“一样”);%可视化CHM图imagesc(canopyModel)标题(“树冠高度模型”)轴彩色地图(灰色)

检测到树顶

探测树顶使用helperDetectTreeTops辅助函数,作为支持文件附加到本示例中。金宝apphelper函数通过查找可变窗口大小内的局部最大值来检测树顶[4.]在CHM中,对于树顶检测,辅助函数只考虑标准化高度大于的点最小高度

%设置minTreeHeight为5 mMintreehight=5;%探测树梢[treeTopRowId,treeTopColId]=帮助检测树顶(canopyModel,gridRes,minTreeHeight);%想象树梢图显示亮度图像(canopyModel)在…上地块(树冠、树冠、树冠),“处方”,MarkerSize=3)标题(“具有检测树顶的CHM”)轴彩色地图(“灰色”)

分割单株树

使用helperSegmentTreeshelper函数,作为支持文件附加到此示例。helper函数利用标记控制的分水岭分割[金宝app5.分割单独的树木。首先,该函数创建一个二值标记图像,树顶位置由值表示1..然后,函数通过极小值强制过滤CHM补码,以去除不属于树顶的极小值。然后,该函数对过滤后的CHM补体进行分水岭分割,分割单个树。在分割之后,可视化单个树段。

%分割单株树label2D = helperSegmentTrees (canopyModel treeTopRowId、treeTopColId minTreeHeight);%标识label2D和传输标签中每个点的行和列id每点百分比rowId=ceil((ptCloud.Location(:,2)-ptCloud.YLimits(1))/gridRes)+1;colId=ceil((ptCloud.Location(:,1)-ptCloud.XLimits(1))/gridRes)+1;ind=sub2ind(size(label2D),rowId,colId);label3D=label2D(ind);%提取有效标签和对应点validSegIds=label3D~=0;ptVeg=select(ptCloud,validSegIds);veglabel3D=label3D(有效注册表);%为每个标签指定颜色numColors=max(veglabel3D);colorMap=randi([0 255],numColors,3)/255;labelColors=label2rgb(veglabel3D,colorMap,OutputFormat=“三胞胎”);%可视化树段图pcshow (ptVeg.Location labelColors)标题(“个人树片段”)视图(2)

提取树属性

使用辅助提取术辅助函数,作为支持文件附加到本示例中。金宝app首先,该函数从标签中识别属于各个树的点。然后,该函数提取树的属性,如沿着x轴和y轴的树顶位置、树的近似高度、树冠直径和面积。helper函数以表的形式返回属性,其中每一行表示单个树的属性。

%提取树属性treeMetrics = helperExtractTreeMetrics (normalizedPoints label3D);%显示前5个树段度量高级惩教主任(树木科,5);;
这一研究的结果是,UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU8的的的的是是是是是是是一的的的的的的的的的的的的的一。。29.509 7.5325 44.562 22 2.6867e+05 4.1719e+06 21.464 0.99236 0.77344 3 243 2.6867e+05 4.1719e+06 24.201 5.7424 25.898 4 101 2.6867e+05 4.1719e+06 21.927 3.4571 9.3867 5 54 2.6867e+05 4.1719e+06 19.515 3.0407 7.2617

工具书类

[1] 汤普森,S。Illilouette Creek盆地激光雷达调查,约塞米蒂河谷,加利福尼亚州,2018年.国家机载激光测绘中心。由OpenTopography分布。https://doi.org/10.5069/G96M351N.查阅日期:2021-05-14

[2] 马,秦,苏彦军和郭清华。“从机载激光雷达,航空图像和卫星图像估计的林冠覆盖的比较。”IEEE应用地球观测和遥感选定主题杂志10,不。9(2017年9月):4225-36。https://doi.org/10.1109/JSTARS.2017.2711482

[3] Richardson, Jeffrey J., L. Monika Moskal, and Soo-Hyung Kim。利用航空离散返回激光雷达估算有效叶面积指数的建模方法农林气象学149,第6-7号(2009年6月):1152-60。https://doi.org/10.1016/j.agrformet.2009.02.007

[4] Pitkänen,J.,M.Maltamo,J.Hyppä和X.Yu.“机载激光林冠高度模型中单株树木检测的自适应方法。”国际摄影测量学、遥感和空间信息科学档案馆36岁的没有。8(2004年1月):187-91。

[5] 陈琦、丹尼斯·巴尔多基、彭功和马吉·凯利,“使用小足迹激光雷达数据分离稀树草原林地中的单株树木。”摄影测量工程与遥感72,第8号(2006年8月1日):923-32。https://doi.org/10.14358/PERS.72.8.923