FME 教程(2008 版)
2
目录
FME 起步 ............................................................................................................................................................................................................................................................ 1
安装 FME ........................................................................................................................................................................................................................................................ 1
授权 FME ........................................................................................................................................................................................................................................................ 1
安装 FME Sample Dataset .............................................................................................................................................................................................................................. 1
获取帮助 ......................................................................................................................................................................................................................................................... 1
第一章 VIEWING DATA-FME UNIVERSAL VIEWER .......................................................................................................................................................................................... 2
本章内容 ......................................................................................................................................................................................................................................................... 2
目的 ................................................................................................................................................................................................................................................................ 2
查看数据 ......................................................................................................................................................................................................................................................... 2
浏览图形和属性数据 ............................................................................................................................................................................................................................................................. 3
获取坐标系信息 .................................................................................................................................................................................................................................................................... 4
过滤要素 ............................................................................................................................................................................................................................................................................... 4
不同格式的数据叠加 ..................................................................................................................................................................................................................................... 5
从 Viewer 中导出数据 .................................................................................................................................................................................................................................... 6
第二章 FME UNIVERSAL TRANSLATOR .............................................................................................................................................................................................................. 9
本章内容 ......................................................................................................................................................................................................................................................... 9
目的 ................................................................................................................................................................................................................................................................ 9
自动转换 ......................................................................................................................................................................................................................................................... 9
简单要素处理 ............................................................................................................................................................................................................................................... 11
投影数据 ....................................................................................................................................................................................................................................................... 12
第三章 自定义数据转换—FMEWORKBENCH ............................................................................................................................................................................................... 15
本章内容 ....................................................................................................................................................................................................................................................... 15
目标 .............................................................................................................................................................................................................................................................. 15
FME 教程(2008 版)
3
创建工作区 ................................................................................................................................................................................................................................................... 15
转换工具介绍 ............................................................................................................................................................................................................................................... 18
创建自定义格式 ........................................................................................................................................................................................................................................... 29
保存一个工作区作为自定义类型 ....................................................................................................................................................................................................................................... 30
将自定义格式和另一个不同扩展名的文件联合起来 ....................................................................................................................................................................................................... 31
浏览自定义格式 .................................................................................................................................................................................................................................................................. 35
自定义转换工具 ........................................................................................................................................................................................................................................... 36
创建自定义转换工具 ........................................................................................................................................................................................................................................................... 36
投递自定义转换工具 ........................................................................................................................................................................................................................................................... 40
附件 A—了解WORKBENCH ............................................................................................................................................................................................................................. 42
Workbench 界面 ............................................................................................................................................................................................................................................ 42
菜单条和工具条 ........................................................................................................................................................................................................................................... 42
增强工作区工具条 .............................................................................................................................................................................................................................................................. 42
设计布局工具条 .................................................................................................................................................................................................................................................................. 42
状态条 ................................................................................................................................................................................................................................................................................. 43
Workbench 组成 ............................................................................................................................................................................................................................................ 43
颜色定义 ............................................................................................................................................................................................................................................................................. 43
快速更改 ....................................................................................................................................................................................................................................................... 44
重命名和创建新属性 ........................................................................................................................................................................................................................................................... 44
删除转换工具的连接 ........................................................................................................................................................................................................................................................... 45
插入转换工具的连接 ........................................................................................................................................................................................................................................................... 45
在连接线上插入结点 ........................................................................................................................................................................................................................................................... 46
FME 教程(2008 版)
1
FME 起步
安装 FME
FME Suite 安装包只有一个单一的应用程序。所有FME Suite 许可级别都使
用同一个安装包。
1 FME Suite 的安装要求有管理员权限,这个可以从系统管理员那里得到帮
助。
2 双击setup.exe。(也可能是后缀名为.exe 的其它可执行程序)
3 回答安装向导所提出的问题。
授权 FME
为了获得FME Suite 许可,运行FME Licensing Wizard(依次点击
“Start>Program Files>FME Suite 打开),并回答向导提出的问题。
注意:该教程的设计用于 FME2008,这里所描述的一些功能在FME 以前
的版本中可能没有。
安装 FME Sample Dataset
1 在www.safe.com/support/onlinelearning/fmesampledata.php 上下载FME
Sample Dataset,并把它安装在C:\FMEData。
注意:可以通过 www.safe.com/tutorial 访问此教程。
获取帮助
FME 产品包括广泛的、上下文相关的帮助。任何时候,如果你需要某个工
具或者格式的帮助,选择该项并按F1 启动帮助系统。
假如你有许可或者安装方面的问题,请发邮件至[email protected]。国内
发至[email protected]
FME 教程(2008 版)
2
第一章Viewing Data-FME Universal Viewer
本章内容
查看数据
不同格式的数据叠加
从 Viewer 中导出数据
目的
有多种格式的数据,希望熟悉这些数据。
查看数据
本练习中,使用Viewer 来浏览各文件的图形、属性和坐标系信息。你也将
学习如何在Viewer 中过滤要素。
1 启动Universal Viewer
2 单击“File>Open Dataset(文件—打开数据集)”。这样,将打开Select
Dataset to View(选择要查看的数据集)对话框。
3 现在,你必须指定你要读取的文件的格式。这个通过Format Gallery(格
式列表)来完成。通过单击格式浏览按钮打开Format 框。
4 向下滚动格式列表直到你看到MapInfo MIF/MID
提示:你可以通过输入格式的名称的起始几个字母快速过滤Format Gallery
(格式列表)中显示的格式。这种情况下,你可以输入MIF。
5 点击OK 接受这一格式。随即返回Select data(选择数据)对话框。
6 现在你必须选择要查看的MIF 数据。通过点击Dataset Browse(数据集
FME 教程(2008 版)
3
浏览)按钮选择,打开文件浏览窗口。转至文件flood_plains.mif(位于
\tutorial\sampledata)。
7 点击OK 在视图中显示该MIF 文件。
浏览图形和属性数据
现在 MIF 文件显示在视图中。图形数据是可见的,但是属性数据并没有显
示出来。
1 如果还没有选择信息工具,点击它使视图处于Inform 模式。现在,
点击任何要素,属性显示在Information 窗口中。
提示:比起一次只选择一个要素,你可以通过对多个要素拉框创建它们的
一个选择集。通过点击前进按钮和后退按钮在选择集中的多个要素
中进行循环。
FME 教程(2008 版)
4
获取坐标系信息
注意坐标系的简略信息显示在 Information 对话框中。
1 为了查看该坐标系的参数描述,点击位于Coord Sys: text box(文本框)
旁边的浏览按钮。打开Coord Sys Info 对话框,可以看到到坐标系的详
细信息。
2 点击关闭按钮关闭Coord Sys Info 对话框。
过滤要素
Universal Viewer 也可以基于属性值进行显示过滤。
1 点击工具条上的Filter Feature 按钮,打开Filter Features 对话框。
2 选中Filtered Status 部分的Enabled 复选框。
3 在Test Expression 部分,在Left Side 文本框中输入&community,Operator
设为=,设定Right Side 文本框为1026。
注意:Left Side 文本框中的值包含&,这是Filter 指定community 属性的值
而非字符串“community”的方式。
4 点击OK 接受该值并在视图中过滤数据。注意“community”的值不等于
“1026”的所有要素不再显示。而community=1026 的要素依然显示在屏
幕上。
FME 教程(2008 版)
5
5 点击Filter Feature 按钮,打开Filter Features 对话框。取消对Enabled check
的选择以使要素再次全部显示。
不同格式的数据叠加
现在,你已经使用Universal Viewer 读取一个单一的MIF 数据集。Universal
Viewer 最有力的特点之一是它可以在一个窗口中叠加不同格式的多个数
据集。下面的练习中,我们将多个的Intergraph MGE 文件添加到该MIF 数
据中。
1 右键单击View0 结点(在Viewspace 节点下),选择Add Dataset。
2 打开Select Dataset to Add 对话框。选择Format 文本框输入mge。这样起
到一个过滤的作用,产生一个下拉框,该框中Intergraph MGE 是一种可选
格式。选择Intergraph MGE 格式。
提示:当选择属于某个指定厂家的格式时过滤列表是非常有用的。例如,
输入ESRI,将创建一个显示所有ESRI 格式的过滤列表。
3 现在选择数据集。单击浏览按钮, 转至
C:\FMEData\Data\Properties\MGELandParcels。MGE 文件的典型的扩展名
是.dgn。可是,此时已自动指定了一个不同的文件扩展名。把“Files of Types”
设置为“All Files”以关闭文件过滤功能,然后选择四个.par 文件。
FME 教程(2008 版)
6
单击Open 按钮选择这些文件。同时返回到Select Data to Add 对话框。
4 下一步,你必须指定包括MGE 属性的数据库的位置和类型。点击Setting
按钮,打开Intergraph MGE Input Setting 对话框,指定数据库类型为Access
MDB。单击Access MDB File 文本框中的浏览按钮,找到在MGELandParcels
目录下的文件parcel_attrs.mdb。
单击 OK 接受缺省设置。再次返回到Select Data to Add 对话框。再次点击
OK 将数据加载到视图中。
5 注意,MGE 数据位于先前加载的MIF 数据的上面。这样的叠加正是我
们想要的。然而,在某些情况下,你或许想要改变你的数据集的显示顺序,
为了使得MIF 数据显示在上面,将与MGE 数据集对应的地球仪图标拖
到与MIF 对应的地球仪图标的上面,这样给予MIF 数据集优先显示权,
而MGE 数据集因为显示在MIF 数据集下面而变得模糊。
当然,我们的目的是希望parcels 数据显示在最上面。一旦你完成上面的试
验,改变显示顺序,使得MGE 数据再次显示在顶层。这时,来自于两个
数据集的属性都可以被查看。
从 Viewer 中导出数据
现在在视图中有两个数据集,下一步的任务中将它们写入一个单独的GML
文件中。然而,对于导出特殊,仅要求一小部分数据。
FME 教程(2008 版)
7
1 使用Zoom In 工具,放大到包含MGE 和MIF 文件中的要素的一个小
区域。在该区域被重画后,选择File>Save Data As(文件>数据另存为)。
2 此时,Select Destination Format and Dataset 对话框打开。选择Geography
Markup Language ( GML ) 作为目标格式, 转到
C:\FMEData\Output\TutorialOutput 目录下。将输出文件命名为
flood_parcels.gml。点击Coordinate System 文本框输入TX83-CF,以确定
输出的GML 文件的坐标系。
3 点击OK 写出GML 文件。这一步可能要花费几分钟时间。
4 现在将该GML 数据集加载到Viewer 中。只有数据导出时窗口中可见的
那一小块区域被进行了转换。右键单击View0,选择Add Dataset。将Source
框中的格式设置为Geography Markup Language(GML),浏览找到你刚才
所创建的flood_parcels.gml 文件。
5 为了排除MIF 和MGE 文件引起的混乱,更好的浏览GML 数据,最简单
FME 教程(2008 版)
8
的方法就是通过取消对它们的地球仪图标前面的选择框的选择以关
闭它们的显示。使用缩小工具,扩大显示范围以保证先前数据导出时指
定的范围的显示。因为你导出的只是整个数据集的一小部分,所以初始的
一些要素现在丢失了:
注意:这种类型的转换是Universal Viewer 最有力的特点之一。它允许你导
出数据的一小部分,而这个使用Workbench 是复杂的。可以帮助你缩小文
件大小,只关注数据集的一个特定的空间现象。
6 选择File>Exit(文件>退出)关闭Viewer。
你已经完成了 Viewing Data- FME Universal Viewer 章。下一章,我们将使
用FME Universal Translator 来进行快速转换。
FME 教程(2008 版)
9
第二章FME Universal Translator
本章内容
自动转换
简单要素处理
投影数据
目的
前面的练习中,你使用 FME Universal Viewer 读取数据。你也学习了如何
使用视图简单转换数据的一小部分。本章,你将使用Universal Translator。
它在不需要浏览数据的情况下是有用的。你仅仅需要从一种格式转达化为
另一种格式,可能是在处理中转换和投影数据。
FME Universal Translator 在数据的转换中不需要改变其结构和形状的情况
下是非常有用的。尽管Universal Translator 可以用来对数据集做较小的调
整,但是对数据的的推荐的工具是FME Workbench,这个将在第三章中探
讨。
自动转换
将数据从一种格式转化为另一种格式的最快速的方法就是使用FME
Universal Translator。操作界面简单,可是,使用者对于转换不能有太多控
制。Universal Translator 主要用于要求相对较少转换的简单转换。
1 启动FME Universal Translator
2 单击Translate 按钮打开Set Translation Parameters 对话框。
3 在Source 部分,指定Source 格式为Geography Markup Language(GML)。
在Dataset 文本框中, 单击浏览按钮打开文件浏览。浏览至
FME 教程(2008 版)
10
C:\FMEData\Data\Zones,选择zoning.gml。
4 在Destination 部分,将输出格式指定为ESRI Shape,点击DataSet 文本
框中的浏览按钮, 在文件浏览窗口中, 浏览至
C:\FMEData\Output\TutorialOutput。点击Open,把它选择为Destination
Directory。
注意:一些格式要求你指定输出文件名称,而另一些(包括shape)要求
FME 教程(2008 版)
11
指定一个输出文件夹。
5 点击OK 运行转化。
6 为了证实转化给出了你所期望的结果,在Windows Explorer 中打开
TutorialOutput 文件夹。
7 右键单击zoning_area.shp,选择View with FME Viewer。
这样打开一个 Viewer。点击OK 接受缺省参数,shape 文件被加载。保持
shape 文件在Viewer 中打开以备下一个练习中使用。
注意:现在目标shape 文件的名称是zoning_area。这是因为shape 格式(像
一些其它格式)要求每一种图形类型有一个单独的文件。假如你要导出区
域和点,将创建shape 文件的两个数据集,并且每个都在其名称后面加入
了图形类型。
简单要素处理
Universal Translator 包含一些基本要素处理函数。下一个例子中,再次导出
这个shape 文件,但是数据要被旋转25°。
1 在Universal Translator 中,点击Translate 按钮,打开Parameters 对话
框。假如没有关闭上节使用的Universal Translator,则上节练习所使用的所
有设置都将保留下来,否则,按照上面的Automated Translations 练习重复
一次。
2 参数对话框的底部,Feature Processing Functions 部分,点击Browse 按
钮。打开Function Builder 对话框,点击Rotate 标签页,它允许我们旋转导
出的shape 文件。设置旋转角度为25°。
FME 教程(2008 版)
12
3 点击OK 接受输入的值,返回Parameters 对话框。
4 点击OK 运行转化。上一次练习导出的数据集将被这一次产生的新旋转
的数据集覆盖。
5 返回到Viewer。如果你已经关闭Viewer,使用Windows Explorer 再次打
开Shape 文件。如果你没有关闭它,前一次练习的数据集已经加载。因为
你已经改变了对应的数据,简单的重新加载允许你查看新的数据。点击
Viewer 中的Refresh View 按钮。
注意数据集已经顺时针旋转了 25°。在Function Builder 对话框中还有许
多其它有用的函数。但是进行更复杂的转换,Workbench 能更好地为您服
务。
投影数据
本练习中,你将进行zoning.gml 文件的投影,同时不改变它的结构或者形
状。这是Universal Translations 的最普通的功能之一。
1 在Universal Translator 中,单击Translate 按钮。打开Parameters 对话
框。如果上次没有关闭Universal Translator,前一练习中的所有设置都将保
留。如果已经关闭,则重复练习Automated Translations 的步骤。
2 点击Feature Processing Function 部分的Browse 按钮,之后打开Function
Builder 对话框,点击rotation 标签页,将旋转角度改回为0。点击OK 关
闭Function Builder 对话框,返回Parameters 对话框。
3 点击Destination 部分的Coordinate System Browse 按钮,打开Coordinate
System Gallery。
FME 教程(2008 版)
13
4 在Contains 文本框中输入LL-83。这样将过滤坐标系,仅显示含有LL-83
字符串的那些坐标系。这里,仅出现一个坐标系。
5 选择LL-83 坐标系点击OK。Coordinate System Gallery 关闭,返回到
Parameters 对话框。
6 Parameters 对话框现在应该将源数据坐标系显示为Read from Source,而
将目标坐标系显示为LL-83。
注意:此例中,源数据的Coordinate System 显示为”Read from Source”。意
味着格式中带有坐标系信息。换句话说,坐标系被当作格式的一部分存储。
对于许多格式并不是这样的,包括许多CAD 格式。当读取一个不包含坐
FME 教程(2008 版)
14
标系信息的格式时,Coordinate System 文本框显示“Unknown”。如果使用
者知道源数据的坐标系,那么可以通过打开Source Coordinate System
Gallery,然后手动指定坐标系。如果使用者不知道不带有坐标系信息的格
式的坐标系,那么源数据的投影将不可靠。
7 点击OK 运行转换。
8 返回到Viewer。如果你已经关闭,再次打开它,并且按练习Automated
Translations 中的第六步重新进行设置。如果你没有关闭它,前一次练习的
数据集仍然已经加载。点击Refresh 按钮刷新。
9 点击Info 按钮选择一个要素。你将会看到Coord Sys 文本框(在
Information Pane 中)中显示“LL-83”。
现在完成了 The Universal Translator 章。你已经知道了如何进行自动转化,
基本转化和简单投影。
下一章,探索 Workbench,它才是FME 的最有力的组成部分。
FME 教程(2008 版)
15
第三章自定义数据转换—FME Workbench
本章内容
创建工作区
使用 Transformers
解决工作区中的问题
创建自定义格式和转换
目标
目前为止我们所介绍的工具提供了一种快速简单的执行转换的方式。但是
如果要改变数据的结构或者形状时,我们该怎么做呢?这时就要使用
Workbench。
本练习中,使用Workbench 建立一个工作区,操作数据以形成线。把线关
联到数据库以得到更多属性,然后对结果进行质量评价。在这个过程中,
将要创建和使用一个Custom Format 和Custom Transformers。
我们的案例是给你是由 GPS 采集来的数据。数据是一系列的点,将这些点
连起来,建立道路。当你在一个文本阅读器中查看这些数据是,它的格式
例如:
你也会得到描述 CSV 文件中每个域所代表的意思的元数据。Road_Id 是每
一条不同道路的唯一ID 号,使用它来关联来自Access 数据库的属性。
Vertex_num 是顺序id,告诉你要连接成道路的这些点的连接顺序,幸运的
是,这些点是有序的。最后,点的X 和Y 坐标分别存储在X 和Y 域中。
创建工作区
开始之前,你应该花一些的时间熟悉一下Workbench 的界面。附件A 对本
练习中要使用的所有工具进行了详细的描述。
1 先打开FME Workbench。在FME Workbench 对话框中选择“Open the
Workspace Dialog”(缺省选项)。(你可以在任何时间通过File>New 访问
FME Workbench 对话框)。
FME 教程(2008 版)
16
2 点击OK。将打开New Workspace 对话框。这里,我们需要选择Source
Format,Source Dataset 和Destination Format。将源数据的格式选择为
Comma Separated Value。
3 点击源数据集后面的Browse 按钮。打开文件浏览器。因为源数据的格
式是CSV,所以文件浏览器仅仅寻找扩展名为.csv 的文件。可是,此例中,
CSV 文件的扩展名为.gps。我们可以通过将Files of Type 菜单改为“All
Files ” 来移除原来的CSV 过滤器。在这里, 我们可以浏览到
C:\FMEData\Data\GPS\GPSRoads,点击major_roads.gps。
4 单击Open 按钮接受选择并关闭对话框。
5 现在,必须进行设置。点击New Workspace 对话框的Source Settings 按
钮,打开Comma Separted Value(CSV) Input Setting 对话框。选中Field
Names Before Header box。这样将使用CSV 的第一行作为Workbench 中要
素属性的名称。
FME 教程(2008 版)
17
6 点击OK 接受选择,返回到New Workspace 对话框。
7 选择MapInfo TAB(MIFTAB)作为目标格式。
8 点击OK,关闭New Workspace 对话框,,产生一个Workspace 界面。点
击来扩展源类型和目标类型。
FME 教程(2008 版)
18
转换工具介绍
你已经创建一个基本的工作区,可以开始操作数据了。这一部分,你将使
用CSV点创建线要素并且给线要素从一个对应的MS Access 数据库中添加
相应的道路属性。这时如果你快速浏览一下附件A,对Workbench 界面有
一个大体的了解将是有益的。
转换工具是用于操作数据的图形和属性的工具。他们被有序连接起来,数
据从源数据流向目标数据,每一步都要应用转换工具。一系列的转换工具
连接起来就如同一条管道。
1 就是你在本章中目标部分了解到的,CSV 格式是一个文本文件。第一步
是从文本中的值创建点图形,本质上是用CSV 文本文件中包含的X,Y 坐
标绘图。通过添加一个2DpointReplacer Transformer 完成。在Navigator 面
板的Gallery 标签页中,在Search 文本框中输入2DPoint 来过滤转换工具。
在过滤查找结果中,双击2DpointReplacer。这样它就被添加到工作区中。
2 FME 2008 允许你把Transformer 放在两个先前已连接的Feature Types 或
者Transformers 之间。这个节省时间的要素让你快速放置一个Transformer
而不必删除已存在的要素连接。首先点击Transformer ( 这里, 指
2DPointReplacer),按下鼠标左键。注意出现在左上角的粉红色点:
3 接着将Transformer 拖至已经存在的Feature Types 的要素连接上,一旦
建立一个连接,要素连接线将变成粉红色:
4 这时,释放鼠标左键,2DPointReplacer 已经被成功地放置在Source 和
Destination Feature Types 之间。
FME 教程(2008 版)
19
注意:通过点击工具条上的按钮,实现在任意时刻快速插入功能的打开
和关闭。
5 注意2DPointReplacer 上的属性按钮带有一个感叹号并且是红色的。这暗
示着一个必要的参数被忽略了。点击属性按钮打开属性对话框。你会注意
到2DPointReplacer 需要知道哪些属性包含X 和Y 值。从列表中选择,将
X Vaule 的值设置为x,Y Vaule 的值设置为y(这些小写字母是CSV 文件
X 和Y 列的精确名称—查看文本文件在本章第一节)。
6 点击OK 接受变更,注意此时属性按钮已不再是红色。
7 为了证实2DPointReplacer 的结果,你可以插入一个Visualizer 转换工具,
Visualizer 允许你在Universal Viewer 中查看数据。你可以在管线的任意一
点上连接一个Visualizer。点击工具条上的Visualizer 按钮,这样将在
工作区上添加一个VisualizerTransformer。将2DPointReplacer 的Point 作为
输出连接到Visualizer,并且删除到MapInfo TAB 目标要素类型的连接(这
样以保证不会创建输出文件)。
FME 教程(2008 版)
20
8 点击Run 按钮运行Workspace。将会提示你指定目标数据的输出路
径。点击Browse 按钮,浏览至C:\FMEData\Output\TutorialOutput。(因为
没有什么连接到Destination Feature Types,因此将没有输出。然而,这里
指定的文件夹将被设置为Workspace 的Destination Directory。这个位置可
以通过Navigation Pane 的结点时常进行改变)。点击OK,当Viewer 打开
时,它将包括点数据。
9 点击File>Exit 关闭Viewer。你也可以从你的Workbench 工作区中删除
Visualizer。
10 下一步,你需要从点创建线。在Transformer Gallery 中搜索pointconnect,
并在工作区上添加一个PointConnector。尽管2DPointReplacer 没有输出要
素连接,你仍然可以使用FME2008 的快速插入方法将PointConnector 连接
到它上面。通过拽拉PointConnector 到2DPointReplacer 的Point 输出。一
旦建立连接,将出现在一个大的粉红色点:
FME 教程(2008 版)
21
11 释放PointConnector 以完成连接。
12 打开PointConnector 的属性(注意它是黄色的)。指定road_id 作为
Connection Break Attribute。这样每当road_id 改变一次,将引出一条新线。
理解它的一个好的方式是想象用一支铅笔连接一个点集;通过指定road_id
作为Connection Break Attribute,“pencil”(PointConnector)将“lift”(Break)
仅当完成一个单一的连续的道路之后(如同通过道路的名称定义)。
注意:Properties 框的Color Definitions 的详细讨论见附录A.
13 点击OK 接受更改。
14 建立从PointConnector 的Line 到Visualizer 的连接,再次运行工作区。
这一次,输出显示线。
FME 教程(2008 版)
22
15 关闭Viewer,删除Workbench 中的Visualizer。
16 插入一个Joiner Transformer,建立从PointConnector 的Line 到Joiner
的连接。Joiner 用于从Access 数据库读取属性,并把它们添加到道路线上。
这时你也许想要清理你的工作区,你可以通过在工作区中点击拖动以重新
安排要素类型和转换工具。你也可以通过在一个连接上右键点击选择
“Insert Vertex on Link”插入结点。
17 点击Joiner 上的属性按钮。打开Joiner Wizard。
a 点击Next 略过Welcome 屏幕。
b 当提示你输入数据库类型时,选择Access MDB 文件(*.mdb)。当提示
选择文件位置时,浏览至C:\FMEData\Data\GPS,选择。不需要输入用户
名称和密码。
FME 教程(2008 版)
23
c 点击Next。提示指定数据库的主键。选择road_id,点击按钮,把它
移动到Keys 框中。
d 点击Next。提示进行主键匹配,从数据库框中选择ROAD_ID 从Feature
Attrs 框中选择road_id。然后点击按钮,把它们一起移动到Key Pairs
框中。
e 点击Next 按钮接受设置。然后,你必须指定你要使用数据库的哪些属性。
点击按钮将所有的属性移动到Added Attributes 框中。
FME 教程(2008 版)
24
f 继续点击Next 按钮接受下来几步的缺省设置,一直到最后一步,点击
Finish 关闭向导返回Workbench。
18 点击Joiner 的Joined output 前面的标记,这样新添加的属性名称就
会显示出来。
19 这时你可以通过选择File>Save 存储你的工作区。将工作区命名为
CSVRoads.fmw 把它存在My Documents\My FME Workspaces 下。
20 添加一个AttributeFilter,并建立从Joiner 的Joiner 到它的连接。
AttributeFilter 将允许我们根据某个属性值对道路进行分类。在运行之前,
也许你需要再次重新调整一下你的工作区。
FME 教程(2008 版)
25
21 点击AttributeFilter 上的属性按钮,选择ROAD_CATEGORY 作为
“Attribute to Filter by”。对于Possible Attribute Values,在第一行中输入
RURAL,在第二行中输入MAJOR,在第三行中输入MINOR。
提示:你对你对 Road_Category 的所有可能的属性值并不确定,你可以使
用右下方的Import 按钮,这将提示你找到源数据集(这里是Microsoft
Access Database)以读取属性结构。并找到包含数据的文件(这里是
road_attrs.mdb)。Workbench 将读取文件,搜索指定属性的所有不同属性值,
并自动计算Possible Attribute Values。
22 点击OK。你会注意到AttributeFilter 有Rural,Major 和Minor 输出。
建立从AttributeFilter 的MAJOR 到Visualizer 的连接,运行工作区。
FME 教程(2008 版)
26
这时就只显示 road_category 是“MAJOR”的道路。再次关闭Viewer,删
除Workbench 中的Visualizer。
23 通过点击左边的符号,扩展Destination Feature Type,你会注意到
Destination Feature Type 并不包含我们已经从数据库添加的任何属性的定
义。有几种方法进行改正,最快捷的方法是使用roads_attrs.mdb 作为属性
结构的模板导入一个新的Destination Feature Type。首先要删除现存的
Destination Feature Type。
注意:当提问你是否移除数据集,一定要选择 No。
24 为了导入一个新的Destination Feature Type , 选择Destination
Data>Import Feature Type Definitions。打一个源对话框,指定格式为
Microsoft Access Database ( Attribute Only ) , 浏览至
C:\FMEData\Data\GPS\road_attrs,点击OK。
注意:这时,我们读取MDB 文件的结构,并使用这些属性来创建新的
Destination Feature Type。尽管现在这些Destination Feature Types 和MDB
文件有相同的属性,但是当创建工作区时它们仍将按你所指定的转化为
MapInfo Tab 文件。
25 当提示“Select a Feature Type to Load”,选择唯一的选项 major_roads。
点击OK,一个命名为major_roads 的Feature Type 将显示,它的属性是正
确的。
26 本练习涉及对于每一道路类型创建一个单独的MapInfo TAB 数据集。
因此,你还需要两个Destination Feature Types 来放Rural 和Minor 道路。
选择新点major_roads Destination Feature Type,右键点击,在菜单中选择
Copy。单击canvas 上空白处的某个地方,再次右键点击,选择粘贴。再重
FME 教程(2008 版)
27
复一次创建第三个Destination Dataset。(在右键点击产生的菜单中,除了
复制和粘贴,你也可以替换使用“Duplicate”)。
27 下一步是重命名Destination Feature Types , 并把它们连接到
AttributeFilter。在Destination Feature Type 的顶部右键单击选择Rename。
28 把上面的Destination Feature Type 命名为Rural,中间的命名为Major,
最下面的命名为Minor。将AttributeFilter 对应的输出端和这些Feature Types
连接起来。
25 为了保证每个写出的文件都正确,需进行最终的检测。你可以在
Universal Viewer 中打开所有的Destination Feature Types。这次,使用
Destination Redirect 结点将输出连至Visualizer(这和插入一个Visualizer
相类似—然而,它仅仅是最后的输出端。如果你有多于一个的Destination
Feature Type,它是最简单的可视化你的输出的方式。)点击Navigation 面
板上的Workspace Setting 标签页,双击Destination Redirect 结点。这将打
开一个带有选择重新指定输出的位置的下拉列表的对话框,选择Redirect
to Visualizer 选项,点击OK 接受选择。(这一设置也可以通过点击
Destination Data>Redirect to Visualizer 实现。)
30 点击Run 按钮,打开Viewer。
FME 教程(2008 版)
28
31 一旦你对结果满意,关闭Viewer,通过双击结点选择No Redirect 关闭
Destination Redirect。。
32 最终,为了创建输出,点击Run 按钮。因为没有Visualizer 选项打开,
数据将进行转换,输入MapInfo TAB 文件将被创建。(目标路径列在
Navigation Pane 下的Published Parameters—这里,它是TutorialOutput 文件
夹,如同前面的说明。)如果你查看一下Workbench 的日志文件窗口,就
能看到每一种类型所创建的要素的个数的解释。
注意:这个区域内的文本包含了转换过程的一些重要信息。如果你在输出
数据中得到了你不想看到的结果,查看日志内容。日志显示的统计和过程
信息有:
Reader being used
Writer being used
日志信息
警告信息
转换时间
内存使用
消息的显示一直到工作台的任务完成。从日志中,你可以查找文本,直接
复制窗口中的内容到另一个应用程序或者将内容保存为一个文本文件。
33 现在,在Universal Viewer 中打开Tab 文件证实结果。打开Universal
Viewer,选择File>Open Dataset,打开Select Dataset 对话框,将格式设置
为MapInfo TAB , 然后点击Browse 按钮, 浏览至
C:\FMEData\Output\TutorialOutput。刚才所创建的三个Tab 文件可以看到,
按住Ctrl 选择它们。
FME 教程(2008 版)
29
34 点击Open 接受所选择的文件,然后再次点击OK 打开三个Tab 文件。
35 这样将在Viewer 中加载三个TAB 文件。
注意:这三个TAB 文件都显示为同一种颜色,为了改变每一层的颜色,点
击层名旁边的色板,打开Color 对话框,在这里,你可以选择想要的颜色,
重复此操作到所有层。
33 关闭Viewer 如果你对结果满意。
34 保存你所创建的Workspace,因为我们要在下一节的练习中使用它。
创建自定义格式
本练习中,创建一个Custom Format(自定义格式),改变相关的文件类型,
并在Universal Viewer 中进行查看。
本例中,你有许多.gps 文件(以及相关的MDB 文件)。你希望可以将这些
文件当作完整的道路使用而不是CSV 文件,但是你并不想给每一个文件都
FME 教程(2008 版)
30
去创建一个独立的工作区。
保存一个工作区作为自定义类型
1 如果工作区还没有激活,打开Workbench,从菜单上选择File>Open,打
开CSVRoads.fmw。浏览到My FME Workspaces,选择文件,单击Open。
2 在你创建自定义格式之前,需要对工作区做一些改变。在上一个练习中,
创建了三个独立的输出写入了三个文件。在Custom Formats 中,这样的过
程不起作用。一个Custom Format 要求一个单独的输出,所以解决的方法
是将这些所有道路类型发送到同一个输出AllRoads。在工作区中,右键点
击“Rural”Destination Feature Type 选择Delete,重复上述步骤删除“Major”
Destination Feature Type。
3 这时,仅有一个Destination Feature Type 保留下来。
FME 教程(2008 版)
31
建立从 AttributeFilter 的Rural,Major 和Minor 到保留下来的Destinatioon
Feature Type 的连接。然后,通过右键点击选择Rename,将Destination
Feature Type 命名为AllRoads。
5 现在,你已经创建了Custom Format。选择File>Export as Custom Format。
打开一个对话框,提示输入Custom Format 的名字和描述。在名字中输入
AllRoads,在描述中输入AllRoads CVS to MapInfo。
6 点击OK,打开包含Custom Format 工作区的另一个Workbench 实例。
它也存储了Custome Format 文件(AllRoads.fds)到Formats 文件夹(缺省
位于My Documents\FME)。
注意:在一个屏幕上同时显示两个 Workbenches 似乎有些奇怪,其实原因
很简单。Workbench 必须将Destination Feature Type 从MapInfo 改为另一种
可以被当作Custom Format 使用的另一种不同的格式。
7 因为不再要求从源CSV 到MapInfo 的工作区,因此在File>Exit 点击之
后寻问是否保存改变时选择No。
将自定义格式和另一个不同扩展名的文件联合起来
因为开始使用的源读取器是 CSV,所以Custom Format 就会过滤掉所有文
件扩展名不为.csv 的文件。下一步改变Custom Format,使其仅选择.gps 文
件。
1 在Navigator 面板上,扩展“Major_Roads[CSV]”结点以显示Parameters。
注意Source CSV File(s)结点为紫色;这暗示着参数已经发布(FME 缺
省发布参数)。
FME 教程(2008 版)
32
注意:关于发布参数的信息在Published Parameters 结点(位于Naviagotr
面板下)下也可以获取,注意它只包括一个单独的输入。
2 右键点击“Source CSV File(s)”结点选择Edit Parameter。打开Edit
Published parameter 对话框。
就像你看到的,这个对话框允许你选择一个或多个新的 Source CSV 文件。
然而,这个和我们的目的不相符。因为我们创建一个自定义格式,我们希
望输入数据有最大的灵活性;一个好的自定义格式可以被多个系统的多个
用户共享。这种情况下,我们需要把我们的自定义格式和任意的GPS 输入
—不仅仅是我们本地机上的存在的数据集的选择连接起来。为了建立这个
连接,我们必须首先Unpublish our parameters。
3 选择Cancel,关闭Edit Published parameter 对话框,然后在Source CSV
File(s)结点上右键点击,选择Unpublish Parameter。注意结点变为绿色,
同时,Published Parameters 结点下的输入消失了。
FME 教程(2008 版)
33
4 再次右键点击该结点,选择Publish Parameter,这样Edit Published
Parameter 结点再次打开。
5 注意出现了几个新域;因为我们现在处理Unpublished Parameters,我们
有相当大的自由,例如编辑自定义格式的File Filter。
6 改变Name 和Prompt 以匹配我们要提示的数据。将Name 设置为
Sourcedataset_GPS,Prompt 设置为GPS Files(s):。现在,因为Custome
format 使用GPS 文件,而非CSV 文件,因此你必需改变File filter。点击
File filter 的浏览按钮,打开File Filter 对话框。
FME 教程(2008 版)
34
7 移除所有存在的过滤器,通过在Description 框中输入GPS_Files(*.gps),
在Filter 框中输入*.gps 加入一个GPS 过滤器
8 点击OK 接受这些更改,关闭File Filter 对话框,再点击OK 关闭Edit
Published Parameters 对话框。
这时,你会注意到Source CSV File(s)再次变为紫色,而Published
Parameters 结点包含“Source GPS File(s)”输入。
9 保存工作区
FME 教程(2008 版)
35
浏览自定义格式
既然已经创建了一个 Custom Format,那么如何使用它呢?一个Custom
Format 的使用和其它任何一种格式是一样的。它可以作为一个数据自动转
换或者工作区的源。它也可以像下面看到的那样在Viewer 中直接打开。
1 打开Universal Viewer。
2 点击File>Open Dataset
3 在Source Format 文本框中输入road,过滤器将自动找到AllRoads 格式。
4 点击浏览按钮,浏览至C:\FMEData\Data\GPS\GPSRoads。注意缺省情况
下,只有.gps 文件可见。你编辑自定义格式的参数所做的工作可以起作用
了,文件选择过程变得简单快速。如果你计划把你的格式和那些不太清楚
它的独特的输入要求的人共享,这个尤其有价值。
5 选择major_roads.gps,点击OK。
6 点击Select Dataset 对话框中的OK 按钮,加载.gps 数据。注意CSV 文件
包括图形,也包括与之相联的MS Access 数据库中的属性。
FME 教程(2008 版)
36
自定义转换工具
本练习中,你将创建一个 Custom Transformer,并学习如何把它分配给其
它的Workbench 用户。
这个实例中,另一个办公室的一起工作的合作者听说你是一个 Workbench
高手。他联系你希望学习一样如何能够创建一个CSV 文件工作流程。你肯
定一个Custome Transformer 可以使他免除重复你所做的所有复杂工作。
创建自定义转换工具
1 打开Workbench,打开位于My Documents\My FME Workspaces 的工作
区CSVRoads.fmw。
注意:这个练习建立在前面 Custome Formats 部分之上。如果你还没有完
成那个练习,在进行之前,你需要对你的工作区做几处细微的更改(按照
保存一个工作区作为自定义格式一节中的1-4 步)。之后一定要存储你的工
作区。
2 因为你的合作者的文件名称和你的也许不同,Custom Transformer 必须
对任何改变的设置进行提示。这个通过发布参数完成。先在Navigation 面
板上扩展Transformer 结点。
3 现在扩展Joiner 结点。通过在Joiner 转换工具上右键点击选择Publish
Parameter 发布它的Joiner Source 参数。这样将打开Edit Published Parameter
对话框。
FME 教程(2008 版)
37
4 注意四个参数。当工作区运行时,缺省显示的Default Value 域包括了数
据库的名称和位置。File Filter 允许你指定被用作Joiner 转换工具的源的所
有可能的文件类型—如果需要,你可以将这个限定为带有MDB 扩展名的
MS Access 文件。Name 内部使用,Prompt 文本将告诉用户输入的参数。
点击OK 按钮,接受所以缺省值。
注意:这将引起工作区提示你的合作者道路关联的数据库的名称和位置。
如果这步跳过,数据库将和你创建工作区时使用的数据库的名称和位置相
同。
5 扩展Published Parameters 结点查看新的发布参数。注意Source 和
Destination 信息缺省发布。
FME 教程(2008 版)
38
6 现在你将创建一个Custom Transformer 。在工作区中, 选择
2DPointReplacer。然后,按上Ctrl 键,点击PointConnector 和Joiner。这三
个转换工具现在都已选择。右键点击,选择Creat Custom Transformer。
7 这样将打开Custom Transformer Properties 对话框。指定你的新的转换工
具的名称和类别以及描述信息。
FME 教程(2008 版)
39
8 点击OK 接受信息。你将注意到工作区窗口中创建了一个新的激活的标
签页,它显示了Custom Transformer 的组成。
9 点击Main 标签页,你将看到2DpointReplacer,PointConnector 和Joiner
被一个命名为RoadBuilder 的单一转换工具替代。这就是你的Custom
Transformer,这时,过程完成。
FME 教程(2008 版)
40
投递自定义转换工具
1 下一步是使得你的Custom Transformer 成为一个可以发送给你的合作者
的格式。选择RoadBuilder 标签页,转到RoadBuidler 定义。选择File>Export
as Custome Transformer。
2 这样将打开另一个Workbench。使用Custom Formats Workbench 你会看
到,输入和输出与一个常规的工作区不同。
3 源工作区现在可以关闭了。最后一步是把你的新的Custom Transformer
发送给你的合作者。因为新的转换工具是一个文件。你可以把它放在CD
上给他。然而,你想进一步加深你同时对你Workbench 知识的印象,所以
你决定通过Workbench 直接E-mail 给它。点击File>Send To
FME 教程(2008 版)
41
4 这样将打开你的缺省的e-mail 客户端,并且Custom Transformer 以文件
形式添加为附件( 缺省情况下, Transformers 存储在
MyDocuments\FME\Transformers)。
为了安装它,你的合作者只需要把RoadBuilder.fmx 文件保存到磁盘然后双
击它,就可以立即使用了。
你已经完成了第三章 Custom Translations-FME Workbench 的学习教程到此
也完成了。
到目前为止已经向你介绍了Workbench 的功能。你已经了解了Universal
Viewer 查看数据和创建工作区快照的方式。你也学习了如何创建和投递
Custom Transformers。FME Suite 产品拥有多个格式和转换工具,为了更好
地满足自己的数据转换需要,这里所学习的基本知识有待提高。
42
附件A—了解Workbench
Workbench 界面
菜单条和工具条
Workbench 窗口顶部的下拉菜单包含改变整个工作区的命令;而各单个命
令菜单(通过在工作区中右键点击选择一个对象进行显示)在进行组成分
离时则是可用的。
增强工作区工具条
把光标放在一个工具上可以看到该工具的功能的一个简要描述。
文件工具允许你打开一个新的工作区,打开一个数据集,存储、打印、运
行和终止一个转换。
编辑工具条允许你剪切、复制、粘帖、撤消和恢复。
Viewer 工作条允许你漫游、放大和缩小范围。它也允许你Toggle feature
count display 和快速插入。
Insert 工具允许你添加源数据集和目标数据集,要素类型,注释,它们也
允许你执行Anto Layout。
设计布局工具条
把光标放在一个工具上可以看到该工具的功能的一个简要描述。布局工具
43
允许你:
自动安排屏幕布局。
选择多个结点,使得它们上、下、右或左对齐。
水平垂直展开结点。
展开或折叠(显示或者隐藏)所有要素类型的属性。
注意:一些工具条,例如:Layout 工具条,并非Workbench 工具条缺省的
一部分。为了使用附加工具条,在工具条上右键点击,选择Customize
Toolbar。在这里,你可以通过在列表中点击,并拖动一个命把它添加到工
具条上。
状态条
Workbench 窗口左下方区域显示过程信息以及选择菜单项或者工具的简要
描述。
Workbench 组成
当 Workbench 运行时,它从输入的数据中读取要素类型属性。它开始时给
输出数据显示和输入数据相同的要素类型和属性。所以,你经常会看到:
颜色定义
Properties 按钮在Transformer 的右上方。它可以呈现为不同的颜色,显示
为感叹号或者省略号。
44
大多数情况下,Transformers 包含你运行Workbench 时可以使用的缺省值。
然而,如果属性按钮是红色的,并且显示有感叹号时,操作的字段有一个
是未设置的,你必须输入一个值才能运行转换。
如果属性按钮是黄色的,并且显示为省略号,转换工具在使用缺省值并且
起作用。但是你还未确定缺省值是否是合适的。通过点击属性按钮,检查
值,做一些可能的更改,然后点击Edit Properties 对话框中的OK 来完成确
认。
如果属性按钮和背景颜色相同,并且显示为省略号,你已经存储了值。假
如你仍然想要编辑值,点击属性按钮打开Edit 对话框。
输入箭头是红色的:红色的箭头意味着这个端口没有输入。如果这是
一个要素端口,没有要素进来;如果这是一个属性端口,没有设置值。这
并不被认为是一个错误,因为存在你不想给一个特殊的端口任何输入的情
况。然而,通常你双击红色箭头以保证任何丢失的输入是故意的。
输入箭头是绿色的:连接已设置。
输出箭头是黄色的:你不需要必须连接输出,但是如果未连接,运行
Workbench 时,它的值将丢失。
快速更改
重命名和创建新属性
重命名一个属性而不打开属性对话框的方法是,选择属性名称,在命令菜
单中点击Rename。你也可以按F2。
创建连续的新属性。选择整个目标类型,右键点击选择 Add Attribute。在
对话框中输入新的名称,当它出现之后,跳过该域以接受缺省值完成输入。
点击 OK,在Workbench 工作区中出现属性:
45
之后可以退回并编辑属性。通过选择属性,从命令菜单中选择 Properties
编辑要素属性。
删除一个连接。直接点击连接线,按Delete 键或右键点击,在命令菜单中
点击Delete。
为选择多个连接,选择下面两种方法之一:
按下 Ctrl 键,依次点击连接线。
按下鼠标左键,一个区域周围拽拉光标成框,之后释放鼠标,按 Delete。
删除转换工具的连接
删除一个连接可以通过直接点击连接,然后按下Delete 键,也可以通过右
键点击连接,在弹出的菜单中选择Delete。
按照下列方法之一选择多个加接:
按下 Ctrl 键,逐个点击每个连接。
按下鼠标左键,在一个区域周围拉动光标形成一个框,翻译鼠标左键,按
下Delete 。
插入转换工具的连接
方法 1:向导
这种方法帮助你保证连接的精确度,尤其是你在处理一个复杂的工作区时。
往工作区中拽入一个新的转换工具。
选择转换工具,右键点击,选择命令菜单中的 Insert Before。
一个向导带领你完成连接设置,允许你快速容易地连接多个端口。
新的转换工具出现在工作区上。
方法 2:Quick Insertion
FME2008 允许你通过拖拽一个转换工具到合适的地方再释放它快速连接
一个转换工具。如果你使用一个相对简单的工作区而且要求效率和速度这
种方法则是有用的。
注意:关于 Quick Insertions 的更多信息,参照转换工具介绍一节。
46
在连接线上插入结点
选择一个连接,右键点击,选择命令菜单点击 Insert Vertex on Link。这样
你可以在界面上的其它区域周围安排你的连接(你也可以仅通过在你希望
建立一个新的结点的连接上双击即可)。