第8页
斯潘4
除了转换Esri地理数据库中的数据外,FME还可以通过写入现有地理数据库或创建新的地理数据库并向其写入数据,将数据转换为地理数据库。
此外,FME还可以使用现有的地理数据库或Esri XML工作区文档作为模板来创建新的地理数据库。
这意味着,对于更复杂的工作空间,可以将域和子类型定义、关系和网络信息以及注释符号从一个地理数据库复制到另一个地理数据库。
在本教程中,我们将探讨一种使用XML工作区文档作为模板读取任何格式的数据并将其写入地理数据库的方法。。
本练习的源数据包括一个Esri形状文件,该文件将温哥华市的陆地边界表示为一个多边形:
…以一组多边形几何图形表示城市社区的KML文件:
…以及将地块边界表示为单个线要素的AutoCAD图形文件:
1.在这个翻译中,我们将从一个空画布开始,添加读者和作者分开。所以呢启动FME Workbench并单击Main选项卡。
从菜单栏中选择Readers>Add Reader。在打开的“添加读取器”对话框中,将Esri Shapefile设置为源格式,并选择文件VancouverLandBoundary.shp作为源数据集。
2.再次从菜单栏中选择“Readers”>“Add Reader”。这次将格式设置为Google KML,并选择文件VancouverNeighborhoods.KML作为源数据集。
当提示向转换中添加哪些要素类型(图层)时,只选择邻域,而不选择其他所有要素类型。
3.最后一次选择读卡器>添加读卡器。这次的格式是Autodesk AutoCAD DWG/DXF,源数据集是Parcels.DWG。
在单击OK添加读卡器之前,首先单击parameters按钮并将参数“groupattributesby”设置为“attributeschema”。
工作区现在如下所示:
4.源AutoCAD DWG文件包含表示特性地块边界的线要素。我们希望在地理数据库中将它们写为多边形,为了做到这一点,我们需要在转换过程中转换数据。可以使用AreaBuilder转换器来实现这一点。
因此,放置一个AreaBuilder转换器并将其连接到ParcelLines要素类型。
5.每个地块多边形应提供一个ID号。反变压器是实现这一点的一种方法。从零开始,通过转换器的每个特征接收一个递增的数值作为属性。
因此,放置一个计数器变压器并将其连接到AreaBuilder:Area输出端口。
打开“参数”对话框并将“计数输出”属性设置为ParcelId,以匹配输出模式。
6.要编写地理数据库,我们现在需要添加一个Writer。
从菜单栏中选择“编写器”>“添加编写器”。出现提示时,将格式设置为Esri地理数据库(文件Geodb)。单击“参数”按钮。
在“参数”对话框中,将“覆盖现有数据库”设置为“是”。在“模板文件”下,选择提供的ArcGIS XML工作区文档。这是一个基于XML的模板,可以通过在ArcGIS中导出现有的地理数据库来创建。单击“确定”关闭“参数”对话框。
FME将用这个模板的所有内容创建一个新的地理数据库。但是,要告诉FME我们现在希望将数据写入其中一些表中,请将“Add Feature Types”参数更改为“Import from Dataset”:
单击“确定”关闭“添加编写器”对话框。
7.出现提示时(使用“导入要素类型”对话框),将格式设置为Esri地理数据库(XML工作区文档),并再次为数据集选择XML模板文件。
单击“确定”让FME在模板中搜索表列表。出现提示时,取消选择所有表,然后重新选择要写入的3个表:VancouverLandBoundary、Parcels和Neighborhoods。单击“确定”。
8.添加后,将相应读取器的输出连接到相应的地理数据库写入器:
9.扩展“邻居”“读写器”功能类型。有些属性需要从reader映射到writer。
为ID、Name、URL、Pop2001、Pop2011绘制连接
10.最后,在Navigator窗口中找到geodatabase writer的坐标系设置。将输出坐标系设置为UTM83-10:
11.运行工作区。系统将提示您选择要将新地理数据库写入的位置,并且可能会出现有关意外输入的警告,但可以忽略该警告。
检查输出(使用ArcMap或FME数据检查器)。定义的要素类都是模板中存在的要素类,但只有我们导入到FME工作区的三个要素类包含数据。
示例中使用的文件Geodb读取器需要安装并获得许可的ArcGIS版本。如果ArcGIS不可用,则可以使用Open API读取器。但是,请注意,此读写器并不是在所有场景中都提供相同级别的功能。有关更多信息,请参见以下内容:
©2019安全亚搏在线软件公司|法律