FME2008操作指南

更新时间:2023-12-17 10:18:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

地籍数据转换思路

大纲

? 地籍建库中的数据流转过程 ? 数据转换过程的重要性 ? 数据转换的基本思路 ? 常见数据格式介绍 ? FME操作

地籍建库中的数据流转过程

外业采集数据(全站仪、GPS 接收仪等) 权属数据整理 矢量化(CAD、南方CASS、广州开思等) 数据转换 数据库服务器(SQL Server、Oracle、ArcSDE 、等空间数据和属性数据 ) GIS地籍管理软件 维护 地籍管理数据库

数据转换过程的重要性

? 数据是地理信息应用管理系统重要的组成部分,被称为GIS的“血液”。

? 如何实现数据在不同平台、不同格式之间的无损转换,实现数据共享,一直是制约GIS项目进度的瓶颈问题。 ? 数据转换是外业数据能够成功应用在GIS管理系统的关键步骤。

? 数据转换过程不是简单的数据格式的转换,大部分的GIS平台软件都提供了一些数据格式的转换工具,但是这些工具基本上都是简单的数据格式的转换。 ? 数据转换过程即包含空间数据和属性数据基本数据格式的转换,还包含空间数据符号化、空间数据要素的几何类型匹配、拓扑问题处理、空间数据及属性数据等其他数据的逻辑组织等等处理过程。 ? 这里以AutoCAD类型数据转换为例。 数据转换的基本思路 多种格式,多种介质数据源可批量的,可扩展的数据统一标准,统一格式目标转换方案数据权属调查数据空间数据源数据转换(转换工具)ShapeFile数据数据录入(属性录入工具)MDB属性数据? 数据转换的目标就是形成统一标准、统一格式的目标数据;转换过程无数据丢失。

? 这里选择SHP格式作为空间数据的成果格式,是应为SHP格式是一种开放的空间数据交换格式,在目前使用的GIS系统基本上都实现无损的导入。

? 权属属性数据采用的是access格式存储,扫描件以JPEG文件方式存储。

? 要使整个转换过程高效率的完成,在这个过程中需要加入两个标准,既源数据的标准和目标格式数据标准。 ? 一般的源数据都是基于南方CASS的CAD数据。CAD(DWG格式)不是一种GIS数据类型(具体格式介绍见下文)。因此在源数据的标准既要满足CAD格式要求又要满足GIS类型数据的基本要求。(如数据精度设置要小于0.0001,绘制图形时一定要有编码,该封闭的要素一定要封闭)

常见数据格式介绍

? MAPGIS格式(WT,WL,WP) ? ARCGIS格式(SHP,Geodatabase) ? AUTOCAD格式(DWG,CASS)

MAPGIS格式

? WT

包含各种点状地物 子图、注释、圆等 ? WL

包含各种线状地物 ? WP

包含各种面状地物

MAPGIS格式 ? WT

包含各种点状地物 子图、注释、圆等 ? WL

包含各种线状地物 ? WP

包含各种面状地物

? 数据存储方式加密,外部程序无法直接读取。 ? 提供一共明码格式(WAT)输出,但是明码格式数据只是记录要素的空间位置信息和图元参数,属性部分要另外导出,图属通过ID字段关联。

ARCGIS格式

? SHP(shapefile)格式

? ARCGIS的交换格式,存储方式开放,可通过第三方程序读取和转换。

? 包含POINT,POLYLINE,POLYGON三种类型。 ? SHP数据中不存储拓扑关系 ? Geodatabase(空间数据库)格式

? 空间数据库包含personal geodatabase 和geodatabase两种。Geodatabase需要通过ARCSDE(空间数据引擎)连接读取。

? Geodatabase中属性是通过数据库中的一般表存储,可单独编辑和导入导出;空间描述部分加密,第三方软件无法直接读取。

AUTOCAD格式 ? DWG、DXF

? DWG格式加密存储;DXF为开放交换格式。 ? DWG中不严格区分要素几何类型,没有拓扑关系。 ? 属性数据存储在单个实体的扩展实体数据中。 ? AutoCAD扩展实体数据(XDATA)

AutoCAD扩展实体数据是在常规的图形数据基础上增加的按一系列分类代码组合而成的数据块,它与常规实体数据一起

构成内容更加广泛的实体数据。由于不同的应用场合要求存取不同的数据,因此扩展实体数据按应用类型分组,形式如下:

(-3 (“ApplicationName” (代码.数据) (…) ) (“ApplicationName”(代码.数据) (…)) (…)))

其中,-3表示扩展数据开始;

ApplicationName是最大长度为31字节的字符串,为已经登记的应用类型名

