自定义转换器1

原文发布时间:2014-09-17

作者:一辉

在FME中创建自定义转换器,可能大多数FME用户都曾经使用过,当然也有些前辈们做过类似的介绍,但最近版本的FME对自定义转换器更新很大,最近在使用的过程中也有了一些心得,所以想整理出来与有需要的朋友共享。

1. 自定义转换器的作用

l  封装:将为实现某个具体功能,所使用的多个FME转换器组合起来,以供复用。

l  共享:将自定义转换器导出,即可为其他用户所共享,当然不导出通过拷贝的方式也可以实现共享。

l  循环:在自定义转换器里可创建循环,来实现一些复杂的运算。

l  并行:自定义转换器中可以设置并行处理,与FME的很多转换器的并行处理一样,如Buffer、Clipper等。

l  扩展:通常我们可以在自定义转换器中使用pythoncaller或者tclcaller,通过开发来拓展FME的功能,FME Object提供了很多的空间的非空间的方法,这也是我们拓展FME功能最常用的方法。

2.   创建自定义转换器

1)通过菜单:打开一个空白的工作空间选择菜单Insert->Custormer Transformer,即可创建一个新的自定义转换器,这其实是我最喜欢的方式,因为这样看起来比较清洁,当然因为没有实际的数据,这种方式需要一些想象力,需要对FME有一定的熟悉程度。

    

 

2)通过已有的转换器:在一个工作空间中,选择想要的封装的几个转换器点击右键选择Create Customer Transformer,这种方式通常是实际数据测试后再制作自定义转换器,所以相对简单些。

    

3.  自定义转换器参数

 

选择创建自定义转换器后,会弹出一个自定义转换器的参数设置对话框,每个参数的含义:

    

Name:自定义转换器名称,按照FME Store里的命名规则,建议采用“驼峰式”写法即名称中的每个单词首字母大写其余字母小写。命名尽量采用英文名(FME2014对中文支持问题很多),名称尽量反应转换器的实际作用。

Category:所属类别,可以用户自己定义,也可以放在已有的类别里,自定义完成后会在转换器的导航栏里看到,如下图Inspect是我自定义的类别。

Description:描述,转换器的大致作用描述,也可以在后面自定义转换器中在设置。设置完成后会出现在转换器说明里。

描述最好包含转换器的作用,每个端口的介绍,参数的设置,当然也可以放到下面的用法里面,总之要起到转换器帮助的作用。

Attribute References:属性关联,在FME的2014版本里,制作自定义转换器时,如果在自定义转换器中用到了数据流中的属性选择默认的“Handle With Published Parameters”时,自定义中用到的属性会以发布参数的方式发布出来,作为转换器参数供用户设置。

    

4.   导出自定义转换器

自定义转换器如果要共享就需要导出,导出后放在
C:\Users\Administrator\Documents\FME\Transformers这个目录下,即可使用,如果需要共享就可以把改转换器放到其他用户的该目录下。

File->Export As Custom Transformer,注意导出时,画布必须是自定义转换器的窗口,而不能是Main主窗口:

参数设置:

Insert Mode:建议使用默认的即’Embedded Always’

l  链接的方式
需要在’C:\Users\Administrator\Documents\FME\Transformers ‘目录下有该转换器才能使用,且可随着该目录下的转换器的更新而自动更新。

l  嵌入的方式
则不依赖该目录下是否有此自定义转换器,该转换器被嵌入到了模板当中,这种方式在共享模板或发布模板到server上时都可以不安装自定义转换器所以更加方便,而更新稍微麻烦些,上面目录下的自定义转换器更新之后,需要重新打开模板,此时会提示是否更新,选择更新即可。

l  Default的方式可以在嵌入和链接之间转换,而Always则不能更改。

FME自定义转换器的基础的内容基本上介绍完了,接下来可能还会再写一到两篇来介绍自定义转换器制作过程中的一些技巧,和一些高级的应用。

 

猜你喜欢

转载自blog.csdn.net/fmechina/article/details/81062915
今日推荐