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
启动帮助系统。
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
。这样
你可以在界面上的其它区域周围安排你的连接(你也可以仅通过在你希望
建立一个新的结点的连接上双击即可)。