批量合並GDB


    在實際操作中,經常對數據庫文件進行合並、裁切等。如果遇到gdb比較多,要素層比較多,而且還存在數據集。雖然ArcGIS中的批量處理的功能,但填寫參數過程也比較麻煩,如果一次性處理過多,程序容易停止工作。

    所以,選用Python來處理這樣的問題,優勢就非常明顯了。把路徑設置好,讀取數據庫及要素類,然后進行合並操作。下面是Python示例代碼:

# ---------------------------------------------------------------------------
# Purpose : AppendGDB
# Author :gisweis
# Date :2015.2.4
# Version : ArcGIS 10.1
# Email :liweis2014@hotmail.com
# Notes :Don't support dataset
# ---------------------------------------------------------------------------
 
import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )
import arcpy
import string
 
try:
    workspace = arcpy.GetParameterAsText(0) #input workspace
    outdb = arcpy.GetParameterAsText(1) #out db
 
    #target fc,but don't support dataset
    arcpy.env.workspace=outdb
    fcs = arcpy.ListFeatureClasses()
 
    arcpy.env.workspace=workspace
    for File in arcpy.ListFiles("*.*db"):
        for fc in fcs:
            arcpy.Append_management(File+"\\"+fc, outdb+"\\"+fc)
except arcpy.ExecuteError:
    print arcpy.GetMessages()

  

    這里需要說明的是:

  1. 此代碼不支持包含數據集(dataset)的數據庫,如果存在這種情況,可根據實際情況來設置輸入和輸出的路徑。如arcpy.Append_management(File+"\\dlg\\"+fc, outdb+"\\ dlg \\" +fc),這里的dlg即為數據庫中的數據集,如果存在多個數據集,則需要讀取數據集,這樣的功能將在后續進行完善;
  2. 代碼中11、12行是重載編碼,但這樣的結果是print無輸出(環境:Win7 x64+Python2.7),這是因為忽略了UNICODE,把ASCII直接傳給UTF-8,顯示有問題是正常的。注釋即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM