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

作者:木头狼

2019年9月26日

FME模板及数据下载链接:https://pan.baidu.com/s/1MED4pqsCqeNAC27MOsCNKw

一直割舍不掉对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建库脚本

扫描二维码关注公众号,回复: 9810029 查看本文章

4.  运行arcpy建库脚本

5.  检查

总结:

利用FME编写Arcpy脚本的方式建模板空库,一方面减少了手工操作过程,提高了效率和质量,另一方面更加灵活,可以节省很多数据操作代码的编写;另外,相比于用pythonCaller,通过生成独立脚本的方式,不需要同时具备FME和arcpy环境,便于共享。

此方法不足和待改进之处有:1)arcpy脚本运行速度受限 2)生成的脚本语句过长,有待进一步改进。3)脚本运行过程中错误处理方式有待进一步优化 。

 

发布了350 篇原创文章 · 获赞 169 · 访问量 36万+

猜你喜欢

转载自blog.csdn.net/fmechina/article/details/101533733