结合FME利用倾斜三维模型数据成果生成DSM等数据产品

原文发布时间:2017/8/4  14:39:06

作者:土豆(天下图)

邮箱:[email protected]

1 序言

众所周知,我们利用Smart3D除了生成各种数据格式的三维模型以外,还可以在生成模型以后在Smart3D中输出点云、DSM和TDOM等附加数据产品,这些附加的数据产品也能用于各种数据分析和应用场景当中。

但有时我们手头仅有倾斜模型数据成果(如osgb格式模型),或者在生成DSM/TDOM软件总会遇到各种各样的问题,导致输出的附加产品和倾斜三维模型的范围不一致或丢失。遇到这种问题应该怎么办呢?

这时我们可以利用FME来根据已有的三维模型数据成果进一步生成这些附加数据产品。

2 目的

根据已有的倾斜三维模型数据成果(本案例中利用osgb模型)生成其他数据产品,本案例中输出的数据包括点云、DSM、TDOM和旋转了一定角度的DOM,其中旋转角度的DOM是用于给客户打印出图时使用的。

3 FME处理流程

3.1 整体流程

从下图可以看到,处理的流程并不复杂,所用函数也仅有5-6个。相信对于很多人来讲也非常容易。

结合FME利用倾斜三维模型数据成果生成DSM等数据产品_第1张图片

  

3.2 处理步骤

3.2.1 坐标偏移

我们知道利用Smart3D生成的三维模型记录的是一个相对坐标,其主要目的是为了减少模型的数据量,同时也避免了在有的三维软件当中对于坐标值较大的数据的精度支持的也不够好的问题。

在Smart3D生成的数据成果当中都有一个metadata.xml文件,用记事本打开这个文件,就可以看到文件当中记录原点信息。这意味着所有的三维模型都是相对于这一点的坐标。因此需要首先利用Offsetter函数,在FME当中对模型进行移动至正确的位置。

结合FME利用倾斜三维模型数据成果生成DSM等数据产品_第2张图片

  

3.2.2 利用PointCloudCombiner转换模型为点云

这里利用PointCloudCombiner函数,可以将模型数据转换为点云数据,不仅对倾斜模型有用,对于其他来源的三维模型同样有效果,有兴趣可以尝试。

需要注意的是,在设置点间距的数值时,如果我们输出的TDOM为0.05米的,那么建议在设置点间距为0.025米,这样可以避免在后续输出TDOM时存在空值(漏洞)。

3.2.3 利用ImageRasterizer输出TDOM

利用ImageRasterizer并设置正确的参数,即可输出TDOM,参数设置一般设置为RGB24,也就是我们常说的3波段。背景色设置为黑色(0,0,0),点云输入设置为Color

以下是生成的TDOM

结合FME利用倾斜三维模型数据成果生成DSM等数据产品_第3张图片

  

3.2.4 利用SurfaceModeller生成DSM

对于利用PointCloudCombiner生成的点云,可直接利用SurfaceModeller生成对应的DSM数据。需要设置正确的X和Y的采样间隔即可。

同时由于在PointCloudCombiner步骤中,我们为了TDOM生成没有漏洞,采样间隔设置为0.025米,但DSM实际仅需要0.05米的,因此在本例中利用SurfaceModeller之前还用了一个PointCloudThinner函数,用于减少点云的数据量,加快生成的速度。

生成的DSM数据如下:

结合FME利用倾斜三维模型数据成果生成DSM等数据产品_第4张图片

  

3.2.5 生成点云

生成点云可在上一步的基础上,在PointCloudThinner后直接输出点云数据即可。且生成的点云为带RGB颜色信息的点云数据。

结合FME利用倾斜三维模型数据成果生成DSM等数据产品_第5张图片

  

3.2.6 生成具有一定俯视角度的DOM

在生成TDOM之前,可利用3DRotator函数,对点云数据进行适当的三维旋转,即可生成具有一定俯视角度的DOM。

这种数据主要是为了满足部分客户打印出图使用,传统的做法往往是将模型导入到例如3Dmax之类的软件当中设置好一定的角度,然后渲染出图。这种方法相信能够省去不少的麻烦。

在设置3DRotator旋转时,需要注意,旋转的角度以轴向为准,顺时针为正值,逆时针为负值即可。

如下图,本例中由于只有郊区的模型,相信城区的数据生成的效果一定会更好。

 

结合FME利用倾斜三维模型数据成果生成DSM等数据产品_第6张图片

  

4 经验总结

FME在读取三维模型时的效率不高,经测试不论是osgb格式还是obj格式,均需要一个漫长的等待,期待后续在这方面有所改善。但即便如此,FME依旧让我们看到了它的强大,万能的FME!

你可能感兴趣的:(默认分类)