本文档介绍了用于从已分类航空激光雷达数据中提取建筑物外壳(外部)。 该方法将屋顶点聚类成不同的屋顶部件,为每个部件创建不规则三角网 (TIN),将每个部件的边界拉伸到地面并将输出写入多面体要素类。 随后可以将基于多面体的建筑物外部表示用于可视化和分析。
此方法的优点为屋顶定位精度高,因为屋顶是直接通过激光雷达点创建的。 还可通过该方法对一些不常见的独特屋顶形态进行建模,而不受限于一组有限的典型屋顶形态。 缺点包括从上方近距离查看时结果会有噪点,内部建筑角点是圆滑的而不是尖锐的,可能会产生数量更高的顶点,并且缺乏多个细节层次。
可通过一些其他方法提取建筑物外壳。 例如,一种方法是将屋顶拆分成不同的额不见,预测每个部件的屋顶类型和屋檐高度,然后按程序为每个部件生成几何并将输出写入到多面体要素类。 此方法的优点为生成的几何简单平滑。 缺点主要与定位精度有关。 建模的屋顶可能与实际的屋顶不太一致,但是可通过多种方式识别有问题的建筑物并进行修复。 有关详细信息,请参阅 3D 建筑物解决方案。
这两种方法均从屋顶/屋檐边缘向下拉伸到地面,因此建筑物侧面都很简洁且垂直。 不会在模型中捕获阳台和悬垂。
要求:
- ArcGIS Pro 3.3 或更高版本
- 建筑物屋顶已分类航空激光雷达数据
- 间距至少为 4 ppm / 0.5 m 的点密度
- 用于提供地面高度的栅格数字高程模型 (DEM)
概念
此方法使用屋顶点形成建筑物外壳几何。 可以不需要屋顶顶部的杂物,例如天线、管道、通风口、风扇和其他 HVAC 相关设备。 建筑物的侧面往往会因为阳台和从高楼侧面突出的部件等因素而带来不利影响。 因此,分类为建筑物的点应包含屋顶,但不包含不需要的杂物和建筑物测点。
屋顶点根据 3D 距离进行聚类。 这样可以区分彼此高度差异明显的屋顶部件。 将删除它们之间的垂直墙体。
基于距离的聚类非常适合城区的较大建筑结构,因为这些结构的部件更有可能高度差异明显。 部件在常见交汇处汇聚的屋顶不会在不同的聚类中结束,这在单户型住宅中较为常见。
每个聚类的 2D 边界将用作屋顶部件并拉伸到地面,形成建筑物外壳的墙壁。 聚类边界面是凸包,使用称为 alpha shape 的概念进行定义。 用于定义边界围绕聚类的拟合程度的关键参数称为 alpha 半径。
建筑物的不同聚类边界交汇处不平滑,这可以说是该方法的一个缺点,因为部件之间存在间隙。 如果不是近距离查看,这不算问题。
尽管此方法用于建筑物外壳建模时有一定的局限性,但是结果通常足以满足工作要求,与依靠基于屋顶类型的建模方法相比,近似度更高。
工作流
在工作流中,首先使用从点云中提取对象地理处理工具。 该工具会提取相似分类点聚类周围的边界几何。 使用此工具可获取每个屋顶部分的 2D 轮廓线,对于每个部分,获取组成该部分的点的 z 值范围。 该工具随后使用这些屋顶面作为 LAS 建筑物多面体地理处理工具的输入。 它会使用建筑物分类点为每个部分构建 TIN,还会按与屋顶部分关联的高度范围过滤这些点,然后将 TIN 边界向下拉伸到地面。
注:
为了节省时间,使用有代表性的子集进行试验,了解哪组参数值适合您的数据,然后在将其应用于较大的集合。
“从点云中提取对象”地理处理工具参数
- 输入点云 - 输入 LAS 数据集。
- 要提取的类代码 - 指明表示屋顶点的类代码。 通常为类别 6。 可以将默认输出组 ID 设置为 6。
- 输出对象要素 - 输出要素类。
- 输出几何类型 - 2D 凸包。
- 聚类距离 - 这将是 Z 方向上聚类之间的间距。 接受介于 0.5 至 3.0 米之间的值。 首先,尝试 1.5 米。 目的是让属于屋顶部分的点彼此相距该距离,从而可以聚合为一个组,而不同屋顶部分相距距离较大,从而实现单独聚类。
- 垂直聚类比例因子 - 首先使用值 1.0。 值越大,点之间的高度差异影响越大;值越小,影响越小。 如果使用值 0.0,则不会应用高度,将在 2D 模式下进行聚类。 使用 0.0 可获取与屋顶部分轮廓线不同的建筑物轮廓线。
- 为每个对象计算唯一半径 - 默认将此参数设置为关闭,但是值得尝试使用该参数。 如果将该参数打开,您可能会获得每个对象的更详细边界。 尽管有可能带来益处,但是同时可能引入更多建筑物侧墙噪点。
- Alpha 半径 - 此参数用于控制点聚类与周围输出面边界的拟合程度,它在上一个参数关闭时启用。 值越小,沿墙面和在内部建筑物角点周围生成的细节越多;值越大,概化程度越高,生成的墙面越平滑。 首先,尝试 2 米。
- 最小点数 - 保留此参数的默认值 10,您要么需要较大聚类(增加值)要么想要允许较小的聚类(减小值)。
查看结果。 尽管您可以在 2D 地图中显示面,但是您可能看不到被其他面覆盖的面。 将符号填充设置为透明,仅留下轮廓,即可查看隐藏的面。 要获取可能更好的其他视角,可使用局部 3D 场景在 3D 模式下显示面(使用添加至输出要素类的 MIN_Z 或 MAX_Z 属性)。
需要考虑删除 2D 区域面积较小的面,因为这些面主要是噪点,会增加不必要的渲染和分析计算费用。 为了,可将按属性选择图层工具和“删除要素”工具结合使用。 首先,尝试使用 6.0 平方米作为截止大小(这是分类 LAS 建筑物工具默认使用的最小面积)。
还需要考虑移除面中的孔洞。 许多孔洞的形成原因是较高的屋顶部分位于较低屋顶部分中间。 闭合较低部分中的孔洞将在拉伸较高部分穿过较低部分时创建更平滑的外观。 但是存在移除仍应保留的孔洞的风险(例如,拉伸其他部分时不会穿过的孔洞),因此应谨慎执行此操作。 可以将消除面部件和仅消除包含的部件选项搭配使用。 首先,可尝试 25 平方米的面积。
“LAS 建筑物多面体”地理处理工具参数
- 输入要素 - 使用从点云中提取对象地理处理工具输出的屋顶部分面。
- LAS 屋顶点选择 - 指示用于屋顶的点。 如果选择建筑物分类点,该工具将使用类别 6 点。 如果数据将其他一个或多个类别代码用于屋顶点,则使用一个或多个正确代码分配图层过滤器,然后选择图层过滤点选项。
- 采样分辨率 - 此项用于图格化屋顶点并使用每个立方图格中的最高点。 我们要基于这些点创建 TIN,此 TIN 的三角测量为 2D。 它不支持真正垂直的面或悬垂。 您的屋顶分类点可能包含相互重叠的不同屋顶部分。
- 地面高度 - 屋顶部分边界将向下拉伸到地面。 此参数可用于从面中选取 DEM 或属性以获取地面高度。 要让面获取该属性,一种方式是使用添加表面信息工具。 与 DEM 相比,使用高度属性的优势在于,尽管会产生一些计算成本,但是信息可多次零成本复用。 如果使用 DEM 作为输入,则每次重新运行该工具时,都要重新计算以获取距 DEM 的地面高度。
- 输出多面体要素类 - 输出建筑物外壳。
- 简化容差 - 在将屋顶 TIN 转换为多面体之前,可对其进行概化以减少节点数。 为了提高下游性能,需要这样做。 容差指概化的 TIN 和原始 TIN 之间允许的高度差。 假设所用值等于激光雷达的垂直精度(例如 10 cm)。
- 最小高度字段 - 此项引用输入面要素类中的属性并将用作过滤器。 将仅使用等于或高于此值的点(位于面内)。 此项用于过滤出聚类中可能高于或低于生成面的聚类。 指定从提取工具输出的 MIN_Z 字段。
- 最大高度字段 - 此项引用输入面要素类中的属性并将用作过滤器。 将仅使用等于或低于此值的点(位于面内)。 此项用于过滤出聚类中可能高于或低于生成面的聚类。 指定从提取工具输出的 MIN_Z 字段。
如果数据对建筑物的分类方式为包含屋顶杂物和建筑物侧面点,并且这会造成一些问题,请尝试创建测试区域副本,然后试着使用更改 LAS 类别代码地理处理工具将建筑物类别重置为 1 ,接着使用分类 LAS 建筑物地理处理工具重做建筑物分类。
尝试在多面体中分类屋顶上方的点。 可通过分类 LAS 建筑物地理处理工具选择将高于屋顶的点置于类别 6 或其他类别。 最好将这些点置于自定义类别中,然后使用从点云中提取对象地理处理工具有选择地包含这些点。
该工具允许使用输入多个类别并通过向这些类别指定同一输出组 ID 将其视为一体。 为了方便聚类,具有相同组 ID 的点将视为相同类别。 如果您使用从点云中提取对象地理处理工具包含屋顶上方的点,则可以使用 LAS 建筑物多面体地理处理工具合理包含这些点。 要执行此操作,可仅打开 LAS 数据集图层中的建筑物和屋顶上方点,然后选择将图层过滤点用于该工具。 还可以将屋顶上方视为专用类别进行提取。 将这些部分与屋顶的其他部分隔离,让其在视觉上更清晰,因为它们将具有垂直侧面。 它们也可以独立于其他建筑物部分打开和关闭。
尝试使用 3D 图层属性和拉伸显示拉伸的屋顶部分面。 如果没有激光雷达点,这些部分的顶部是平坦的,但是全部组合显示后从远距离看可能很合理,并且由于顶点计数相对较低,渲染效率也很高。 在提取的屋顶部分面和 DEM 之间使用添加表面信息将地面高度添加为面属性时,附带的好处是您之后可以计算相对于地面的建筑物高度(屋顶部分面已具有源自点聚类的 MAX_Z)并使用该值符号化建筑物各部分。
激光雷达数据源致谢:
- 图片 1、3:法国国家地理和林业信息研究所
- 图片 4、7:荷兰基础设施和水资源管理部
- 图片 5:USGS Lidar Central Eastern Massachusetts