CASS程序DWG介绍 ? CASS数据的分层。

? CASS软件的默认数据分层采用的是,将同一种类的地物放置在同一层中,同一层中包含多种几何类型。例如JMD层中包含面状的居民地、线状的居民地附属和点状的居民地附属(门墩)。

? CASS要素编码体系

? CASS软件对每一种地物类型都定义了唯一的6位编码,并针对CAD软件的符号化实现扩展了1位编码。 ? 代码结构如下:

? ×× ×× × × _× ? 大类 中类 小类 子类 扩展

? 由于每种要素的编码值是唯一的,因此可以作为ARCGIS

符号化的依据。数据转换过程中

? CASS要素编码体系与GB/T 13923-2006《基础地理信息要素分类与代码》不一致。 ? 扩展实体数据设置

? CASS格式数据的扩展实体数据(Xdata)是存储在DWG内部的要素附加属性信息。但是扩展属性是与单个要素关联的而且是以数组方式存储,没有字段名。因此需要按照CASS相关的说明,确定各个属性存储的位置和种类。

? 一般情况下,CASS格式数据的扩展实体数据分成两个部分:Application Name:为SOUTH部分和其他Application Name部分。 ? Application Name:为SOUTH部分

? 此部分存储DWG图形的基本信息,一般包含要素编码和要素其他基本信息(要素编码在第一位置上即autocad_extended_data{0}.string{0})。 ? 下表为宗地此部分信息内容 CASS XDATA信息 1 Code 1000, 类数据存储位置 型 内容 字要素extended_data{0}.string{0} 符编码 ASCII string Code 2 1000, ASCII string Code 3 1000, ASCII string Code 4 1000, ASCII string 串 字符串 宗地extended_data{0}.string{1} 编号 字符串 权利人 extended_data{0}.string{2} 字土地符利用extended_data{0}.string{3} 串 类别 ? 其他Application Name部分

? 其他部分XDATA主要是对于地籍要素和土地利用要素设置的。其包含两部分:Registered Application Name和其他数据,前部分的表示字段名,后部分是数据类型和数据内容 .

DWG中特殊实体

AUTOCAD中存在样条曲线(Spline)对象、区域(Region)

对象、代理对象等许多特殊的图形对象,这些对象在ARCGIS中无法找到对应的类型。 FME操作

? 见《FME2008操作指南.doc》

? Transformer说明见《transformers.pdf》

第一章Viewing Data-FME Universal Viewer

本章内容

查看数据

不同格式的数据叠加 从 Viewer 中导出数据

目的

有多种格式的数据,希望熟悉这些数据。

查看数据

本练习中,使用Viewer 来浏览各文件的图形、属性和坐标系信息。你也将学习如何在Viewer 中过滤要素。 1 启动Universal Viewer

2 单击“File>Open Dataset(文件—打开数据集)”。这样,将打开SelectDataset to View(选择要查看的数据集)对话框。

3 现在,你必须指定你要读取的文件的格式。这个通过Format Gallery(格式列表)来完成。通过单击格式浏览按钮打开Format 框。

4 向下滚动格式列表直到你看到MapInfo MIF/MID

提示:你可以通过输入格式的名称的起始几个字母快速过滤Format Gallery(格式列表)中显示的格式。这种情况下,你可以输入MIF。

5 点击OK 接受这一格式。随即返回Select data(选择数据)对话框。

6 现在你必须选择要查看的MIF 数据。通过点击Dataset Browse(数据集浏览)按钮选择,

打开文件浏览窗口。转至文件flood_plains.mif(位于\\tutorial\\sampledata)

7 点击OK 在视图中显示该MIF 文件。

浏览图形和属性数据

现在 MIF 文件显示在视图中。图形数据是可见的,但是属性数据并没有显示出来。 1 如果还没有选择信息工具

,点击它使视图处于Inform 模式。现在,点击任何要素,属

性显示在Information 窗口中。

提示:比起一次只选择一个要素,你可以通过对多个要素拉框创建它们的一个选择集。通过点击前进按钮

和后退按钮

在选择集中的多个要素中进行循环。

获取坐标系信息

注意坐标系的简略信息显示在 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 的要素依然显示在屏幕上。

5 点击Filter Feature 按钮,打开Filter Features 对话框。取消对Enabled check的选择以使要素再次全部显示。

不同格式的数据叠加

现在,你已经使用Universal Viewer 读取一个单一的MIF 数据集。UniversalViewer 最有力的特点之一是它可以在一个窗口中叠加不同格式的多个数据集。下面的练习中,我们将多个的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 文件。

