• 
    

    
    

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

      ?

      基于ArcPy的矢量數(shù)據(jù)批處理方法研究

      2017-08-24 14:15:28曹斌
      科技創(chuàng)新與應用 2017年21期
      關鍵詞:游標批處理數(shù)據(jù)處理

      曹斌

      摘 要:文章以地形測量成果的數(shù)據(jù)處理為例,探討了利用ArcPy進行矢量數(shù)據(jù)批處理的方法,完成了數(shù)據(jù)分層、屬性信息修改、數(shù)據(jù)合并、數(shù)據(jù)檢查等多個操作,并實現(xiàn)了上述操作的批量自動化處理,為今后進行矢量數(shù)據(jù)批處理提供了一套行之有效的解決方案。

      關鍵詞:Python;ArcPy;地理處理;空間數(shù)據(jù)

      中圖分類號:P413 文獻標志碼:A 文章編號:2095-2945(2017)21-0090-02

      1 概述

      地理處理是GIS的一個重要組成部分,從本質上來說地理處理就是對空間數(shù)據(jù)的處理,也就是空間分析。ArcGIS提供了眾多地理處理工具,但這些工具一般都是對某一數(shù)據(jù)集執(zhí)行單一操作。但在實際項目中,常常需要對空間數(shù)據(jù)進行如投影變換、字段編輯、數(shù)據(jù)轉換等多種操作的批量處理,這需要數(shù)據(jù)處理人員進行大量重復性手動操作,既增加了工作量,又容易出錯,非常不利于提高數(shù)據(jù)處理效率。

      ArcGIS 9.0社區(qū)中引入了Python,使用Python和ArcPy站點包,可以開發(fā)出大量用于處理地理數(shù)據(jù)的實用程序,能夠實現(xiàn)空間數(shù)據(jù)的批量自動化處理。本文以地形測量成果的數(shù)據(jù)處理為例,探討了ArcPy在矢量數(shù)據(jù)批處理中的應用。

      2 ArcPy簡介

      Python是由Guido van Rossum在1991年推出的一種不受局限、跨平臺的開源編程語言,由于Python處理速度快、功能強大且具有廣泛的認可度,ESRI選擇它作為腳本語言嵌入ArcGIS中。Python最早集成于ArcGIS 9.0,并作為地理處理腳本語言得以不斷發(fā)展,到ArcGIS 10采用了ArcPy。ArcPy是一個原生的Python站點包,它涵蓋并進一步加強了ArcGIS 9.2/9.3中所采用的arcgisscripting模塊的功能,為用戶提供了使用Python語言操作所有地理處理工具的入口,并提供了多種有用的函數(shù)和類,以用于處理和詢問GIS數(shù)據(jù)。

      ArcPy的使用方法可歸納為以下三種:

      (1)在命令行窗口中使用ArcPy

      安裝ArcGIS之后將自動安裝相應的Python安裝包,運行Python IDLE,即打開一個命令窗口,輸入“import arcpy”,就可以使用ArcPy提供的類與函數(shù)。另一種命令窗口內(nèi)嵌于ArcMap,點擊ArcMap工具欄中的 圖標,將在ArcMap中打開命令行窗口,利用該窗口不僅可使用ArcPy,還提供關于ArcPy的幫助文檔,對初學者來說非常有幫助。

      (2)在Python腳本文件中使用ArcPy

      使用ArcPy最方便的方式是腳本文件,我們可以利用記事本或是Python IDLE創(chuàng)建或編輯腳本文件,腳本文件以.py結尾。在Python IDLE中打開腳本文件后,點擊Run->Run Module將運行腳本文件,并輸出相應的提示信息。

      (3)利用ArcPy創(chuàng)建地理處理工具

      使用ArcPy的第三種方法是利用ArcPy創(chuàng)建地理處理工具,該工具將作為ArcCatalog中的自定義工具使用,其使用方法與ArcToolbox中工具的使用方法類似,它能夠以對話框的形式接受用戶的各種輸入?yún)?shù),并依據(jù)用戶設置的輸出參數(shù)展示結果。

      3 ArcPy數(shù)據(jù)批處理實例

      下面以地形測量成果的數(shù)據(jù)處理為例,給出基于ArcPy的數(shù)據(jù)批處理流程圖及其具體實現(xiàn)。

      3.1 數(shù)據(jù)處理流程

      首先按照1:1000比例尺地形圖的測繪要求對整個測區(qū)進行數(shù)字化地形修、實測,獲得高精度的地形數(shù)據(jù),選用EPS2008為工作軟件導出MDB格式的地形測量成果,依據(jù)編制定的地理要素分類及編碼規(guī)則對MDB數(shù)據(jù)進行批處理,最終獲得符合客戶要求的成果數(shù)據(jù)。

      3.2 主要應用函數(shù)

      3.2.1 使用列表函數(shù)

      在地形測量成果數(shù)據(jù)處理中,主要有兩個地方需要應用到列表函數(shù):

      (1)獲取所有待處理的地形成果文件

      待處理的地形測量成果是以村為單位分批提交,所有文件均以各村的數(shù)字編碼命名。要對上述數(shù)據(jù)進行處理,首先要遍歷獲取當前工作空間中的所有待處理的personal geodatabase文件,這里需要使用列表函數(shù)ListWorkspaces。函數(shù)ListWorkspaces中參數(shù)Access表示返回工作目錄下的所有personal geodatabase,若要返回工作目錄下的所有file geodatabase則需要將參數(shù)設置為FileGDB。

      (2)遍歷數(shù)據(jù)庫文件中的特征類

      上述personal geodatabase文件中包含若干特征類,這里我們同樣需要使用列表函數(shù)獲取數(shù)據(jù)庫文件中所有的特征類,并依據(jù)地理要素分類及編碼規(guī)則,對每個特征類執(zhí)行相應的轉換操作。

      3.2.2 創(chuàng)建模板文件

      依據(jù)技術設計中要素分類及編碼規(guī)則創(chuàng)建模板文件,共涉及房屋、圍墻、道路、水系等15項地物大類,每個地物大類又分為若干小類,如房屋就包括建成房屋、簡易房屋、棚房、廊房4個小類,共計60項地物小類。

      3.2.3 使用游標訪問數(shù)據(jù)

      在進行上述數(shù)據(jù)處理過程中最重要的一個步驟就是依據(jù)地理要素分類及編碼規(guī)則進行批量數(shù)據(jù)讀寫,這里就需要使用游標訪問數(shù)據(jù)。

      游標是一種數(shù)據(jù)訪問對象,可用以在表中迭代一組行,或向表中插入新行。游標有三種形式:搜索、插入、更新,對應的函數(shù)分別為SearchCursor、InsertCursor、UpdateCursor。關于游標需要注意一點,插入和更新游標遵循由ArcGIS應用程序設置的表鎖,訪問表或數(shù)據(jù)將應用共享鎖,對表或數(shù)據(jù)集進行更改則采用排它鎖。當數(shù)據(jù)集上存在排它鎖時,將無法創(chuàng)建更新和插入游標。因此,在插入和更新操作完成后必須及時釋放鎖。

      這里我們主要用到的是搜索游標和插入游標。使用搜索游標遍歷原始數(shù)據(jù)中的所有記錄,依據(jù)一定的規(guī)則,向模板文件中插入新記錄。這里還是以對道路對象的處理為例,說明如何使用游標訪問數(shù)據(jù)。道路對象的原始數(shù)據(jù)存儲于MDB文件的Road_Polygon_A特征類中,模板文件為Road_A.shp。

      3.2.4 使用疊加分析工具集

      疊加分析是用于解決“什么在什么上?”這一基本GIS問題的分析方法,依據(jù)處理的數(shù)據(jù)類型,疊加分析可分為矢量疊加和柵格疊加。其中,矢量疊加工具包括擦除、標識、相交、交集取反、聯(lián)合、更新。

      在本案例中,按要求必須采集地理要素的邊界線并構面,且面狀地物之間不能存在疊加覆蓋的情況,這就要求我們對所有面狀特征類進行空間關系檢查。利用疊加分析工具集中的相交工具可以快速實現(xiàn)。

      對建成房屋(Building_A.shp)和其他用地(LandEx_A.shp)使用相交工具,將運算結果另存為Building_LandEx.shp文件,輸入數(shù)據(jù)和輸出結果如圖1所示。

      從上述輸出結果不難發(fā)現(xiàn),建成房屋和其他用地存在明顯的相互覆蓋的情況,這說明在進行面狀要素構面時存在問題,應及時更正。

      3.3 批處理成果

      地形測量數(shù)據(jù)批處理的成果包括矢量數(shù)據(jù)文件和成果報告。

      4 結束語

      本文以地形測量成果的數(shù)據(jù)處理為例,探討了ArcPy在矢量數(shù)據(jù)批處理中的應用,完成了數(shù)據(jù)合并、批量數(shù)據(jù)轉換、矢量數(shù)據(jù)疊加分析等操作,并實現(xiàn)了上述操作的自動化處理。以往用編程方式完成上述數(shù)據(jù)處理任務時,主要采用ArcGIS Engine或是其他數(shù)據(jù)處理開發(fā)包實現(xiàn),其編程門檻相對較高,主要面向的是專業(yè)開發(fā)人員。實踐證明ArcPy顯著降低了編程的門檻,在開發(fā)地理處理工具和空間數(shù)據(jù)批量自動化處理應用程序方面具有顯著優(yōu)勢,為今后開展相關工作提供了一種新的解決方案。

      參考文獻:

      [1]Eric Pimpler. Programming ArcGIS 10.1 with Python Cookbook [M].Birmingham: Packt, 2013.

      [2]孫咸磊,許捍衛(wèi),李文博.ArcPy在長江河道水下空間數(shù)據(jù)批量處理中的應用[J].測繪與空間地理信息,2015,38(2):97-99.

      [3]余詠勝,彭艷麗,尹言軍,等.基于Arcpy的影像地圖自動處理技術研究[J].測繪通報,2015(3):82-85.

      猜你喜歡
      游標批處理數(shù)據(jù)處理
      認知診斷缺失數(shù)據(jù)處理方法的比較:零替換、多重插補與極大似然估計法*
      心理學報(2022年4期)2022-04-12 07:38:02
      MySQL數(shù)據(jù)庫下游標的設計與應用
      ILWT-EEMD數(shù)據(jù)處理的ELM滾動軸承故障診斷
      水泵技術(2021年3期)2021-08-14 02:09:20
      測量不確定度在游標式輪對內(nèi)距尺檢定裝置中的應用
      基于希爾伯特- 黃變換的去噪法在外測數(shù)據(jù)處理中的應用
      SQL數(shù)據(jù)庫中基于游標的數(shù)據(jù)更新
      電腦與電信(2015年9期)2015-04-16 01:30:10
      基于PSD-BPA的暫態(tài)穩(wěn)定控制批處理計算方法的實現(xiàn)
      基于POS AV610與PPP的車輛導航數(shù)據(jù)處理
      基于SQL游標的研究與應用
      批處理天地.文件分類超輕松
      聂荣县| 扬州市| 云梦县| 郑州市| 常山县| 木兰县| 苏尼特左旗| 永昌县| 辽宁省| 新化县| 乐昌市| 吴桥县| 井冈山市| 德化县| 宁强县| 左云县| 界首市| 鱼台县| 巴楚县| 台东市| 读书| 多伦县| 黄浦区| 莱阳市| 合阳县| 于田县| 思茅市| 鹤峰县| 宜城市| 博罗县| 常宁市| 光山县| 齐河县| 康马县| 富阳市| 河津市| 和平区| 沐川县| 阳高县| 芮城县| 汶川县|