代码格式化模板导入_利用FME编写Arcpy脚本创建MDB 模板空库

本文介绍了如何利用FME根据数据库标准自动生成Arcpy脚本,以此创建MDB数据库模板空库。首先,将Word版数据库标准转换为Excel,然后通过FME清洗并生成4张标准表。接着,FME根据这些表生成arcpy建库脚本,最后运行脚本完成模板库的创建。这种方法提高了效率和灵活性,但存在脚本运行速度和错误处理的局限性。
摘要由CSDN通过智能技术生成

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

e118060cc1d0c5a7ae1c31fd11ddcdec.png

11649d66bbdcf9497097f159748d73a8.png

f2d4f6a8a2504206e182828ddc878512.png

4.     运行arcpy建库脚本

6528b3b523f7a99519ede168496c5109.png

9d27f3fc534b82eb3667edb104901dca.png

5.     检查

0be865532e2c71fd8eb7c1354c02ab59.png

e16440091effe6c4f48d076675794f42.png

c13d9a406c09d6cefa502d2241ded6ff.png

总结:

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值