原文发布时间:2012-11-21
作者:小新
今年年初就整理了FME中点云转换器的一些资料以及FME在点云数据处理中的一些应用,一直想整理一篇关于点云转换器的介绍,结果拖到了现在。不过现在汉化版出来之后,大家用到这些转换器应该容易多了。不觉得FME2013马上就要出来,看了下介绍,在新格式中增加了四种点云格式(E57、Riegl、TerraScan、ZFS),新增转换器中有2个是处理点云的(PointCloudExpressionEvaluator、PointCloudFilter)。看来safe对点云的关注还是很大的,虽说fme不能解决点云中最主要的滤波问题,不过其他常见的处理用fme都能完成。有时候也许使用fme来处理这些问题比那些庞大的、复杂的点云处理软件方便得多。
好了,扯远了,现在回归主题吧~~~~~~~~~~~
1. PointCloudConercer
将点云转换为点或多点。
主要参数为Output Geometry,有Boxed Multipoint、Sequential Mulipoint, Single Multipoint、Point四个选项。
Boxed Multipoint, Sequential Mulipoint生成包含多个点的数据块。Sequential将输入点云进行有序分离,根据指定包含的最大点的数量快速生成数据块,点的排列没有一个很合理的空间规则,由此生成的数据块显得很随机。Boxed模式在分离点的时候考虑对点的空间关系,这种模式得到接近矩形的数据块且每个数据块大小接近。Boxed Multipoint方式执行效率较低,Sequential Mulipoint方式会比它提高约30%的效率。
这个转换器可以在其他不支持点云格式的软件中打开点云数据时使用,将点云转换为点或多点进行打开。
2. PointCloudCombiner
将一个或多个任意几何类型数据组合输出为一个点云数据。这些几何类型的数据可以是栅格、矢量或3D格式等。
参数Point Interval仅对面状矢量数据有效,用于设定输出点云的点间距。
该转换器可以应用于:
1) 点云拼接——对相邻点云数据进行合并;
2) 创建点云——根据jpg、DEM+JPG、或者3D模型创建点云。
3. PointCloudCreator
创建点云的转换器。
这个转换器无输入,通过参数对话框中的设置创建点云。只能创建规则分布的点云数据。
4. PointCloudPropertyExtractor
提取点云的坐标范围及点的数量,并保存为属性;同时检查点云是否存在某些组件。
输出点云新增参数_min_x,_min_y,_min_z,_max_x,_max_y,_max_z,_num_of_points来反映点云的坐标范围。同时检查是否存在的组件也通过新增属性来反应,例如:如果选择检查Intensity,则会新增一个_intensity的属性,它的值为布尔型(True或False),来反映点云是否存在这个组件。新增属性的前缀可通过参数Component Attribute Prefix设置。
主要的参数有:
1) Check Existence for Components(检查组件是否存在)
这个参数检查的组件是针对LIDAR获取的点云数据中记录的某些信息进行检查。如Intensity(回波强度)、Return Number(打到该点上的该束激光回波次数)、Number of Returns(此数据是该束激光的第几次回波)、Scan Direction Flag(是不是扫描行的最后一个点)、Classification(分类标识号,ASPRS提供了标准的分类标识)等等。
该参数不能输入,只能选择,通过复选框选择需要检查的组件。
2) Component Attribute Prefix(组件属性前缀)
设置Check Existence for Components中选择检查的组件的属性前缀。
3) Calculate and Update Extents(计算并更新范围)
重新计算点云准确的范围。通常在点云经过裁剪后,范围会发生改变,要获得点云的准确范围,需要将该参数设置为“yes”
我就曾经遇到这样的问题,在点云被裁剪为几个小块后,计算点云范围时,发现裁剪后的点云范围与原始点云范围一样。后来通过设置这个参数才获取到正确的点云范围。
4) Retrieve Min/Max for Components
获取组件的最小/最大值。该参数不能输入,只能选择,通过复选框选择要获取的组件。在输出的点云中会增加反应该组件最小/最大值的属性。例如如果选择了Intensity,则会增加_min_intensity, _max_intensity来反应Intensity的最小/最大值。