免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 5662|回复: 46
收起左侧

利用FME编写Arcpy脚本创建MDB模板空库

    [复制链接]

155

主题

4871

铜板

3

好友

地信专家组

Rank: 14Rank: 14Rank: 14Rank: 14

积分
2288
发表于 2020-1-16 14:51 | 显示全部楼层 |阅读模式
一直割舍不掉对FME的喜爱。前段时间,群里有人谈建库的事,看到有人发了些建库标准。正好闲着,便想:“能不能用FME,根据建库标准自动建立数据库空库模板?”。于是找到一份Word版的不动产数据库标准,以自动生成不动产MDB数据库空库模板为目标,开始了FME的探索之旅。
经过摸索,发现FME不支持对数据库属性域写入和字段属性域设置,而这是建库必须的。于是开始寻求arcpy的帮助。首先想到的是在pythonCaller中调用arcpy函。这种方法是可行的,但是需要编写大量额外代码对数据库标准中的属性表,字段、域编码等数据进行操作,应该很累,放弃了此方案;然后想到arcpy脚本也可以建库,脚本也是格式化的文本,FME擅长输出格式化的文本,那FME能不能直接生成arcpy脚本呢?片刻思考之后,确定FME完全能胜任:只需要用FME把用于定义数据库的属性结构表、编码表中相应数据作为参数值直接填入相应的arcpy函数中,一条数据对应一个arcpy函数,全部参数填充好后安排好输出顺序,最终通过text写模块直接输出py文件即可。
利用FME编写Arcpy脚本的方式建模板库,从word版的数据库标准到数据库空库模板的生产全过程如下:
1.Word版数据库定义表格提取
将定义数据库的word版表格手工复制至Excel,做好Sheet名称标注,保持与标准一致。
2.FME清洗,形成标准Excel表格
用FME清洗复制出来的Excel格式数据库定义表,排除不规范数据,形成4张标准表1)AttributeTables 2)FeatureClasses 3)Fields 4)Domains 。
3.FME模板生成arcpy建库脚本
4.运行arcpy建库脚本
5.检查
总结:
利用FME编写Arcpy脚本的方式建模板空库,一方面减少了手工操作过程,提高了效率和质量,另一方面更加灵活,可以节省很多数据操作代码的编写;另外,相比于用pythonCaller,通过生成独立脚本的方式,不需要同时具备FME和arcpy环境,便于共享。
此方法不足和待改进之处有:1)arcpy脚本运行速度受限 2)生成的脚本语句过长,有待进一步改进。3)脚本运行过程中错误处理方式有待进一步优化 。

0

主题

349

铜板

1

好友

技术员

Rank: 3Rank: 3

积分
62
发表于 2020-1-17 11:01 | 显示全部楼层
:zt:zt
回复

使用道具 举报

0

主题

758

铜板

1

好友

技术员

Rank: 3Rank: 3

积分
77
QQ
发表于 2020-2-26 11:49 | 显示全部楼层
:zt:zt:zt
回复

使用道具 举报

0

主题

7964

铜板

6

好友

高级工程师

Rank: 9Rank: 9Rank: 9

积分
1048
发表于 2020-5-17 12:08 | 显示全部楼层
认真学习。
回复

使用道具 举报

2

主题

979

铜板

1

好友

助理工程师

Rank: 5Rank: 5

积分
181
发表于 2020-5-24 00:36 手机频道 | 显示全部楼层
谢谢楼主分享
回复 支持 反对

使用道具 举报

0

主题

7964

铜板

6

好友

高级工程师

Rank: 9Rank: 9Rank: 9

积分
1048
发表于 2020-7-13 08:01 | 显示全部楼层
认真学习。
回复

使用道具 举报

0

主题

284

铜板

1

好友

技术员

Rank: 3Rank: 3

积分
25
发表于 2020-8-26 20:12 | 显示全部楼层
值得学习
回复

使用道具 举报

2

主题

5030

铜板

1

好友

助理工程师

Rank: 5Rank: 5

积分
319
发表于 2020-9-8 20:02 | 显示全部楼层
感谢分享,源代码能共享下吗
回复 支持 反对

使用道具 举报

10

主题

5042

铜板

34

好友

教授级高工

数据与实体

Rank: 12Rank: 12Rank: 12

积分
1731
发表于 2020-11-3 16:52 | 显示全部楼层
厉害了,值得鼓励!
回复 支持 反对

使用道具 举报

9

主题

6242

铜板

10

好友

高级工程师

Rank: 9Rank: 9Rank: 9

积分
621
发表于 2021-1-7 15:01 | 显示全部楼层
可以 支持下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表