基于FME实现的地理数据库批量建库的解决方案,支持gdb、mdb、shapefile等数据格式,gdb批量建库,mdb批量建库,shp批量建库,shapefile批量建库,地理数据批量建库

目录

一、建库效果

1.图层及字段效果

2.图层坐标系效果

二、实现过程

1.制作建库结构表

 2.字段映射

 3.映射几何类型

 4.构建schema

 5.输出设置

 6.图层坐标系设置

 7.FME模板的整体流程图

三、参数妙用小技巧


gdb、mdb、shapefile是常用的地理数据格式,在建库的时候中遇到大量图层,每个图层又有很多字段时,如果使用arcgis进行手工建库耗时耗力,且容易出错。下面介绍利用FME软件进行建库的方案。关注薇信工众号:“GIS工具乐园”,回复“建库”,可免费查看全文。

本博客的示例数据及FME工具全套下载链接:https://download.csdn.net/download/tylkhx/85375343

本示例工具基于FME2020.2开发,使用前请自行安装FME2020.2及以上版本的FME软件


☛ FME系列视频教程推荐 ☚


  • 1.FME入门视频教程

  • 2.FME进阶视频教程

  • 3.FME案例实战教程


一、建库效果

以点、线、面、文本、表等五种类型的图层,以及文本、短整型、长整型、浮点型、双精度、日期等字段类型进行建表演示,通过下图可以看到完全根据要求实现了建库。关注微行公众号:“GIS工具乐园”,持续更新开发技巧分享哦。

1.图层及字段效果

可以看到实现了各类图层及字段的定义。

基于FME实现的地理数据库批量建库的解决方案,支持gdb、mdb、shapefile等数据格式,gdb批量建库,mdb批量建库,shp批量建库,shapefile批量建库,地理数据批量建库_第1张图片

图层及字段效果

2.图层坐标系效果

可以看到实现了坐标系的定义

基于FME实现的地理数据库批量建库的解决方案,支持gdb、mdb、shapefile等数据格式,gdb批量建库,mdb批量建库,shp批量建库,shapefile批量建库,地理数据批量建库_第2张图片

图层坐标系效果

二、实现过程

用FME建库的关键在于构建图层schema,下面介绍如何实现schema的构建

1.制作建库结构表

在建库结构表中,定义图层信息及字段信息,如下图所示。

基于FME实现的地理数据库批量建库的解决方案,支持gdb、mdb、shapefile等数据格式,gdb批量建库,mdb批量建库,shp批量建库,shapefile批量建库,地理数据批量建库_第3张图片

建库结构表

 2.字段映射

使用FME读取建库结构表后,将建库结构表中的字段类型,映射为FME中定义的字段类型,如下图所示。

基于FME实现的地理数据库批量建库的解决方案,支持gdb、mdb、shapefile等数据格式,gdb批量建库,mdb批量建库,shp批量建库,shapefile批量建库,地理数据批量建库_第4张图片

字段映射

 3.映射几何类型

将建库结构表中的图层类型映射为FME中定义的图层类型,如下图所示

基于FME实现的地理数据库批量建库的解决方案,支持gdb、mdb、shapefile等数据格式,gdb批量建库,mdb批量建库,shp批量建库,shapefile批量建库,地理数据批量建库_第5张图片

映射几何类型

 4.构建schema

经过分析在FME中schema结构如下图所示,即只要构建出这样的属性,即可实现建库。一般的属性使用AttributeCreator转换器创建即可,难点在于schema中有一个attribute{}列表,AttributeCreator转换器难以创建符合要求的attribute{}列表,这里使用PythonCaller转换器,通过python代码实现attribute{}列表的创建并赋值,下面看具体流程。

(1)通过ListBuilder转换器,以图层名分组,将图层的所有字段信息聚合到list{}中,如下图所示。

基于FME实现的地理数据库批量建库的解决方案,支持gdb、mdb、shapefile等数据格式,gdb批量建库,mdb批量建库,shp批量建库,shapefile批量建库,地理数据批量建库_第6张图片

字段信息汇聚

 (2)attribute{}列表参数构建

使用PythonCaller转换器,获取list{}的字段信息后,循环list{},将其包含的字段信息提取并设置到attribute{}中,具体代码如下图所示

基于FME实现的地理数据库批量建库的解决方案,支持gdb、mdb、shapefile等数据格式,gdb批量建库,mdb批量建库,shp批量建库,shapefile批量建库,地理数据批量建库_第7张图片

attribute{}列表参数构建

(3)其他schema参数设置

使用AttributeCreator转换器可以设置非列表的schema参数,例如geodb_feature_dataset(要素集名称)、geodb_feature_class_alias(图层别名)等,至此schema构建完毕,如下图所示。

基于FME实现的地理数据库批量建库的解决方案,支持gdb、mdb、shapefile等数据格式,gdb批量建库,mdb批量建库,shp批量建库,shapefile批量建库,地理数据批量建库_第8张图片

其他schema参数设置

 5.输出设置

勾选“动态模式定义”,模式源选择“从模式要素来确定模式”,详细设置见下图

基于FME实现的地理数据库批量建库的解决方案,支持gdb、mdb、shapefile等数据格式,gdb批量建库,mdb批量建库,shp批量建库,shapefile批量建库,地理数据批量建库_第9张图片

输出设置

 6.图层坐标系设置

为便于统一设置输出图层的坐标系,通过自定义参数“坐标系”,向写模板传递坐标系。如下图所示。

基于FME实现的地理数据库批量建库的解决方案,支持gdb、mdb、shapefile等数据格式,gdb批量建库,mdb批量建库,shp批量建库,shapefile批量建库,地理数据批量建库_第10张图片

坐标系设置

 7.FME模板的整体流程图

基于FME实现的地理数据库批量建库的解决方案,支持gdb、mdb、shapefile等数据格式,gdb批量建库,mdb批量建库,shp批量建库,shapefile批量建库,地理数据批量建库_第11张图片整体流程图

三、参数妙用小技巧

在FME中参数是个好东西,可以让用户动态输入运行参数,而不是每次使用修改模板。前面介绍了自定义参数“坐标系”来动态传递输出图层的坐标系,下面再介绍一个在本FME模板中的妙用。

gdb、mdb、shapefile是我们经常使用的地理数据格式,本模板通过定义参数来实现,用户自行选择要输出的数据格式,无需修改模板,实现思路为:给参数定义三个固定选型,分别对应三种数据格式,然后通过TestFilter转换器将数据流导向对应数据格式的写模块即可。实现效果如下:

基于FME实现的地理数据库批量建库的解决方案,支持gdb、mdb、shapefile等数据格式,gdb批量建库,mdb批量建库,shp批量建库,shapefile批量建库,地理数据批量建库_第12张图片

动态选择输出数据格式

你可能感兴趣的:(GIS,FME,数据库,FME,建库,mdb,GIS)