分享

ArcGIS中使用Python批量合并多个文件型(*.gdb)地理数据库或(*.mdb)个人地理数据...

 唯依L 2019-09-05

最近在做农村地籍建库和汇交工作,其中需要把某个县市100多个村子的农村地籍数据库合并在一起,最终作为这个县市的最终数据整理汇交,代码如下:

import sys    

import arcpy  

import string  

try:  

    workspace = 'C:\Users\Administrator\Desktop\春化'  

    outdb = 'C:\Users\Administrator\Desktop\\县级数据库.mdb'  

    arcpy.env.workspace=outdb  

    fs = arcpy.ListFeatureClasses()  

    arcpy.env.workspace=workspace  

    for File in arcpy.ListFiles('*.*db'):  

        for f in fs:  

            arcpy.Append_management(File+'\\'+f, outdb+'\\'+f)  

except arcpy.ExecuteError:  

    print arcpy.GetMessages()  

实际动手操作如下:

1.准备数据

注意:outdb也就是目标数据库不要放到要被批量合并的数据库的文件夹下

2.打开ArcGIS的Python窗口,复制上述代码(注意要把路径改成你自己的),回车开始执行。

已经测试过有效,ArcGIS10.2及以上版本更稳定。欢迎各位指正。

更新:增加了新功能,可以合并数据集(DataSet)中的数据,也就是说,在数据库格式一致的情况下,可以合并点、线、面、注记、属性表以及数据集中的点、线、面、注记、属性表,脚本如下:

import sys

reload(sys)

sys.setdefaultencoding('utf-8')

import arcpy

import string

try:

    workspace = 'C:\Users\Administrator\Desktop\\cc'

    outdb = 'C:\Users\Administrator\Desktop\\lutian.mdb'

    arcpy.env.workspace = workspace

    files = arcpy.ListFiles('*.*db')

    arcpy.env.workspace = outdb

    fcs = arcpy.ListFeatureClasses()

    fcs = fcs + arcpy.ListTables()

    dss = arcpy.ListDatasets()

    for File in files:

        for fc in fcs:

            arcpy.Append_management(workspace + '\\' + File + '\\' + fc, outdb + '\\' + fc)

        for ds in dss:

            fcs1 = arcpy.ListFeatureClasses(feature_dataset = ds)

            for fc1 in fcs1:

                arcpy.Append_management(workspace + '\\' + File + '\\' + ds + '\\' + fc1, outdb + '\\' + ds + '\\' + fc1)

except arcpy.ExecuteError:

    print arcpy.GetMessages()

文章转载于CSDN,作者putin_leon

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多