基于LiDAR的屋顶评估与太阳能电池板安装的高级分析
背景
在过去的几十年里,遥感处理技术已经得到了很好的发展,现如今我们已经运用现代的分析工具从卫星、航天飞机以及无人机等平台中获得信息产品。在过去,我们通过这些平台所获得的只是二维的影像,现如今,我们的处理工具提供了强大的分析功能,我们可以利用这些功能来解决全世界的地理空间问题。
在传统的二维影像采集的基础上,现代的平台具备了获取LiDAR(Light Detection and Ranging) 数据的能力。LiDAR是一种利用光脉冲来测量传感器和反射物体(如地表、建筑物、树木等)之间距离的遥感技术。LiDAR技术所获取的结果是一系列的点数据,通常我们称为“点云数据”,用来精确地描绘地理产品,包括准确的表面和裸地高程模型,以及三维物体的位置和属性信息。
LiDAR技术已经实现了大范围、高精度成像的能力,这在过去只能通过花费大量时间和金钱的实地调查方式实现。这些优势可以使我们在绘图和做出重要决策时利用LiDAR作为辅助的数据来源。
存在的问题
在识别建筑物屋顶的过程中,会涉及到屋顶的方向、坡度和大小等问题,这在传统的二维影像采集过程中是很难解决的。传统的影像至多可以使用户在场景中识别建筑物的位置。提取建筑物等要素的精度很大程度上取决于影像的空间和光谱分辨率。
当利用充分的光谱信息时,我们至多可以排除植被,从而获得不透水表面的分布。但是在城市郊区,很难分辨出屋顶和道路。
同样地,传统的二维影像没有足够的空间分辨率来捕捉建筑物的边缘,因此,轮廓的提取质量不是特别理想,通常情况下,只能借助于耗费时间和人力的人工矢量化的方式来实现。此外,二维影像缺少用来分析地形和描绘场景的高程信息。
解决方案
利用LiDAR数据可以实现增强分析流程、提取建筑物轮廓和高程信息,从而获取建筑物屋顶的方向、坡度和大小信息。ENVI LiDAR模块可以读取LAS, LAZ和NITF等数据类型以及包含XYZ的简单的二进制文件。一旦读取了LiDAR数据,即可以生成基于自动要素提取的数字表面模型(DSM, Digital Surface Model)。
基于高密度点云的ENVI LiDAR流程
以下流程描述了利用ENVI LiDAR和ENVI提取装有太阳能电池板的屋顶的过程。使用的数据是ENVI LiDAR自带的样例数据,一共包含了6,436,045个点,点密度为 21.726个/平方米。点密度对于要素的自动提取是至关重要的,对于提取建筑物轮廓来说,至少需要6个/平方米(提取人字屋顶则需要高一点的密度)。ENVI LiDAR可以与IDL联合使用来识别点密度小于1个/平方米的建筑物的位置。
步骤一:自动提取建筑物、数字高程模型和数字表面模型
ENVI LiDAR的用户界面可以打开任何数量的LiDAR数据,并且生成一个工程文件。这个工程文件会被自动处理,从而提取出建筑物、数字高程模型、数字表面模型、树木、电力线、不规则三角网、等高线、点云数据集等要素。在步骤一中,提取出建筑物轮廓、数字高程模型和数字表面模型。
图1. 屋顶提取结果(建筑物轮廓矢量叠加在数字表面模型上)
步骤二:将结果导入ENVI
ENVI LiDAR的用户界面可以通过一键点击,将生成的结果导入到ENVI或ArcMap 中进一步处理。
图2.导入成果到ENVI中
步骤三:生成高度模型
高度模型是一种精确描述地面上物体的栅格类型,通过从数字表面模型中减去裸地获得。即:数字表面模型-数字高程模型=高度模型。利用ENVI中的波段运算,获得高度模型以供进一步分析。
图3. 利用波段运算(DSM-DEM)计算高度模型
步骤四:生成坡度、坡向等地形信息
利用ENVI的地形模型工具,将高度模型作为输入参数,可以计算出,装有太阳能电池板的表面朝向南(180°+/-30°),坡度范围为20-40°。
图4. 利用ENVI中的地形模型工具生成的坡向
步骤五:基于建筑物轮廓获取地形结果的子集
利用ENVI软件,可以生成只与进一步分析相关的地形结果的子集,这样做的目的是大幅度地减少处理大数据集所需要的时间,通过ENVI中的ROI工具可以实现。获得的结果中,只保留了建筑物的像素,背景值被设置为无效值,如图5所示。
图5. 基于建筑物轮廓的坡向子集
步骤六:生成适用于太阳能电池板放置位置的区域
适用于太阳能电池板放置位置的区域的坡向范围为150-210°,坡度范围为20-40°。有多种方式可以找到满足这两个条件的像素点,在本例中,利用ENVI软件中的 Raster Color Slice 工具,对数据设置阈值即可实现。
图6. 获取坡度范围为20-40°的像素点
图7. 获取坡向范围为150-210°的像素点
一旦设定了规则,即可利用ENVI软件中的波段运算(band math)工具实现像素点的提取。基于上面的两个结果,下面的表达式表示当同时满足坡向范围为150-210°、坡度范围为20-40°时,保留像素点;当不同时满足坡向范围为150-210°、坡度范围为20-40°时,舍弃像素点。
((b1+b2) eq 2) * 1 + ((b1+b2) ne 2) * 0
图8. 红色区域表示屋顶同时满足坡向范围为150-210°,坡度范围为20-40°
可以利用矢量数据中的面积属性或是分类后处理 (post-classification)技术对所提取的区域进一步优化。
基于低密度点云的ENVI LiDAR流程
鉴于从LiDAR中自动提取建筑物需要较高的点密度,利用ENVI LiDAR对点云进行分类处理从而提取建筑物轮廓,进而借助于IDL(the Interactive Data Language) 将地表要素从地面分离具有很大的可行性。利用影像的近红外波段信息或是在GIS中利用地表要素多边形合并具有相同地址的点的方式,去除树木等错误的要素。
以下描述了利用OpenTopography(http://www.opentopography.org/)提供的数据集进行处理的流程,这个数据集共含有1,887,574个点,点密度为1.918个/平方米。
步骤一:利用ENVI LiDAR将低密度的点云数据分类
首先将低密度的点云数据分类,将点云数据分为地形与非地形。
图9. 在ENVI LiDAR中将低密度的点云数据打开
在数据导入到ENVI LiDAR中后,生成DSM和DEM。在这个过程中,所有的点分类符合LAS 1.4规范和参数设置。下图中展示了被划分为地形的点,建筑物及其他地表要素没有被划分为地形。
图10. 在ENVI LiDAR中将点划分为地形
步骤二:利用IDL处理分类后的数据集
在IDL编译环境中将分类后的数据集打开,运行代码找到数据集中没有被划分为地形的所有点。如图10所示,这些点表示地表要素。没有划分为地形的点被赋值为0并输出为DSM,这样即会产生一个新的所有地表要素高程值为0的点云数据集。在ENVI LiDAR中重新生成DSM和DEM,并导入到ENVI中做进一步分析。
步骤三:提取地表要素
利用ENVI软件中的 Convert LAS File to Raster/Vector工具将点云数据集转化为栅格数据。
图11.
在生成的栅格数据中设置阈值即可以只保留地表上的点。利用ENVI中的Raster Color Slice工具,并将结果保存为矢量图层。在GIS中,利用该矢量图层所包含的地址信息,对照其与数据库中相交的点,即可提取出相应的多边形。
如果GIS数据图层中不含有地址或建筑物信息,通过不同的方法仍可以提取出相应的多边形。例如,利用影像中的近红外波段信息可以去除植被。一些小的要素(如汽车)可以基于大小进行过滤,其他的噪声要素可以通过分类后处理工具(如过滤和majority/minority工具)进行去除。此外,还可以基于大小和几何形状,利用面向对象的要素提取方法进行提取。如果数据集不大,可以进行人工编辑处理。
当去除错误的要素后,会生成建筑物轮廓的图层。利用此矢量图层对原始数据集中的DSM进行取子集处理,然后执行步骤4-6进行分析。
图12.