单击Open 按钮选择这些文件。同时返回到Select Data to Add 对话框。

4 下一步,你必须指定包括MGE 属性的数据库的位置和类型。点击Setting按钮,打开

Intergraph MGE Input Setting 对话框,指定数据库类型为AccessMDB。单击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文件中。然而,对于导出特殊,仅要求一小部分数据。 1 使用Zoom In 工具

,放大到包含MGE 和MIF 文件中的要素的一个小区域。在该区域

被重画后,选择File>Save Data As(文件>数据另存为)。

2 此时,Select Destination Format and Dataset 对话框打开。选择GeographyMarkup 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 数据,最简单的方法就是通过取消对它们的地球仪图标

前面的选择框的选择以关闭

它们的显示。使用缩小工具

扩大显示范围以保证先前数据导出时指定的范围的显示。因为你导出的只是整个数据集的一小部分,所以初始的一些要素现在丢失了:

注意:这种类型的转换是Universal Viewer 最有力的特点之一。它允许你导出数据的一小部分,而这个使用Workbench 是复杂的。可以帮助你缩小文件大小,只关注数据集的一个特定的空间现象。

6 选择File>Exit(文件>退出)关闭Viewer。

你已经完成了 Viewing Data- FME Universal Viewer 章。下一章,我们将使用FME Universal Translator 来进行快速转换。

第二章FME Universal Translator

本章内容

自动转换 简单要素处理 投影数据

目的

前面的练习中,你使用 FME Universal Viewer 读取数据。你也学习了如何使用视图简单转换数据的一小部分。本章,你将使用Universal Translator。它在不需要浏览数据的情况下是有用的。你仅仅需要从一种格式转达化为另一种格式,可能是在处理中转换和投影数据。 FME Universal Translator 在数据的转换中不需要改变其结构和形状的情况下是非常有用的。尽管Universal Translator 可以用来对数据集做较小的调整,但是对数据的的推荐的工具是FME Workbench,这个将在第三章中探讨。

自动转换

将数据从一种格式转化为另一种格式的最快速的方法就是使用FMEUniversal Translator。操作界面简单,可是,使用者对于转换不能有太多控制。Universal Translator 主要用于要求相对较少转换的简单转换。

1 启动FME Universal Translator

2 单击Translate 按钮打开Set Translation Parameters 对话框

3 在Source 部分,指定Source 格式为Geography Markup Language(GML)。在Dataset 文本框中, 单击浏览按钮

打开文件浏览。浏览至C:\\FMEData\\Data\\Zones,选择zoning.gml。

4 在Destination 部分,将输出格式指定为ESRI Shape,点击DataSet 文本框中的浏览按钮, 在文件浏览窗口中, 浏览至C:\\FMEData\\Output\\TutorialOutput。点击Open,把它选择为DestinationDirectory。

注意:一些格式要求你指定输出文件名称,而另一些(包括shape)要求指定一个输出文件夹。

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°。

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 按钮,之后打开FunctionBuilder 对话框,点击rotation 标签页,将旋转角度改回为0。点击OK 关闭Function Builder 对话框,返回Parameters 对话框。

3 点击Destination 部分的Coordinate System Browse 按钮,打开CoordinateSystem Gallery。

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 格式。当读取一个不包含坐标系信息的格式时,Coordinate System 文本框显示“Unknown”。如果使用者知道源数据的坐标系,那么可以通过打开Source Coordinate System Gallery,然后手动指定坐标系。如果使用者不知道不带有坐标系信息的格式的坐标系,那么源数据的投影将不可靠。7 点击OK 运行转换。

8 返回到Viewer。如果你已经关闭,再次打开它,并且按练习AutomatedTranslations 中的第六步重新进行设置。如果你没有关闭它,前一次练习的数据集仍然已经加载。点击Refresh 按钮

刷新。

9 点击Info 按钮

选择一个要素。你将会看到Coord Sys 文本框(在Information Pane 中)

中显示“LL-83”。

现在完成了 The Universal Translator 章。你已经知道了如何进行自动转化,基本转化和简单投影。下一章,探索 Workbench,它才是FME 的最有力的组成部分。

第三章自定义数据转换—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 theWorkspace Dialog”(缺省选项)。(你可以在任何时间通过File>New 访问FME Workbench 对话框)。

2 点击OK。将打开New Workspace 对话框。这里,我们需要选择SourceFormat,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 对话框。选中FieldNames Before Header box。这样将使用CSV 的第一行作为Workbench 中要素属性的名称。

6 点击OK 接受选择,返回到New Workspace 对话框。

7 选择MapInfo TAB(MIFTAB)作为目标格式。

