首页 >> 大全

带建筑物的点云到 3D地形模型

2023-06-23 大全 66 作者:考证青年

一、介绍

由于LiDAR点云数据包含有关返回激光的物体的表面信息,因此我们可以使用它来对地形以及建筑物进行建模。这正是我们在此演示中要执行的操作,其中 LAS点云用于:

1. 构建不规则三角网的(TIN)地形模型;

2. 将建筑物覆盖区拉伸到其实际的3D高度。

这两个步骤中的每一个都将成为我们输出中的一个图层:一个以PDF格式编写的3D模型。

此工作流有两个技巧:

1.提取和替换建筑物覆盖区几何图形(矢量数据);

2.使用建筑物覆盖区裁剪点云。

简而言之,我们将隔离每个建筑物覆盖区的点云,然后将这些覆盖区拉伸成 3D 实体。请按照下面的分步过程,了解有关如何设置此3D点云工作流程的更多信息!

CAD建筑轮廓

las点云

二、分步说明

步骤1.读取点云和建筑物

点云数据存储在LiDAR数据交换格式(LAS)中,这是3D点云的标准格式。建筑轮廓和基本高度是从矢量ACAD DWG文件中读取的。分别在两个文件中读取:

添加las读模块,读取点云:\LAS.laz

添加 DWG 读模块。在 CAD 文件中读取时,请记住进入“参数”并将“图元分组依据”设置为“属性模式”,以便以后能够访问基本高度属性以进行拉伸。

CAD数据:\.dwg

步骤2.构建几何图形

添加并连接建筑物覆盖区以将当前几何存储在要素的属性中。如果必须临时更改要素的几何图形以获取其他信息,这可能非常有用,就像我们在后续步骤中将此数据与点云相结合时的情况一样。通过提取要素的原始几何,可以随时对其进行恢复。一旦我们准备好将建筑物拉伸成三维,我们将恢复建筑物覆盖区的几何形状。

在参数中,确保“几何编码”设置为“FME ”,并且目标几何属性设置为。我们不需要删除几何图形。

如果要立即运行转换,请记住调整要素处理,以便转换在拒绝要素时不会终止。为此,您可以转到:导航>工作区参数>转换>拒绝要素处理:

将其更改为“继续转换”。

第3步.过滤建筑物的点云

已分类的点云将包含一个存储分类的组件,通常为编码的数值。此分类通常用于区分属于地面、植被、建筑物等的点。将添加到LAS读模块,并使用以下表达式过滤掉分类为建筑物或地面的点(注意:方括号中为[注释],不包含在表达式中)。

@()==6 [建筑港口]

@()==2 [地面端口]

以下是到目前为止的工作区:

步骤 4.通过建筑物修剪点云

要获取每个建筑物的高度值,请通过建筑物轮廓要素裁剪点云。添加一个转换器并将过滤的建筑物点连接到端口,将建筑轮廓连接到端口。要保留的属性,请检查转换器中的“合并属性”参数。将“累积模式”设置为“Merge ”,将冲突解决设置为“Use ”。这意味着我们将保留点云()属性,并通过保留点云属性来解决合并中的任何冲突。结果是每个建筑物都有一个点云!

第5步.使用获得建筑高度

将内部输出端口从连接到转换器。打开属性并选中该框以获取每个建筑物点云的中值,并将其作为属性存储在每个要素上。使用中位数是因为屋顶提供了点云中的大多数点。我们不使用最大点云高度,因为这包括天线等不能代表实际建筑高度的东西。

第6步.恢复几何图形

使用几何替换器从属性中()恢复几何。现在,每个建筑物都有其原始的矢量几何图形,并且具有从点云派生的高度值。

第7步.设置建筑基础高度

由于从派生的z. 值表示海平面以上的高度,而不是建筑物的真实高度,因此我们需要一种逻辑方法来根据我们拥有的两条高程数据来查找建筑物的高度:建筑物覆盖区的高程()和建筑物屋顶的高程(z.)。添加以将基本高度设置为源DWG建筑轮廓中的属性。一旦基础高程正确,我们就可以使用一些简单的减法将建筑物高度从建筑物的基础高程准确地拉伸到中值点云高度。

如果未显示为选项,请确保将读模块参数设置为分组条目依据:“属性结构”。更新读模块以访问其他参数。

步骤 8.拉伸建筑物

拉伸定义为对象通过附加尺寸的延伸。在我们的例子中,我们希望将2D建筑覆盖区投影到3D建筑中。为了实现这一点,我们添加了一个转换器,通过点云减去基础高程得出的屋顶高度来挤出建筑物。使用转换器中的算术编辑器,并在距离字段中输入以下表达式:

@Value(z.)-@Value()

2D 建筑轮廓面根据建筑物的高度值变为 3D 实体。

第9步.创建曲面

将使用地面点创建一个曲面,以填充建筑物周围的地形。添加转换器,并将的地面点输出端口连接到的点/线输入端口。的表面容差参数确定将哪些输入点作为顶点添加到模型中。在我们的例子中,值1是合适的。该值越大,滤除的输入点就越多。

步骤10.写出结果

TIN曲面和拉伸建筑物可以写入支持曲面或网格的任何格式,例如、3D PDF、 FBX等。在此示例中,我们将写入Adobe 3D PDF并创建两种目标要素类型,一种用于建筑物,另一种用于地面。将拉伸建筑物和输出端口从连接到其各自的要素类型。

要创建单个pdf,您需要将两种要素类型写出到单个写模块中:

1.将的挤出输出端口连接到写模块。

2.选择TIN生成器的输出端口,然后转至菜单栏中的 > Add Type。为要素类型命名,然后从下拉菜单中选择现有写模块。

现在,当您转到导航窗口查看写模块时,请注意建筑物写模块中有两种要素类型。运行工作区以生成PDF文件,并使用Adobe PDF读模块查看PDF文件。

1、已完成的工作空间:

2、结果

在 Adobe PDF 中查看的 3D 模型:

替代方法 - 从点云构建高度

如果矢量建筑物覆盖区中没有建筑物高度/高程数据,则可以从点云数据(而不是从现有属性)中检索建筑物的基本高度。在拉伸之前,最好将建筑物轮廓叠加在TIN表面上。若要创建平面基础,每个轮廓应该只有一个值。为了实现这一目标,,和是一个很好的开始!

3、总结

此工作流突出了在处理LAS文件方面的强大功能,以及FME 中将不同类型的多个文件组合成有价值的信息产品的潜力。借助矢量建筑覆盖区和点云,我们提取了高程数据,合并了几何图形,拉伸了3D实体,并创建了一个表面和建筑模型,一旦完全写入PDF,不熟悉GIS的同事或无法访问FME ,即可在PDF读模块中轻松共享和查看该模型。

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了