FME中的栅格数据操作之二——示例与应用问题

原文发布时间:2010-04-08

作者:毛毛虫

下面是我在FME中处理栅格数据遇到的问题及其处理方法和我认为需要注意的问题,在这里提出来跟大家一起交流下。

1、命名问题

在FME目标要素的属性中,找到命名设置一栏,会看到有个Fanout By Attribute选项。下图是选/不选该选项的区别。

        FME中的栅格数据操作之二——示例与应用问题

当选中该选项后,通过fme_basename格式属性分开,保证了每个输出文件与输入文件有相同的名称作为同源文件。

不选该选项,会根据在Feature Type Name中输入的要素名称,并追加一个数字后缀的方式命名。

例如,现有三幅影像:1.tif、2.tif和3.tif,转换为JPEG格式,不同的命名方法得到的文件名如下:

源文件

目标文件

Fanout Attribute命名方法

Feature Type Name命名方法

1.tif

1.jpeg

jpeg.jpg

2.tif

2.jpeg

Jpeg_1.jpg

3.tif

3.jpeg

Jpeg_2.jpg

2、栅格数据的批量裁剪问题

栅格数据裁剪用到的转换器是Clipper,在CLIPPER端口输入的是用来裁剪的数据,在CLIPPEE端口输入的是被裁剪的栅格数据。

        FME中的栅格数据操作之二——示例与应用问题

    FME可以处理批量数据的裁剪,方法是选择File菜单下面的BatchDeploy…子菜单(注意:只有当所建立的工程模板保存后,该选项才有效)。

    FME中的栅格数据操作之二——示例与应用问题

    点击该选项,在弹出的对话框中点击加号按钮,

    FME中的栅格数据操作之二——示例与应用问题

    在弹出的对话框中(下图),

    FME中的栅格数据操作之二——示例与应用问题

    

可以选择选择一个或多个文件(Add Files…),也可以选择文件夹(Add Directories…)。根据提示完成各个选项后执行批量处理操作。

示例:模板完成的操作是提取输入影像的边界矩形,对该矩形和原影像都进行重投影,然后用转换后矩形的最大内接矩形来裁剪转换后的影像。在完成模板后,对单个影像进行操作没有任何问题,但批量处理时结果不正确(我所用的FME版本是2010)。后来发现,FME2010版本默认的Clipper Type是Multiple Clippers,当进行批量处理时,并不是每个用来裁剪的矩形裁剪对应的影像,而是这些生成的矩形都来裁剪影像,造成裁剪出来的影像只保留了矩形重叠的部分。

    FME中的栅格数据操作之二——示例与应用问题

    把Clipper Type改为Single Clipper(如下图),就可以得到预期的效果。

    FME中的栅格数据操作之二——示例与应用问题

    3、栅格数据的镶嵌问题

    FME中的栅格数据操作之二——示例与应用问题

    使用Sorter转换器对输入的栅格进行排序,设置为升序,如图:

    FME中的栅格数据操作之二——示例与应用问题

    镶嵌后的影像如图:

    FME中的栅格数据操作之二——示例与应用问题

把Sorter转换器设置为降序后,镶嵌后的影像如图:

    FME中的栅格数据操作之二——示例与应用问题

4、栅格数据的叠加矢量问题

转换器VectorOnRasterOverlayer可以把矢量数据添加到栅格数据上,并把覆盖矢量数据的栅格数据栅格化生成新的栅格数据,新的栅格数据与原栅格数据的属性一致。

示例:

原栅格数据:

FME中的栅格数据操作之二——示例与应用问题

原矢量数据:

FME中的栅格数据操作之二——示例与应用问题

覆盖了矢量数据后生成的栅格数据:

FME中的栅格数据操作之二——示例与应用问题