8 点击OK,关闭New Workspace 对话框,,产生一个Workspace 界面。点击来扩展源类型和目标类型。

转换工具介绍

你已经创建一个基本的工作区,可以开始操作数据了。这一部分,你将使用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 之间。

注意:通过点击工具条上的按钮,实现在任意时刻快速插入功能的打开和关闭。

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 目标要素类型的连接(这样以保证不会创建输出文件)。

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 输出。一旦建立连接,将出现在一个大的粉红色点:

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 的连接,再次运行工作区。这一次,输出显示线。

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,选择。不需要输入用户名称和密码。

c 点击Next。提示指定数据库的主键。选择road_id,点击按钮

,把它移动到Keys 框中。

d 点击Next。提示进行主键匹配,从数据库框中选择ROAD_ID 从FeatureAttrs 框中选择road_id。然后点击按钮

,把它们一起移动到Key Pairs框中。

e 点击Next 按钮接受设置。然后,你必须指定你要使用数据库的哪些属性。点击按钮所有的属性移动到Added Attributes 框中。

f 继续点击Next 按钮接受下来几步的缺省设置,一直到最后一步,点击Finish 关闭向导返回Workbench。

18 点击Joiner 的Joined output 前面的标记

,这样新添加的属性名称就会显示出来。

19 这时你可以通过选择File>Save 存储你的工作区。将工作区命名为CSVRoads.fmw 把它存在My Documents\\My FME Workspaces 下。

20 添加一个AttributeFilter,并建立从Joiner 的Joiner 到它的连接。AttributeFilter 将允许我们根据某个属性值对道路进行分类。在运行之前,也许你需要再次重新调整一下你的工作区。

21 点击AttributeFilter 上的属性按钮,选择ROAD_CATEGORY 作为“Attribute to Filter by”。对于Possible Attribute Values,在第一行中输入RURAL,在第二行中输入MAJOR,在第三行中输入MINOR。 提示:你对你对 Road_Category 的所有可能的属性值并不确定,你可以使用右下方的Import 按钮,这将提示你找到源数据集(这里是MicrosoftAccess Database)以读取属性结构。并找到包含数据的文件(这里是road_attrs.mdb)。Workbench 将读取文件,搜索指定属性的所有不同属性值,并自动计算Possible Attribute Values。

22 点击OK。你会注意到AttributeFilter 有Rural,Major 和Minor 输出。建立从AttributeFilter 的MAJOR 到Visualizer 的连接,运行工作区。

这时就只显示 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 , 选择DestinationData>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 上空白处的某个地方,再次右键点击,选择粘贴。再重复一次创建第三个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相类似—然而,它仅仅是最后的输出端。如果你有多于一个的DestinationFeature Type,它是最简单的可视化你的输出的方式。)点击Navigation 面板上的Workspace Setting 标签页,双击Destination Redirect 结点。这将打开一个带有选择重新指定输出的位置的下拉列表的对话框,选择Redirectto Visualizer 选项,点击OK 接受选择。(这一设置也可以通过点击Destination Data>Redirect to Visualizer 实现。)

30 点击Run 按钮,打开Viewer。

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 文件证实结果。打开UniversalViewer,选择File>Open Dataset,打开Select Dataset 对话框,将格式设置为MapInfo TAB , 然后点击Browse 按钮, 浏览至C:\\FMEData\\Output\\TutorialOutput。刚才所创建的三个Tab 文件可以看到,按住Ctrl 选择它们。

34 点击Open 接受所选择的文件,然后再次点击OK 打开三个Tab 文件。 35 这样将在Viewer 中加载三个TAB 文件。

注意:这三个TAB 文件都显示为同一种颜色,为了改变每一层的颜色,点击层名旁边的色板,打开Color 对话框,在这里,你可以选择想要的颜色,重复此操作到所有层。

33 关闭Viewer 如果你对结果满意。

34 保存你所创建的Workspace,因为我们要在下一节的练习中使用它。

创建自定义格式

本练习中,创建一个Custom Format(自定义格式),改变相关的文件类型,并在Universal Viewer 中进行查看。本例中,你有许多.gps 文件(以及相关的MDB 文件)。你希望可以将这些文件当作完整的道路使用而不是CSV 文件,但是你并不想给每一个文件都去创建一个独立的工作区。

保存一个工作区作为自定义类型

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 保留下来。

建立从 AttributeFilter 的Rural,Major 和Minor 到保留下来的DestinatioonFeature Type 的连接。然后,通过右键点击选择Rename,将DestinationFeature 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 缺省发布参数)。

注意:关于发布参数的信息在Published Parameters 结点(位于Naviagotr面板下)下也可以获取,注意它只包括一个单独的输入。

