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

33 篇文章 15 订阅

目录

一、建库效果

1.图层及字段效果

2.图层坐标系效果

二、实现过程

1.制作建库结构表

 2.字段映射

 3.映射几何类型

 4.构建schema

 5.输出设置

 6.图层坐标系设置

 7.FME模板的整体流程图

三、参数妙用小技巧


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

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


☛ FME系列视频教程推荐 ☚



一、建库效果

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

1.图层及字段效果

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

图层及字段效果

2.图层坐标系效果

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

图层坐标系效果

二、实现过程

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

1.制作建库结构表

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

建库结构表

 2.字段映射

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

字段映射

 3.映射几何类型

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

映射几何类型

 4.构建schema

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

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

字段信息汇聚

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

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

attribute{}列表参数构建

(3)其他schema参数设置

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

其他schema参数设置

 5.输出设置

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

输出设置

 6.图层坐标系设置

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

坐标系设置

 7.FME模板的整体流程图

整体流程图

三、参数妙用小技巧

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

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

动态选择输出数据格式

  • 5
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GIS工具开发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值