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

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

        

         最近在做农村地籍建库和汇交工作,其中需要把某个县市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及以上版本更稳定。欢迎各位指正。

2018-6-27更新:增加了新功能,可以合并数据集(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()

 

转载自:https://blog.csdn.net/Putin_leon/article/details/80571061

You may also like...