2 右键点击“Source CSV File(s)”结点选择Edit Parameter。打开EditPublished parameter 对话框。

就像你看到的,这个对话框允许你选择一个或多个新的 Source CSV 文件。然而,这个和我们的目的不相符。因为我们创建一个自定义格式,我们希望输入数据有最大的灵活性;一个好的自定义格式可以被多个系统的多个用户共享。这种情况下,我们需要把我们的自定义格式和任意的GPS 输入—不仅仅是我们本地机上的存在的数据集的选择连接起来。为了建立这个连接,我们必须首先Unpublish our parameters。

3 选择Cancel,关闭Edit Published parameter 对话框,然后在Source CSVFile(s)结点上右键点击,选择Unpublish Parameter。注意结点变为绿色,同时,Published Parameters 结点下的输入消失了。

4 再次右键点击该结点,选择Publish Parameter,这样Edit PublishedParameter 结点再次打开。

5 注意出现了几个新域;因为我们现在处理Unpublished Parameters,我们有相当大的自由,例如编辑自定义格式的File Filter。

6 改变Name 和Prompt 以匹配我们要提示的数据。将Name 设置为Sourcedataset_GPS,Prompt 设置为GPS Files(s):。现在,因为Customeformat 使用GPS 文件,而非CSV 文件,因此你必需改变File filter。点击File filter 的浏览按钮,打开File Filter 对话框。

7 移除所有存在的过滤器,通过在Description 框中输入GPS_Files(*.gps), 在Filter 框中输入*.gps 加入一个GPS 过滤器

8 点击OK 接受这些更改,关闭File Filter 对话框,再点击OK 关闭EditPublished Parameters 对话框。 这时,你会注意到Source CSV File(s)再次变为紫色,而PublishedParameters 结点包含“Source GPS File(s)”输入。

9 保存工作区

浏览自定义格式

既然已经创建了一个 Custom Format,那么如何使用它呢?一个CustomFormat 的使用和其它任何一种格式是一样的。它可以作为一个数据自动转换或者工作区的源。它也可以像下面看到的那样在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 数据库中的属性。

自定义转换工具

本练习中,你将创建一个 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 转换工具上右键点击选择PublishParameter 发布它的Joiner Source 参数。这样将打开Edit Published Parameter对话框。

4 注意四个参数。当工作区运行时,缺省显示的Default Value 域包括了数据库的名称和位置。File Filter 允许你指定被用作Joiner 转换工具的源的所有可能的文件类型—如果需要,你可以将这个限定为带有MDB 扩展名的MS Access 文件。Name 内部使用,Prompt 文本将告诉用户输入的参数。点击OK 按钮,接受所以缺省值。

注意:这将引起工作区提示你的合作者道路关联的数据库的名称和位置。如果这步跳过,数据库将和你创建工作区时使用的数据库的名称和位置相同。

5 扩展Published Parameters 结点查看新的发布参数。注意Source 和Destination 信息缺省发布。

6 现在你将创建一个Custom Transformer 。在工作区中, 选择2DPointReplacer。然后,按上Ctrl 键,点击PointConnector 和Joiner。这三个转换工具现在都已选择。右键点击,选择Creat Custom Transformer。

7 这样将打开Custom Transformer Properties 对话框。指定你的新的转换工具的名称和类别以及描述信息。

8 点击OK 接受信息。你将注意到工作区窗口中创建了一个新的激活的标签页,它显示了Custom Transformer 的组成。

9 点击Main 标签页,你将看到2DpointReplacer,PointConnector 和Joiner被一个命名为RoadBuilder 的单一转换工具替代。这就是你的CustomTransformer,这时,过程完成。

投递自定义转换工具

1 下一步是使得你的Custom Transformer 成为一个可以发送给你的合作者的格式。选择RoadBuilder 标签页,转到RoadBuidler 定义。选择File>Exportas Custome Transformer。

2 这样将打开另一个Workbench。使用Custom Formats Workbench 你会看到,输入和输出与一个常规的工作区不同。

3 源工作区现在可以关闭了。最后一步是把你的新的Custom Transformer发送给你的合作者。因为新的转换工具是一个文件。你可以把它放在CD上给他。然而,你想进一步加深你同时对你Workbench 知识的印象,所以你决定通过Workbench 直接E-mail 给它。点击File>Send To

4 这样将打开你的缺省的e-mail 客户端,并且Custom Transformer 以文件形式添加为附件( 缺省情况下, Transformers 存储在MyDocuments\\FME\\Transformers)。

本文来源:https://www.bwwdw.com/article/1gf5.html

Top