環(huán)境
Arcgis 10.1
python 2.7
問題
在制圖過程中甫题,一個圖幅的地圖數(shù)據(jù)存放在一個mdb數(shù)據(jù)庫中,當(dāng)每個圖幅都處理完了,需要多個圖幅的數(shù)據(jù)存放到一個數(shù)據(jù)庫中,如何寫一個批處理程序自動合并多個mdb株灸。需要合并點崇摄、線擎值、面、注記逐抑、屬性表以及數(shù)據(jù)集中的點鸠儿、線、面、注記进每、屬性表
腳本
import sys
#reload語句在arcgis10.1中會導(dǎo)致arcmap崩潰
#reload(sys)
#sys.setdefaultencoding("utf-8")
import arcpy
import string
try:
#路徑用英文汹粤,別用漢字
#要批量合并的mdb數(shù)據(jù)庫文件存放的路徑
workspace = 'C:\input'
#目標(biāo)數(shù)據(jù)庫文件所在的路徑,目標(biāo)數(shù)據(jù)庫中的文件格式和要批量處理的數(shù)據(jù)庫格式一致田晚。
outdb = 'C:\output\k51.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:
print File
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()
這段代碼也是會gdb格式的數(shù)據(jù)庫
使用
在arcmap中打開python窗口
將workspace 和outdb 修改成跟你自己的文件所在的路徑嘱兼。
將代碼拷貝到python窗口里,回車贤徒,程序開始執(zhí)行芹壕。
參考
在ArcGIS中使用ArcPython批量合并多個文件型地理數(shù)據(jù)庫(.gdb)或個人地理數(shù)據(jù)庫(.mdb)