使用FME对三维矢量线和航片进行快速建模的方法

2015-05-30 18:22陈润华
科技创新与应用 2015年23期
关键词:航片建模

陈润华

摘 要:文章针对数字城市三维建模的需求,提出了使用FME结合三维矢量线和航片进行快速建模的方法,介绍了实现过程。

关键词:FME;三维矢量线;航片;建模

1 概述

虽以Smart3D为代表的利用照片建模的三维重建技术正在迅速普及,但受限于使用此种方法得到的场景模型尚未实现模型单体化,在需要制作精细模型的项目中,仍然使用屋顶三维线结合航片影像生成模型的技术。

2 总体流程设计

3 实现过程

3.1 准备源数据。提取第三方航测软件生成的空三成果,整理成CSV格式文件方便在FME中使用,整理好的文件格式如下:外方位元素文件:相片文件路径,X,Y,Z,Phi,Omega,Kappa。测区参数文件:相机焦距,像主点x0,像主点y0,相片高(像素),相片宽(像素),像素大小,地面分辨率。准备屋顶三维矢量线和DEM文件。

3.2 检查、处理屋顶矢量线

首先对屋顶矢量线做必要的检查,包括检查不闭合的面、检查面边界是否有弧、重复顶点、面自相交、面重叠等。针对图形规范的检查和自动处理,可以使用GeometryValidator转换器。

人工采集屋顶矢量线的过程中,容易出现因捕捉不到位造成的顶点间以及点线间的缝隙,需要对其进行一定容差内的规范处理,包括二三维捕捉和给人字形屋顶加中线。其中人字形屋顶的所有顶点不在同一个平面上,属于不规范图形。但因为此类要素较多,如果采集过程中分别采集两个屋顶面,会严重降低作业效率。可以在FME处理过程中针对此类图形自动添加屋脊线,将其分隔成两个面。

3.3 检查屋顶线与相片是否重合

使用InsidePointReplacer转换器得到各屋顶投影面的中心点,使用NeighborFinder转换器求出离各屋顶面中心点最近的相片文件,然后根据摄影测量专业的共线条件方程,将矢量线的各顶点坐标计算到相片坐标,然后输出到FME Data Inspector中查看。在Inspector转换器中按相片全路径分组,矢量线对应的相片路径会直接显示在FME Data Inspector数据列表的节点上,可以更方便的检查。若屋顶线与相片不套合,最常见的原因是相片的外方位元素不规范,航测条带转向后坐标系正方向未保持一致。程序提供根据航带号的奇偶性进行自动纠正的功能。

3.4 获取底面

源数据确认无误后,使用SurfaceDraper转换器将每个屋顶面投影到DEM上,得到对应的底面。但通常每幢房屋范围内的DEM的高度都是不相等的,而最终房屋模型底面各顶点的高程就有不同的选择。最常见的要求是整幢房屋底都是平的,其次是要求房屋各顶点都正好贴到地表,最复杂的要求是对房屋边线进行顶点内插,使得整条线都贴合在地表上。第二种情况处理最简单,但是生成的模型从侧面看就会不美观。第三种会造成底面邊线生成过多顶点,不仅会极大增加模型的体积,还会严重影响侧面纹理效果。第一种要求需要统计投影面各顶点的Z值,根据需要取最小值、最大值或平均值。

3.5 掏空模型

掏空模型指对同一幢房屋(投影面相邻或重叠)的各部分进行体布尔运算,删除体内部表面,只保留最外部表面。此步骤可以使用FME Store上共享的SolidDissolver转换器完成。

3.6 裁切纹理

根据共线方程求出矢量线各顶点在相片上的坐标后,使用PointConnector转换器将点重新连接成面,然后使用Clipper转换器裁切离面中心点最近的相片得到纹理。

3.7 处理纹理

因为裁切得到的纹理是相片坐标,需要根据原屋顶线的所有顶点,使用AffineWarper转换器将其纠正回空间直角坐标。程序根据实际需求,提供了纹理最大像素限制和纹理转正的功能。因为常见的三维平台对纹理像素有限制,可以使用RasterResampler转换器进行重采样。另外因为纹理栅格文件是正矩形,当屋顶面的斜外接矩形与正南正北方向存在一定角度时,会存在多余的纹理。使用BoundingBoxReplacer转换器得到屋顶面斜外接矩形,求出旋转角后同时将屋顶面和已裁切的纹理旋转至水平方向并再次裁切,得到转正后纹理。纹理转正不会影响模型效果,却能有效的减少纹理文件大小。

3.8 输出模型

使用AppearanceSetter转换器对屋顶贴纹理。因为顶面、侧面是分开的要素,为保证输出后一幢房屋为一个模型对象,可以使用Aggregator转换器聚合同幢房屋的顶面和侧面。

3.9 使用自定义转换器分组处理

在最初测试中发现,当纹理数量较多时程序的处理效率非常慢,经检查发现主要原因是纹理纠正步骤使用的AffineWarper转换器目前在FME中没有提供原生的分组处理功能。后将纹理纠正步骤保存成自定义转换器,使用自定义转换器提供的分组功能实现并行处理。对比后发现,分组并行处理1000个纹理的效率是单进程处理的30倍以上。

4 结束语

整个处理流程共405个转换器,相比完全用代码实现,FME提供的方案实在是简单、易用、可靠。在实际使用中,搭配多核CPU计算机,使用FME的并行处理功能,可以极大的提高处理效率,完全满足实际需求。

参考文献

[1]张剑清,潘励,王树根.摄影测量学[M].武汉:武汉大学出版社,2000.

[2]李永泉,韩文泉,黄志洲.数字城市三维建模方法比较分析[J].现代测绘,2010,33(2).

猜你喜欢
航片建模
航测像控点之记自动生成系统的设计与实现
基于历史航卫片的城市“隐形”活动断层精确定位
——以大同盆地水峪断裂为例
联想等效,拓展建模——以“带电小球在等效场中做圆周运动”为例
缜密审题,准确建模,学以致用
基于PSS/E的风电场建模与动态分析
不对称半桥变换器的建模与仿真
浅谈占用林地管理小技巧
浅谈天台县历史航片正射影像生产及应用
提高无人机高程精度的影像获取方法
IDEF3和DSM在拆装过程建模中的应用