• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于ArcPy的空間數(shù)據(jù)庫備份與還原技術(shù)研究

      2021-09-01 10:10:18江威馬藝文姚垚朱巧云王越
      城市勘測 2021年4期
      關(guān)鍵詞:批處理列表備份

      江威,馬藝文,姚垚,朱巧云,王越

      (1.武漢市測繪研究院,湖北 武漢 430022; 2.武漢市自然資源和規(guī)劃信息中心,湖北 武漢 430014)

      1 引 言

      Python作為一種高級(jí)程序設(shè)計(jì)語言,憑借其簡潔、易讀及可擴(kuò)展性日漸成為程序設(shè)計(jì)領(lǐng)域備受推崇的語言[1]。由于Python功能強(qiáng)大且具有廣泛的認(rèn)可度,Esri選擇它作為腳本語言嵌入到ArcGIS中[2]。ArcPy是以arcgisscripting模塊為基礎(chǔ)并繼承其功能構(gòu)建而成的站點(diǎn)包[3],從而更高效地通過Python實(shí)現(xiàn)地理數(shù)據(jù)分析、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)管理和地圖自動(dòng)化[4]。ArcGIS系列軟件中的地理處理幾乎包含了地理處理的全部核心功能和工具模塊,是軟件的精華所在,也是其被廣泛應(yīng)用的原因之一[5]。

      ArcGIS地理處理提供了一系列工具和一個(gè)標(biāo)準(zhǔn)框架來執(zhí)行分析并管理空間數(shù)據(jù)。本文通過分析ArcSDE庫相關(guān)技術(shù)特點(diǎn),在總結(jié)空間數(shù)據(jù)庫備份方法的基礎(chǔ)上,歸納整合了一套數(shù)據(jù)庫管理和遷移的技術(shù)流程,并結(jié)合ArcGIS平臺(tái)地理處理工具和ArcPy優(yōu)勢,開發(fā)了基于ArcPy的空間數(shù)據(jù)庫定時(shí)備份和還原功能,為地理空間數(shù)據(jù)庫的安全運(yùn)轉(zhuǎn)和基礎(chǔ)平臺(tái)的正常運(yùn)行提供了強(qiáng)有力的保障。

      2 常用空間數(shù)據(jù)庫備份方法比較

      (1)常規(guī)方法:ArcCatalog是ArcGIS Desktop軟件套件的組成部分,具有豐富的GIS工具。ArcCatalog應(yīng)用程序幫助用戶組織和管理所有的GIS信息,包括地圖、數(shù)據(jù)文件、Geodatabase、空間處理工具箱、元數(shù)據(jù)和服務(wù)等。Geodatabase是一個(gè)綜合性的數(shù)據(jù)模型,用于存儲(chǔ)、處理各類文件類型和數(shù)據(jù)類型的地理數(shù)據(jù),包括shapefile,CAD數(shù)據(jù)、TIN、格網(wǎng)、柵格影像等。使用ArcCatalog通過操作Geodatabase模型進(jìn)行空間數(shù)據(jù)的備份和還原操作是最常規(guī)的方法,該方法簡單快捷。

      (2)高階方法:ArcSDE地理數(shù)據(jù)庫支持多用戶協(xié)同編輯和使用,同時(shí)可以運(yùn)行于Oracle、SQL Server和PostgreSQL等數(shù)據(jù)庫之上。與個(gè)人地理數(shù)據(jù)庫(mdb)和文件地理數(shù)據(jù)庫(gdb)相比,ArcSDE Geodatabse除了支持多用戶編輯和數(shù)據(jù)庫版本化管理等優(yōu)勢外,還支持?jǐn)?shù)據(jù)庫命令行式的快捷高效管理。配置好ArcSDE對(duì)Oracle等數(shù)據(jù)庫的支持組件和服務(wù)后,使用sdeexport和sdeimport等命令可以輕松實(shí)現(xiàn)ArcSDE Geodatabase類型地理數(shù)據(jù)庫的綜合管理。

      (3)擴(kuò)展方法:FME Server能夠?qū)崿F(xiàn)企業(yè)應(yīng)用程序自動(dòng)集成,隨時(shí)隨地實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)換和分發(fā),從而提供企業(yè)級(jí)的數(shù)據(jù)集成和管理類型服務(wù)。FME Server通過schedules類型的工作空間完成定時(shí)轉(zhuǎn)換功能,在特定時(shí)間或日期在倉庫中啟動(dòng)工作空間,實(shí)現(xiàn)工作空間的一次或者重復(fù)運(yùn)行。

      (4)本文方法:基于原生Python站點(diǎn)包ArcPy實(shí)現(xiàn)地理數(shù)據(jù)分析、數(shù)據(jù)轉(zhuǎn)換和數(shù)據(jù)管理。

      常用的數(shù)據(jù)庫管理系統(tǒng)例如Oracle、SQL Server和PostgreSQL等均支持空間數(shù)據(jù)庫的創(chuàng)建、編輯和運(yùn)維管理。本文以O(shè)racle空間數(shù)據(jù)庫為例,使用ArcSDE作為數(shù)據(jù)驅(qū)動(dòng),介紹使用ArcPy包對(duì)空間數(shù)據(jù)庫進(jìn)行定時(shí)備份和還原的基本方法和技術(shù)流程。

      3 基于ArcPy的空間數(shù)據(jù)庫定時(shí)備份

      3.1 ArcPy備份空間數(shù)據(jù)庫

      ArcSDE Geodatabase類型空間數(shù)據(jù)庫通常具有數(shù)據(jù)量大和多用戶協(xié)同編輯等特點(diǎn),使用ArcPy對(duì)ArcSDE Geodatabase進(jìn)行備份的基本思路如下:首先遍歷ArcSDE,分別提取矢量數(shù)據(jù)集和矢量要素集。針對(duì)矢量數(shù)據(jù)集,遍歷其中的矢量要素集。最后將所有的矢量要素集備份到成果Geodatabase中,如圖1所示。

      圖1 技術(shù)路線圖

      ArcPy備份空間數(shù)據(jù)庫的主要步驟為:

      (1)基礎(chǔ)配置。包括導(dǎo)入Python包和開發(fā)環(huán)境設(shè)置。

      import arcpy

      import datetime

      import os

      arcpy.env.overwriteOutput = True

      arcpy.env.workspace = sde_con

      (2)創(chuàng)建目標(biāo)文件地理數(shù)據(jù)庫(gdb庫文件)。通過調(diào)用CreateFileGDB_management()函數(shù),實(shí)現(xiàn)“Create File GDB”工具的功能,即創(chuàng)建一個(gè)gdb庫文件。

      out_gdbname_sde = '{}{}'.format(gdbname_sde,str_td)

      out_gdb_sde = os.path.join(out_gdbpath,out_gdbname_sde + '.gdb')

      arcpy.CreateFileGDB_management(out_gdbpath,out_gdbname_sde,'CURRENT')

      (3)遍歷ArcSDE庫,返回矢量數(shù)據(jù)集列表和矢量要素集列表。使用arcpy.da.Walk()函數(shù)遍歷ArcSDE庫目錄,返回三元組包括工作空間、目錄名稱和文件名稱 (dirpath,dirnames,and filenames)。該函數(shù)類似于Python的os.walk()函數(shù),但是os.walk()基于文件,不能識(shí)別地理數(shù)據(jù)要素類、表或柵格等數(shù)據(jù)庫內(nèi)容。

      for dirpath,dirnames,filenames in arcpy.da.Walk(sde_con,datatype="FeatureClass",type=['Polygon','Polyline','Point'])

      (4)遍歷矢量數(shù)據(jù)集列表,分別獲取每個(gè)矢量數(shù)據(jù)集中包含的矢量要素集列表。在目標(biāo)gdb中創(chuàng)建同名數(shù)據(jù)集,將矢量要素集列表拷貝到創(chuàng)建的數(shù)據(jù)集中。通過調(diào)用CreateFeatureDataset_management()函數(shù),實(shí)現(xiàn)“Create Feature Dataset”工具的功能,即在目標(biāo)gdb中創(chuàng)建同名矢量數(shù)據(jù)集。然后調(diào)用列表函數(shù)ListFeatureClasses()獲取矢量數(shù)據(jù)集中所有要素類列表,遍歷該列表,調(diào)用函數(shù)CopyFeatures_management()將遍歷的要素類復(fù)制到目標(biāo)gdb對(duì)應(yīng)的矢量數(shù)據(jù)集中。

      (5)遍歷獨(dú)立的矢量要素集列表,調(diào)用函數(shù)CopyFeatures_management()復(fù)制要素集到目標(biāo)gdb。

      為避免ArcSDE的多個(gè)管理員用戶創(chuàng)建同名的矢量要素集在寫入到目標(biāo)gdb中出現(xiàn)錯(cuò)誤,對(duì)每個(gè)用戶創(chuàng)建的數(shù)據(jù)分別備份為獨(dú)立的成果gdb。

      3.2 定時(shí)備份任務(wù)調(diào)度

      Windows操作系統(tǒng)中自帶Task Scheduler(任務(wù)計(jì)劃程序)。將Task Scheduler和基于ArcPy的備份數(shù)據(jù)庫Python文件(.py)結(jié)合,根據(jù)實(shí)際需求實(shí)現(xiàn)數(shù)據(jù)庫定時(shí)備份的個(gè)性化調(diào)度,如圖2所示。使用任務(wù)計(jì)劃程序不需要工作人員與腳本交互操作,即可自動(dòng)執(zhí)行地理處理任務(wù),極大提高了工作效率。主要包括以下兩個(gè)步驟:

      圖2 定時(shí)備份任務(wù)調(diào)度

      (1)添加Python腳本到批處理文件(.bat)。批處理文件是包含運(yùn)行Python腳本的命令行序列,或者是執(zhí)行操作系統(tǒng)命令的文本文件。批處理文件中的內(nèi)容如下:

      cd C:Python27ArcGIS10.2

      python C:SdeBak.py

      pause

      (2)在規(guī)定的時(shí)間運(yùn)行批處理文件。批處理文件創(chuàng)建完成后,使用Task Scheduler在規(guī)定的時(shí)間運(yùn)行該批處理文件。通過新建一個(gè)啟動(dòng)程序,設(shè)置執(zhí)行時(shí)間并指向批處理文件。

      4 基于ArcPy的空間數(shù)據(jù)庫還原

      數(shù)據(jù)庫管理工作中常常需要將地理空間數(shù)據(jù)遷移到性能配置更高級(jí)的服務(wù)器上或者遷移到遠(yuǎn)程的機(jī)房?;贏rcPy的地理空間數(shù)據(jù)庫還原技術(shù),為數(shù)據(jù)庫遷移提供了極大的便利性??臻g數(shù)據(jù)庫還原是空間數(shù)據(jù)庫備份的逆操作,基于ArcPy將本地的gdb數(shù)據(jù)還原到ArcSDE Geodatabase中進(jìn)行數(shù)據(jù)還原的基本思路如下:遍歷本地gdb,分別提取矢量數(shù)據(jù)集和矢量要素集。針對(duì)矢量數(shù)據(jù)集,遍歷其中的矢量要素集。最后將所有的矢量要素集備份到ArcSDE Geodatabase中。

      (1)基礎(chǔ)配置。與3.1中步驟相同。

      (2)調(diào)用ListDatasets()函數(shù)獲取矢量數(shù)據(jù)集列表,然后在ArcSDE Geodatabase中創(chuàng)建同名矢量數(shù)據(jù)集。遍歷數(shù)據(jù)集獲取每個(gè)數(shù)據(jù)集中的要素集列表,通過調(diào)用FeatureClassToGeodatabase_conversion()函數(shù)將列表中要素集導(dǎo)入到數(shù)據(jù)集中。

      (3)調(diào)用ListFeatureClasses()函數(shù)獲取獨(dú)立矢量要素集列表,遍歷要素集列表,調(diào)用FeatureClassToGeodatabase_conversion()函數(shù)將獨(dú)立要素集還原至ArcSDE Geodatabase中。

      5 結(jié) 語

      本文結(jié)合基礎(chǔ)地理信息相關(guān)平臺(tái)開發(fā)和維護(hù)工作中數(shù)據(jù)庫管理需求,利用ArcPy站點(diǎn)包強(qiáng)大的地理處理能力,實(shí)現(xiàn)了地理空間數(shù)據(jù)庫的定時(shí)備份和還原。實(shí)際工作證明,通過Python腳本語言處理GIS領(lǐng)域數(shù)據(jù)方便可行,支持?jǐn)?shù)據(jù)批量處理,能夠有效提高工作效率[6],為數(shù)據(jù)庫管理的實(shí)施提供了更大的靈活性。

      猜你喜歡
      批處理列表備份
      巧用列表來推理
      “備份”25年:鄧清明圓夢
      學(xué)習(xí)運(yùn)用列表法
      擴(kuò)列吧
      淺析數(shù)據(jù)的備份策略
      科技視界(2015年6期)2015-08-15 00:54:11
      基于PSD-BPA的暫態(tài)穩(wěn)定控制批處理計(jì)算方法的實(shí)現(xiàn)
      不含3-圈的1-平面圖的列表邊染色與列表全染色
      出版原圖數(shù)據(jù)庫遷移與備份恢復(fù)
      批處理天地.文件分類超輕松
      批處理天地.批量為文件更名(續(xù))
      仲巴县| 达州市| 大庆市| 宿迁市| 芮城县| 米泉市| 莒南县| 鲁甸县| 宁南县| 临颍县| 澄城县| 兴国县| 临猗县| 上犹县| 松潘县| 沙田区| 双鸭山市| 阳城县| 涿州市| 武汉市| 陇西县| 蒙山县| 南投市| 江西省| 普洱| 阿勒泰市| 泉州市| 南部县| 通道| 蓬莱市| 江永县| 财经| 兰溪市| 郧西县| 任丘市| 呼和浩特市| 赤峰市| 兴文县| 罗定市| 娱乐| 甘谷县|