arcpy批量合併資料庫

2021-10-07 14:43:44 字數 2225 閱讀 2052

最近做生態保護紅線評估調整工作,需要以市州為單位提交資料庫,省級又要以省為單位提交到國家,作業的時候是以縣為單位來做的。這中間就涉及到很多資料庫合併的事情了。本來是打算偷懶,用在網上找的乙個超級工具裡的合併資料庫工具來合,結果用不起,最終還是得靠自己,老老實實寫乙個吧,應該不難。

就像這樣,一堆資料庫,資料庫下資料集,資料集下有要素。這只是乙個州的。

之前已經用**建立了乙個模板資料庫了,這次開發就以模板資料庫為底,把地方資料庫裡的資料追加到我的模板庫里來。資料庫裡有資料集,資料集下面才是要素。對於沒有資料集只有要素的資料庫,還沒管它,下回更新。

設計思路就是選擇一堆我要合併的資料庫,找乙個模板庫,然後開始合併。

在做的過程中,發現乙個問題,有的電腦環境下,我輸入了一堆資料庫,輸入的值會有引號,在有的電腦下又不會,不知道是什麼導致的,暫時先認為它是arcgis在不同環境下結果不一樣吧。

話不多說,直接貼**:

###################

import arcpy

import os

import sys

reload

(sys)

sys.setdefaultencoding(

'utf8'

)inputgdb = arcpy.getparameterastext(0)

outputgdb = arcpy.getparameterastext(1)

schematype =

"no_test"

""subtype =

""flielist = inputgdb.split(

";")

fxsjlist =

''.join(inputgdb)

arcpy.addmessage(u"\n"

+ fxsjlist + u"\n"

)arcpy.env.workspace = outputgdb

dcs = arcpy.listdatasets(

)for file in flielist :

if"'"

==str

(file)[0

:1]:

filelj = file.split(

"'")[1

]else

: filelj = file

filename = os.path.basename(file)

arcpy.addmessage(u"\n 正在對 "

+ filename + u" 進行合併\n"

) datasets = arcpy.listdatasets(feature_type=

'feature'

) datasets =[''

]+ datasets if datasets is

notnone

else

for ds in datasets:

for fc in arcpy.listfeatureclasses(feature_dataset=ds)

: path = os.path.join(arcpy.env.workspace, ds, fc)

fcname = os.path.basename(fc)

.split(

".")[0

] arcpy.addmessage(u"\n "

+ fcname + u"\n"

) bdfclj = os.path.join(filelj, ds, fc)

arcpy.addmessage(bdfclj)

arcpy.addmessage(path)

if arcpy.exists(bdfclj)

: arcpy.addmessage(u" 追加 "

+ fcname + u" 圖層成功\n"

)else

: arcpy.addmessage(u" 資料庫內不存在 "

+ fcname + u" 圖層,跳過\n"

)

arcpy批量合併shp

import arcpy shuju r c users documents arcgis default.gdb arcpy.env.workspace shuju fcs arcpy.listfeatureclasses lspt for fc in fcs arcpy.merge manage...

資料庫合併

有時候遇到這樣乙個需求,想把資料庫a中a1表中的資料合併到資料庫b中b1表中,應該是個很常見又很合理的需求。我是這樣做的 1 開啟兩個資料庫 我使用的是視覺化軟體sqliteexpert 2 右鍵資料庫b,attach database,選擇資料庫a 3 寫sql語句,insert into b1 ...

批量建立資料庫

借助powershell,我們可以輕鬆地進行批量建立資料庫,下面將詳細介紹一下 接下來,我們可以使用如下的cmdlet來實現我們的目標 執行完之後,我們重新整理一下ssms的資料庫,3個資料庫均已建立ok 對於上面出現的提供程式上下文警告,我們可以使用 suppressprovidercontext...