利用arcpy对las激光点云数据生成DEM

利用arcpy对las激光点云数据生成DEM


本文主要是实现通过arcpy利用arcmap工具箱功能结合进行操作,将lidar数据生成DEM。

  • 前提要求:激光点云数据(.las)类别中包含地面点!(数据已经分类完好)在这里插入图片描述在arcmap中对点云分类显示,从这里可以看到我们的数据主要包含了四个类别!地面点为代号"2".

解决思路

  • 1.创建LAS数据集来存放点云数据,方便对数据的调用 ------ 必要前提!
  • 2.点云分类类别获取地面点类别的点云(一般情况,地面点在分类类别中为"2");
  • 3.对分类别获取的点云调用工具,生成DEM

1.设置环境空间

import arcpy,os
from arcpy import env
#设置工作环境文件夹(这里设置的是绝对路径)
env.workspace = r'C:\Users\Administrator\Desktop\las_to_dem'
path = env.workspace

2.创建LAS数据集,并将las数据添加进数据集中

#定义 LAS 数据集名称
dataset_name = 'LAS_dataset'
#创建LAS_dataset数据集,用于存储las数据,可将las数据在arcmap中可视化
arcpy.CreateLasDataset_management(path,path + '/' + dataset_name)
#绝对路径下的 LAS_dataset 数据集所在完整路径,为添加数据做准备
dataset_path = r'C:\Users\Administrator\Desktop\las_to_dem\LAS_dataset.lasd'
#添加.las数据添加进数据集中
las = r'C:\Users\Administrator\Desktop\las_to_dem\data\ALS.las'
arcpy.AddFilesToLasDataset_management(dataset_path,[las],"NO_RECURSION")

3.过滤点云,获取地面点点云数据,生成DEM

#利用LAS数据集工具,对las数据进行过滤(地面点)状态( "2"  一般情况指地面点)
#图层名字为:underground layer
arcpy.MakeLasDatasetLayer_management('LAS_dataset.lasd','underground layer',"2")
#通过LAS数据集转栅格工具,利用las数据的地面点生成DEM(反距离加权法)
arcpy.LasDatasetToRaster_conversion('underground layer','las_to_dem.tif',"ELEVATION",'BINNING IDW LINEAR','FLOAT','CELLSIZE',1,1)
print("DEM插值完成!")

运行结果图(在arcmap中显示)在这里插入图片描述
las数据集中数据的显示在这里插入图片描述
地面点数据的显示在这里插入图片描述
插值后的DEM成图及其渲染图
在这里插入图片描述在这里插入图片描述


版权声明:本文为weixin_45183320原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。