基于Arcpy制作数据库批量合并脚本工具
·
基于Arcpy制作数据库批量合并脚本工具
最近在做新型基础测绘项目的时候,由于项目涉及到分标段作业以及将项目按作业区域划分至每个人进行独立生产,最后再进行统一合库工作,在最后进行项目合库的过程中发现需要合并的数据库少则十几个,并且标准库中的要素类多达四五十个,采用人工操作的方式,需要耗费大量的时间 精力,加之长时间的操作,极容易出错。鉴于此,想开发一个可以自动合库的工具。

在ARCGIS建库和入库的过程中,根据数据类型,数据结构和字段属性相同的多个数据库进行合并的时候,可以采用复制,加载,追加和合并等方法。虽然可以满足小数据量的需求,但是都需要人工进行操作,且不能直接操作数据库,当数据库多达上百个甚至更多的时候,工作量难以预估。
本文所开发的工具,原理是基于arcgis自带的“追加”功能。首先查看“追加”功能的原理和参数说明,其功能就是将某个要素类追加至同类型的要素类中,必填的参数为追加要素和目标要素。

清楚原理和参数后,即可上代码,编写自己的工具。首先设置好工作空间,获取需要待合并的所有数据库
workspace1 = ""
target_gdb = []
for f in arcpy.ListFiles("*.gdb"):
target_gdb.append(f)
接着获取目标数据库中的要素类,进行循环
workspace2 = ""
t_fc = []
target_feature = arcpy.ListFeatureClasses()
for e in target_feature:
t_fc.append(e)
最后进行遍历,调用arcpy的Append_management函数进行合并
for fc in t_fc:
target_fc = os.path.join(workspace2, fc)
for t_gdb in target_gdb:
input_fc = os.path.join(workspace1, t_gdb, fc)
arcpy.Append_management(input_fc, target_fc, 'NO_TEST')
print (u"{}{} merge finish!!".format(t_gdb, fc))
注:在上述代码中需要将workspace和workspace2换成自己需要的路径即可。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)