FME-GIS专题之利用excel表建立空库结构

FME-GIS专题之利用excel表建立空库结构

在arcgis中我们往往需要对照我们的建库标准建立mdb、gdb或者sde结构,当然arcgis提供了相应的arcpy模块的“FiledInfo”方法进行快速建库,如下图:

在FME里,我们可以通过PythonCaller转换器调用arcpy,FME2017以前还需要在导航栏的脚本处插入此语句,选择arcgis的安装路径调用。

而FME2017开始,好像可以直接选择python的脚本引用,不需要再安装arcgis了。

当然以上是我们懂arcpy的人使用的常见方法,那我们如果利用FME原生转换器如何实现相同步骤喃?首先来看下我们的需求与两种方法的对比

需求

FME方法

Arcpy模块

按标准规范自动生成标准数据库:图层按照提供的规范(excel格式)自定义添加多个字段以及设定字段规则,字段需要设置字段名称和字段别名,图层设定图层名称和图层别名及数据集

1、通过FME的方式建立图层与字段,字段可设置字段名称与字段别名,图层可设置图层名称与图层别名,可控制约束条件;

2、通过调用arcpy方式(以10.2.2为例)建立图层与字段,字段可设置字段名称与字段别名,可设置约束条件,但图层只能设定图层无法自动设定图层别名几何要素只能有点线面不能有annotation

那我们来看看具体的方法:

一、Schema (From Table)读模块(基础表模式)

这个读模块是将输出模式存储为文本文件或者电子表格中的一些表的形式;如下:

这里,用户列出了一系列定义在输出模式中的要素类,属性,和几何对象类型。在FME中,将通过添加资源读模块使用该模式。读模块的格式是Schema (From Table):

该读模块的参数对话框,有参数指定表格中的哪些字段代表模式的哪些部分:

Feature type:对应的表(图层)名称属性

Attribute name:对应字段名称属性

Attribute data type:对应FME的字段类型与长度(具体设置见下面的FME数据类型

Geometry type:对应的表(图层)的几何类型,点(fme_point)、线(fme_line)、面(fme_polygon)、文本(fme_text)

Attribute sequence:字段的序号属性

 

FME字段类型

在FME中有一些列的有效数据类型,如下:

  1. 字符字段: fme_varchar(width), fme_char(width), fme_char
  2. 整型字段:fme_uint8, fme_int16, fme_uint16, fme_int32, fme_uint32, fme_int64, fme_uint64
  3. 其他字段:fme_decimal(width,decimal), fme_real32, fme_real64
  4. 日期时间字段:fme_datetime, fme_time, fme_date
  5. 数字字段:fme_buffer, fme_boolean

 

例如下图,我们通过在arcgis建立一个图层,并设置各种字段类型,我们通过Schema (Any Format)读模块加载到fmeinspector中,可以看到每个字段都以列表的方式进行了表达:

attribute{}.fme_data_type:fme字段类型

attribute{}.name:字段名称

attribute{}.native_data_type:字段原格式类型

 

Arcgis字段类型与fme映射关系

       之后我们要建立结构,对应写模块可以是多种格式(mdb、gdb、sde、oracle等),需要设置写模块的一些参数如下:

FME2018中写模块相关设置

二、实例

主要分为4步:

1.利用原始excel表构建标准的建库excel

2.构建字段与图层别名

通过FeatureReader以Schema (From Table)读模块读取刚才建立好的标准的建库excel表,具体参数设置如下:

同时我们通过AttributeCreator赋值excel的图层、字段别名与数据集名称,最后通过FeatureWriter写出到mdb中,具体设置如下:

至此,除了约束条件其他的需求都已经构建好了

3. 删除临时excel文件

此处通过调用PythonCaller转换器同步清除上一步生成的excel文件

4.约束条件的修改

最后我们通过mdb(access)读模块获取GDB_Items图层的“Definition Name”字段xml定义,再利用XMLUpdater转换器完成约束条件更新,最后利用DatabaseUpdater转换器完成mdb字段约束条件更新。

 

 

转载自:https://blog.csdn.net/fmechina/article/details/82463442

You may also like...

退出移动版