FME Desktop培训教程 第六章 数据转换练习一.docx
- 文档编号:17043995
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:18
- 大小:666.42KB
FME Desktop培训教程 第六章 数据转换练习一.docx
《FME Desktop培训教程 第六章 数据转换练习一.docx》由会员分享,可在线阅读,更多相关《FME Desktop培训教程 第六章 数据转换练习一.docx(18页珍藏版)》请在冰点文库上搜索。
FMEDesktop培训教程第六章数据转换练习一
许多FME用户认为有必要对函数进行培训。
这单元会介绍更多的函数,以及一些你之前可能不知道的高级函数。
Adders,Builders和Creators:
基本的转换函数
一般,函数根据一些相关的信息来命名,例如运行方式、输出结果等。
我们可以通过函数的前缀来寻找线索。
Adders函数
以“Adder”作为后缀的函数,会添加一个新项目到当前要素中。
例如,2DPointAdder函数表示添加一个新的节点(点)到已有的要素中。
2DPointAdder为一个线要素增加了一个新节点(如下图左),这和屋主给他的房子添加一块额外部分是同样的道理(如下图右)。
Builders函数
“builder”函数是将一组输入数据重构成一种新的格式,你可以把它看成是原始资料回收站。
这就像是,我们摧毁一个房子,然后重新建造它(如上图)。
PolygonBuilder处理一组多边形,然后输出新的格式(如下图)。
Creators函数
“creator”函数会在工作流中创建一个全新的实体
多数这类函数都不接受输入项,而是通过设置对话框中的信息创建一个全新的实体,例如,2DGridCreator函数,用户通过输入的一系列参数值,就能够创建一个网格点或面。
这就好比建房子,我们使用原料来建房(如上图)。
2DGridCreator函数则使用一系列用户自定义的参数来创建面网(如下图)。
一些creator函数会为已有的要素创建新的属性项,例如AttributeCreator函数,任何输入到这个函数中的要素都会添加一系列的新属性,这些属性都是在函数设置对话框中定义的。
其它的creators的函数还有:
Creator,PythonCreator和RasterNumericCreator。
提问:
在对函数名知识了解的基础上,推测下TopologyBuilder函数是用来做什么的呢?
1)在设置对话框中创建参数的拓扑
2)将输入要素转换成拓扑连接的输出要素
3)用拓扑要素代替输入要素
4)将相关拓扑属性插入要素中
Replacers函数
任何以“Replacer”为后缀的函数都会进行以下操作:
输入到该函数中的要素会被一个新要素实体取代;新的要素以第一个要素为基础。
房主决定重建他的房子,但要以一种全新的风格,只有一部分是在原来的基础上(如上图)。
BoundingBoxReplacer是一个典型的replacer函数(如下图)。
所有的输入要素都被输出要素所取代,这些输出要素表示输入要素的边界框,其它的Replaces函数还有:
2DPointReplacer,CenterPointReplacer和GeometryReplacer。
Removers函数
“remover”函数会删除要素的部分属性,输出结果都是修改后的要素。
例如GeometryRemover函数,就是删除要素的所有几何图形,输出一个非几何要素,类型是fme_no_geom。
下图:
这是房主使用remover函数移除了屋顶的效果。
其他的Remover函数还有:
?
AttributeRemover
?
CoordinateRemover
?
CoordinateSystemRemover
?
DuplicateRemover
?
ListDuplicateRemover
Filters函数
“Filter”函数是根据原要素特征进行数据过滤分流,实现结构映射。
这些要素特征可以是属性,或者是要素几何类型的某方面。
右图:
GeometryFilter函数根据几何类型将输入要素过滤成多个输出流。
其它的过滤函数还有:
AggregateFilter,AttributeFilter,FeatureTypeFilter和SpatialFilter(通常,我们容易将SpatialFilter与SpatialRelator弄混,“filter”强调的是区别)
空间(位置)函数
即使是有经验的FME使用者看到整个函数列表也会感到很头疼,学了这个单元,你就不会再害怕函数,并且还会喜欢上函数。
FME拥有300多个函数,能够实现各种各样的功能。
可能有很多你都没有意识到,但这些函数真的是非常有用。
这个单元将会帮您寻找需要的函数,即使有些您没有意思到会需要它。
函数类型
首先,我们来学习函数类型,这是学习函数列表很好的一个起点。
我们将同一种类型的函数分为一组,这样方便寻找能够解决问题的函数。
下图:
图标显示的是函数类型,点击+,展开每个列表,显示一种类型的函数。
以下就是一些类型:
3D:
特别针对3D数据的函数
Calculators:
计算一个值,并且将它作为一个新的属性
Database:
与外部数据库一起使用
Filters:
过滤,重新发送数据
GeometricOperators:
处理要素几何形
Lists:
处理属性列表
LinearReferencing:
进行测量,例如,创建测链长度
Manipulators:
处理单个要素
Rasters:
处理栅格数据集
Strings:
创建,调整和删除字符属性
Surfaces:
处理面类要素,例如,创建一个等高线
WebServices:
通过HTTP,分享网站上的信息
Workflow:
在本地,或者使用FMEServer来运行工作空间Newfor2009
XML:
将XML数据编写到FME中
函数查找
这个函数会尽力在函数名和函数描述中寻找用户自定义的关键字
下图:
在函数列表中就可以找到transformersearch的窗口(被标记成红色)
简单地输入要术语,或者按
这个函数也接受含有词语的描述,所以就可以输入‘attrib’,来代替“attribute”
关键字(Keyword)查找
函数查找可以接受多个关键字,并且返回所有含有关键字的的函数
注意,你没有必要一定要输入函数名,或FME使用的术语。
有关函数的描述包含一般的关键字(如上图),使用这些关键字就能更轻易地寻找到和空间相关的术语。
提示:
输入一个函数名的中间部分能更快地寻找到需要的函数,例如,为了快速地寻找函数AttributeReplacer,你可能输入‘Attrib’或‘Replace’,但是含有‘Attrib’的函数有150多种,而含有‘Replace’的也有50种,如果输入‘uteRep’,就只会出现2个函数。
可能在理解时有些困难,但是当你操作时,就会发现它是非常有用的。
函数帮助(Help)
WorkbenchHelp会为每个函数提供大量的相关信息。
它取决于语境,所有你只需要选择一个函数,然后按F1键,就可以获取帮助了。
也可以在函数中获取TransformerHelp,点击函数列表中的一个函数,就可以获取这个函数的具体信息了。
当输入的寻找关键字与函数名完全符合时,就会默认地选择这个函数,并且会自动显示相关的帮助描述
反之,就会在列表中显示第一个函数的相关帮助描述
左图:
使用transformersearch来寻找GeometryFilter函数,在下面的窗口中显示了对这个函数的描述。
使用函数
函数有一些我们不大知道的功能,使用这些功能就能够帮助你更有效的工作。
比起简单的忽略函数,或者手动的进行模式映射,这里提供了很多不同的方法,来放置,使用函数。
输入函数设置
一些函数需要用户输入大量的内容,这样就可能产生错误,并且使用起来也不是很方便。
为了解决这个问题,一些函数就有一个‘Import’选项。
这个输入工具会在已有的数据集中输入一个属性值,并且数据集可能是任何的FME格式
上图:
在这个例子中,打开AttributeFilter设置对话框,然后点击‘Import’键。
左图:
一旦选择了一个数据集和属性,FME就可以扫描数据集,并且提供一个有关特殊值的列表
AutoConnect
右击Filter函数,就会出现一个选项‘AutoConnect’,它能够自动将输出端口连接到正确的目标要素类。
虽然我们很少用到这个选项,但是模式映射一个复杂的工作空间时,使用它就非常有用了。
当必须要将过滤函数与大量目标要素类进行连接时,并且要素类名与输出端口名相同,使用AutoConnect就非常有效。
下图:
将AttributeFilter连接到大量的目标要素类,最理想的方法就是使用AutoConnect选项。
右图:
选择了AutoConnect后,就会打开这个对话框。
注意,Auto-connect是怎样使用源要素的模式定义来自动创建目标要素类的。
在这个例子中,要素类已经存在了,所以就不需要再创建新的。
左图:
AutoConnect将每个filter输出端口连接到相应的要素类。
自动连接函数还有:
AggregateFilter,SpatialFilter,GeometryFilter和FeatureTypeFilter。
如右图:
右击FeatureTypeFilter,就能够运行AutoConnect功能。
高级函数——Drag-and-Insert
这个函数拥有大量的高级功能.
多个连接
你可能知道,将函数拖到已有的连接中,然后松开鼠标,就能够将函数插入到一个管道中了,但是你又是否知道,通过标记一个函数输入/输出端口,而不是进行连接,就可以立即将函数插入到多个管道中呢?
下图:
这里,用户希望插入一个2DForcer函数,并且将它连接到输入流中…
…他将函数拖到Snapper输入端口(被标记为红色)…
...这样,就插入了这个函数。
ReversingtheInsertionPoint
有时候,将函数拖到指定的位置,并不是那么容易的,这是因为函数覆盖了要插入的连接或端口
当你拖动函数时,按ALT键就可以解决这个问题。
通过这个操作,就能将插入醒目点转换到函数的对角点,这样就能明确标记出要输入的端口了。
下图:
当醒目点在常用位置时,2DForcer就会阻碍用户的视野… …但是通过ALT键降低点命名,就不会出现上面的情况了。
插入一个已插入的函数
你可能注意到了,拖动一个已经插入了的函数仍然会产生醒目点,并明确标记连接,这是因为能够将一个单一的函数连接到多重流,而这种方法能够轻松的帮到你。
下图:
用户希望插入一个Clipper函数,与前面多重连接不同的是,这里有多个要求进行单独连接的输入端口
…使用拖动和插入功能,可以很轻易地进行第一个连接…
...现在用户要进行第二个插入了,使用同样的函数,但是通过另一个连接…
...现在就正确地插入了Clipper
下图:
注意,不能将函数插入到一个可能引起工作流循环运行的位置—甚至不应该标记这种无用的连接
连接一个函数
连接一个函数,而不是将它插入到一个已有的连接中,这并不是函数性的一部分,但是这是产品偶然获取的一种功能,当用户使用这种功能时,这种偶然性就变得非常明显了。
我们非常喜欢这个想法,所以有可能在将来的FME版本中开发这种功能
下图:
在这里,用户希望在现在使用的管道的末端添加一个函数,他将函数拖动到最后一个输出端口…
…放开鼠标,就按要求将这个函数连接到末端了。
例1:
使用Auto-Connect来创建一个目标模式
Interopolis城市有一个数据集,它包含了这个城市的所以公园。
城市希望将数据集分为多个要素类,每个要素类表示一个公园。
启动Workbench,添加包含城市公园的数据集,并将它作为源数据集,它是MapInfoTAB格式。
源数据位于C:
\FMEData\Data\Parks\city_parks.tab
放置一个AttributeFilter函数,并将它连接到源要素类。
使用AttributeFilter.的输出功能。
选择公园数据集作为源数据集,并且使用属性”name”进行输入。
观察AttributeFilter函数现在是怎样包含这个城市的公园列表的。
添加一个MapInfoTAB目标数据集(与源文件夹不同)。
但是不要添加一个要素类,右击AttributeFilter,选择AutoConnect
在AutoConnect设置中,选择从源数据中复制属性,并且选择创建新要素类的选项。
观察,每个输入是怎样在值后对要素类进行特别命名的。
删除目标数据集以及要素类。
右击AttributeFilter,选择‘ConnectVisualizers’.,运行工作空间,确保AttributeFilter的每个输入发送到了一个单一的Visualizer
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FME Desktop培训教程 第六章 数据转换练习一 Desktop 培训 教程 第六 数据 转换 练习
![提示](https://static.bingdoc.com/images/bang_tan.gif)