FME Desktop培训教程 第三章 数据转换操作二.docx
- 文档编号:9910107
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:17
- 大小:690.99KB
FME Desktop培训教程 第三章 数据转换操作二.docx
《FME Desktop培训教程 第三章 数据转换操作二.docx》由会员分享,可在线阅读,更多相关《FME Desktop培训教程 第三章 数据转换操作二.docx(17页珍藏版)》请在冰豆网上搜索。
FMEDesktop培训教程第三章数据转换操作二
连续地使用函数
和电流中的组件非常相似,我们可以将连续的函数结合起来使用,这样一系列函数就可以对数据产生。
虽然可以在FME中获取大量的函数,但是通常用户会发现,单一的函数并不能满足要求。
这种情况下,你就需要将多个函数结合起来使用。
FME的一个重要概念就是,将一连串函数图形化地显示整个工作流。
上图:
这个例子中,DuplicateRemover函数用来删除多余的多边形要素。
在一个共有边界内,Dissolver函数将每个唯一的多边形与它的相邻多边形融合起来。
最后,每一个整合的区域就会从Counter函数中获取一个ID名。
例2:
基本的函数使用
在例1中已经使用了一些基本函数,来为公园测量创建转换工作空间,现在,我们会使用FME函数来测量那个公园的面积,并且计算平均值。
1)启动Workbench.
打开例1中的工作空间,或则会重新创建一个工作看空间。
2)添加AreaCalculator函数
在函数一栏,放置函数AreaCalculator,双击它,将它放入到工作空间。
点击源要素类别的输出箭头,然后拖动鼠标,将它连接到AreaCalculator函数的INPUT端口。
这时候的工作空间如右图所示:
3)添加StatisticsCalculator函数
与放置AreaCalculator,函数的方法相同,找到并且添加一个StatisticsCalculator函数。
将AreaCalculator的OUTPUT端口连接到StatisticsCalculator.的INPUT端口。
将StatisticsCalculator的输出端口连接到目标GML要素类别。
因为不再需要之前的连接,所有你可以点击连线,同时按键盘上的DELETE键,这样就可以删除它了。
这时你的工作空间如下。
注意,之前的属性映射已经丢失了,但是不要担心,下面我们会进行详细讲解。
4)检查函数设置
打开AreaCalculator函数的参数对话框,默认设置会将计算值放如到一个叫做_area.的属性中,但是,目标模式显示的是,要创建一个叫做ParkArea的属性,所以就需要改变这个设置,然后创建正确的属性,亦即将_Area更改为parkarea。
打开StatisticsCalculator函数的对话框,对包含面积的属性进行分析,也就是已经重新命名的ParkArea属性,一定要将“PassThroughFeatures?
”设置成YES。
我们需要检查哪些默认设置是用来计算公园的平均面积的。
这个检查有必要吗?
按照要求更改设置,使它符合目标模式。
最保险的操作就是,不要对不需要的StatisticsCalculator属性进行任何设置。
5)重新映射模式
为了完成设置,我们需要恢复最开始的属性模式映射。
注意,我们在函数设置中使用的是正确的属性名,所以只需要映射ParkName和ParkNameAlt;而ParkArea和AverageParkArea应该已经建立了连接。
按照要求,增加StatisticsCalculator的属性列表,进行属性连接
这时你的工作空间经过简单清理后,应如有右图所示。
不要忘记了保存工作空间,因为之后会用到!
6)开始进行转换
按照提示,你会被要求输入输出数据集。
检查转换结果。
查询一个要素就会在属性列表中找到公园的平均面积。
下图:
UniversalViewer中的输出结果。
FeatureCountDisplay–SerialTransformers
现在,我们来看之前数据转换的例子,你注意到了吗?
在完成转换后,每个连接都标记了转换数据的数目。
下图:
之前的例子FeatureCount显示22个要素通过了这两个函数,然后又被输出。
日志窗口会核查编写的要素数目。
FeatureCount显示有多少个要素通过了每个函数。
如果目标数据与要求的数据不一样,这个功能就能帮助分析工作空间,并且提供调试意见参考。
之前的例子显示所有连接上的要素数目相同,但是,但是当你使用一些函数,就可能会影响到要素的数目,例如,DuplicateRemover或2DPointReplacer函数。
下面的例子会详细说明这个问题。
下图:
FeatureCount显示有22个要素进入到了函数DuplicateRemover,但是最终只有18个有唯一的属性值的要素被输出。
提示:
使用工具条中的打开,关闭按键就能够执行FeatureCountDisplay功能。
右图:
FME工具条中的‘DisplayFeatureCounts’按键
保存模式映射
一些函数并不是用来进行数据转换,但是却可以帮助在工作空间中,通过模式映射来设置输出数据。
SchemaMappingwithTransformers
虽然这个话题看起来有点偏题,但是它能够解决前面例子中出现的问题,所以值得关注,但是并不推荐使用手动属性映射。
在例2中,出现了一个问题,我们必须要尽力解决:
当你添加一个新的函数到发送的数据流中时,就会丢失掉最开始的属性映射。
当属性列表最小化时,手动属性映射就会成为出现弊端,因为你不能看到丢失掉的连接。
上图:
当你扩展属性列表时,就能很轻易地查看是否属性映射进行了连接,而一个完整的列表是不能告诉你这些的。
进行属性映射的方法,并不是手动进行连接,而是对属性进行命名或重命名,使之能能符合目标模式。
这项功能能够保准,属性能够自动地发送到目标模式中,例如,你会注意到,ParkArea和AverageParkArea并不需要进行模式映射,这是因为在函数设置中已经自动地设置了与之符合的属性。
当你需要对源属性进行配对时,使用AttributeRenamer(或AttributeCopier)函数来进行转换,这样的话,添加其它函数就不会影响到对属性的映射了。
下图:
用AttributeCopier来取代手动属性映射。
使用FMEWorkbench来检查数据
除此“RoutetoVisualizer”之外,FMEworkbench能够从单个的函数发送数据到FMEViewer。
ConnectVisualizer
Visualizer是一个Workbench函数,拥有它自己独特的形状和格式,输入其中的数据能够直接发送到FMEUniversalViewer中。
Visualizer不同于RedirecttoVisualizer设置,它适用于转换过程的任何一个阶段,并且不会阻止输出数据到写入模块。
而且,你促使用户更加细心地选择要查看哪些要素。
下图:
这里,在选择数据后,,就直接被发送到Visualizer中。
备注:
甚至,你可以将Visualizer连接到源要素类别,在用FME读取数据后,就可以直接查看它们了。
放置一个Visualizer
我们有许多方法来放置一个Visualizer函数。
FromtheTransformerGallery
Visualizer–和其它函数一样,会出现在函数列中(如下图左),用相同的方法就能将它放置,连接到工作空间。
FromtheMenubar
使用Workbench菜单条(如上图右)的Insert>Visualizer,也能够放置Visualizer。
FromtheToolbar
因为这个函数要经常使用到,所以在Workbench菜单条中可以找到一个特殊的图标(如右图)。
IntheCanvas
可能使用Visualizer的最简单方法就是,右击输出端口,然后选择‘ConnectVisualizer’设置
左图:
和之前的例子相同,用户需要将Scaler中的数据输出到FMEUniversalViewer。
右击“SCALED”,然后选择‘ConnectVisualizer’。
下图:
FME添加Visualizer,来连接Scaler函数。
现在,被剪辑的数据就能直接发送到FMEUniversalViewer中来进行检查。
注意是FME是怎样使用函数和输出端口名来自动命名Visualizer的。
上图:
查看器中的DisplayControlWindow。
观察,要素类别是怎样命名的,这与工作空间中的Visualizer方式一样。
当使用多个Visualizers时,这个方式能帮助用户区分数据。
MrE.Dict,(AttorneyofFMELaw)曾说过…
“按照培训课程的4a-(27)安排,你需要重新打开例2中的工作空间,然后添加Visualizer函数到每一个函数对象上,来练习使用这项功能。
”
快速连接
它是将不同的工作空间中的对象连接在一起的新方法。
什么是快速连接?
它指的用一种方法,将函数和要素类别连接起来,但是不需要在它们之间划线,你要做的就是点击正确的输入和输出端口。
下图:
点击输出端口,将它变为蓝色:
下图:
点击这个端口,变成粉色,光标也会改变形状:
下图:
点击一个输入端口,这个端口就会变成蓝色:
下图:
点击端口,连接就完成了:
什么时候使用快速连接
当你需要对一个很大的工作空间中相隔很远的两个实物进行连接时,快速连接就是最好的选择。
如果不使用快速连接,你就必须将这两个实物放大到能看到的尺寸,这样的话,进行连接就会比较困难。
而使用快速连接,这两个实物就不需要同时显示在屏幕中,你可以点击第一个端口,然后使用窗口打包工具移到下一个窗口。
平行地使用函数
FMEWorkbench允许多重数据流,而每个数据流都会各自流经自己的函数。
FME的另一个重要功能就是,在工作流过程中将数据分拆为单独的数据流,或者是将不同的数据流整合为一个单一的数据流。
下图:
这个例子中,使用GeometryFilter函数将数据分拆为两种类别的数据流—点类和线类。
这样,就能够分别地对它们进行处理。
然后,再将这两种数据流合并为一个。
一定要记住,用这种方法分拆数据流会产生两份数据,其中一个副本会经过每个数据流。
例3:
并行使用基本函数
Example2使用AreaCalculator函数来测量公园面积,现在,按照要求我们要添加公园名称,对面积要素进行标记。
使用LabelPointReplacer函数,FME就能进行这项操作。
1)启动Workbench.
打开例2中的工作空间,或者再重新创建一个。
2)放置一个LabelPointReplacer函数
放置一个LabelPointReplacer函数。
使用快速连接,将源要素类别和LabelPointReplacerINPUT端口进行连接(如下图)
3)创建新的目标要素类别
右击目标要素类别,选择“Duplicate”,就能够在输出数据集中创建一个新的要素类别(层)
使用快速连接,将LabelPointReplacer连接到这个新的要素类别,你可以放心,不需要对这个新的连接进行任何属性映射。
4)检查函数设置
打开LabelPointReplacer函数的设置对话框
选择“name”属性为Label属性名,将LabelHeight设置为500(尺)
LabelHeight既可以是一个属性,也可以是一个常用值—其实可以输入字符/数据作为常用值,如果你不明白这点的话,就可能对LabelHeight感到很困惑。
工作空间如下图所示。
同样的,不要忘记了保存工作空间,因为之后要用到它。
5)开始转换
检查输出,如下图所示。
总结
在例3中,你从同一个输出端口(或源数据集)中,将数据分拆为两个数据流,一组完整的要素就会流经这两个数据流,也就是说,你同时处理了源数据和它的副本。
FeatureCountDisplay–平行的函数
前面例子中,在处理过程的最后,你是否注意到了featurecounts函数?
记住,FeatureCountDisplay显示的是流经了多少个要素。
Above:
前面例子中,FeatureCount显示的是,当我们将数据分拆为两个单独的数据流时,就会额外产生一个数据副本,也就是说,22格要素流经了数据流,而不是11个要素
虽然前面的例子展示了,用户怎样自己分拆数据,但是也可以使用一些函数来分拆数据,并且,并非所以函数都会产生一个要素副本
下图:
22个要素流入DuplicateRemover,22个要素流出这个函数,但是,输出要素被分为两流,一个是4格要素,一个是18个要素
FeatureCount显示了在工作空间中分拆要素会产生的结果,同样的,它也可以显示合并要素流所产生的结果。
下图:
尝试将一组空间要素和相关的数据库记录结合起来。
这个例子中,featurecounts表示,两个数据流的合流并不会产生合并。
1同一个源数据流中的10个要素只是简单地合并为10个要素流,也就是说,产生20个输出要素,10个空间和10个非空间要素。
下图:
使用FeatureMerger函数能更好地将空间和非空间数据结合起来。
在这个例子中,将每个数据流中的10个要素融合,然后输出10个要素。
函数Drag-and-Insert
用户有必要了解怎样手工地连接不同的函数,同样地,也需要了解快捷方式,来更快地使用。
DoctorWorkbench说过…
“如果你看到了一些粉红色的点,不要担心!
这并不表示出现了问题,而是FME的拖拽和插入功能,以便更快地放置函数!
”
下图:
在这里,用户将函数AttributeCopier插入到管道中。
当你开始拖动一个函数时,这项功能就会自动开始运行,并且会在函数的左手边出现一个粉红色的小点。
下图:
现在用户开始拖动函数,然后就出现了粉红色的小点。
当将函数拖动到一个位置,粉红色的点就会覆盖已有的连线,这样就会突出这条连线,这表示,你准备将函数插入这条线上的任何一个位置。
下图:
用户在已有连线上拖动粉红色的点,这条线就会自己变粗。
松开鼠标,函数就被插入了这个位置,并且自动进行连接
下图:
用户将函数插入到了管道中。
插入多个端口的函数
当你打算拖动和插入的函数只有一个单一的输入和输出端口时,FME就会自动地将它们进行连接。
但是,许多函数不止有一个单一的输入或输出端口,所以就不能进行自动连接,这种情况下,按照提示,就需要用户在对话框中进行连接设置。
右图:
在这里,要插入的函数是Clipper。
它有两个输入端口和四个输出端口。
下图:
将Clipper函数拖到一个位置,FME就会打开一个对话框,提示用户选择要连接的输入和输出端口。
下图:
用户点击OK键,就会对选择的端口进行连接。
对要素类别进行拖动和连接
FME2009有一个新的功能,就是拖动,连接要素类别。
通过这个功能,你就可以直接将要素类别附在函数上,而不是将函数附在要素类之上。
这样做并不是在大多数情况下都有特别的好处,但是许多用户已经习惯了使用Drag-and-Insert函数,同样地,他们也自动对要素类别尝试拖动和连接!
现在,你就能使用它了!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FME Desktop培训教程 第三章 数据转换操作二 Desktop 培训 教程 第三 数据 转换 操作