999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Python的ArcGIS(Arcpy)數(shù)據(jù)檢查技術(shù)應(yīng)用

2021-07-15 08:23:02趙軍鵬
河北林業(yè)科技 2021年2期
關(guān)鍵詞:進(jìn)程一致性

趙軍鵬,劉 軍

(河北省林業(yè)和草原調(diào)查規(guī)劃設(shè)計(jì)院,河北 石家莊050051)

地理空間數(shù)據(jù)質(zhì)量的檢查一般包括兩種:數(shù)據(jù)拓?fù)潢P(guān)系檢查和數(shù)據(jù)邏輯一致性檢查。數(shù)據(jù)拓?fù)潢P(guān)系檢查既包括單個(gè)圖層的拓?fù)錂z查也包括多個(gè)圖層之間的拓?fù)錂z查;數(shù)據(jù)邏輯一致性檢查主要是根據(jù)屬性表中各字段本身或相互之間的各種邏輯關(guān)系,檢查各項(xiàng)數(shù)據(jù)是否正確。檢查的方法有很多,對(duì)于大批量的數(shù)據(jù),通常使用兩種方法:?jiǎn)芜M(jìn)程和多進(jìn)程批量處理。這里以河北省森林資源調(diào)查數(shù)據(jù)為例,介紹使用Arcpy對(duì)數(shù)據(jù)進(jìn)行檢查的方法。

1 Python及Arcpy簡(jiǎn)介

Python程序設(shè)計(jì)語(yǔ)言的設(shè)計(jì)哲學(xué)是“簡(jiǎn)單”、“明確”、“優(yōu)雅”,它既有簡(jiǎn)單腳本語(yǔ)言和解釋型程序語(yǔ)言的易用性,也擁有傳統(tǒng)編譯型程序語(yǔ)言所有強(qiáng)大通用的功能,另外它還是一種解釋型的、面向?qū)ο蟮摹в袆?dòng)態(tài)語(yǔ)義的高級(jí)程序設(shè)計(jì)語(yǔ)言。Python語(yǔ)法嚴(yán)格、可讀性強(qiáng)、易于學(xué)習(xí),提供了非常完善的基礎(chǔ)代碼庫(kù),同時(shí)又擁有大量的第三方庫(kù)用來(lái)實(shí)現(xiàn)各種功能,具有很強(qiáng)的移植性,使它成為很多軟件平臺(tái)上開(kāi)速編寫(xiě)腳本的理想語(yǔ)言。

作為ArcGIS自帶的Python站點(diǎn)包,ArcPy降低了ArcGIS開(kāi)發(fā)的門檻,面向的是廣泛的應(yīng)用GIS的專業(yè)人員,在ArcToolbox、Model Builder和Desktop定制插件中涌現(xiàn)了眾多的腳本,ArcPy成為ArcGIS應(yīng)用人員擴(kuò)展自定義功能的首選工具。

ArcPy是一個(gè)以arcgisscripting模塊為基礎(chǔ)并繼承了arcgisscripting功能進(jìn)而構(gòu)建而成的站點(diǎn)包。目的是為以實(shí)用高效的方式通過(guò)Python執(zhí)行地理數(shù)據(jù)分析、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)管理和地圖自動(dòng)化創(chuàng)建基礎(chǔ)。Arcpy分為大模塊,數(shù)據(jù)訪問(wèn)模塊,制圖模塊,Network Analyst模塊,Spatial Analyst模塊,時(shí)間模塊。用ArcPy編寫(xiě)的ArcGIS應(yīng)用程序可以使用多個(gè)不同領(lǐng)域的GIS專業(yè)人員和程序員組成的眾多Python小群體開(kāi)發(fā)的附加模塊。

2 任務(wù)分析

河北省森林資源調(diào)查數(shù)據(jù)的基礎(chǔ)數(shù)據(jù)包括兩個(gè)矢量圖層:小班層和林帶層。由于具有拓?fù)湫畔⒌氖噶繑?shù)據(jù)對(duì)GIS中的網(wǎng)絡(luò)分析以及空間關(guān)系分析非常重要,所以必須對(duì)矢量圖層進(jìn)行拓?fù)潢P(guān)系檢查。拓?fù)潢P(guān)系檢查需要對(duì)小班層和林帶層分別建立拓?fù)潢P(guān)系,小班層需要檢查各個(gè)小班是否有重疊,是否存在空隙;林帶層只檢查是否有重疊。數(shù)據(jù)邏輯一致性檢查要根據(jù)《河北省森林規(guī)劃調(diào)查技術(shù)細(xì)則》,檢查屬性表中二十幾個(gè)字段的值是否正確及字段間邏輯關(guān)系是否一致;小班層和林帶層還要檢查在森林面積統(tǒng)計(jì)中是否存在重復(fù)部分。

3 任務(wù)實(shí)現(xiàn)

3.1 數(shù)據(jù)拓?fù)潢P(guān)系檢查

空間數(shù)據(jù)檢查的流程如下:

新建一個(gè)文件地理數(shù)據(jù)庫(kù)(GDB)→新建一個(gè)要素?cái)?shù)據(jù)集(需要選擇投影坐標(biāo)系)→導(dǎo)入要檢查的矢量數(shù)據(jù)→新建拓?fù)洌ㄔ谶x擇拓?fù)淠繕?biāo)時(shí)選擇上一步導(dǎo)入的數(shù)據(jù))→添加拓?fù)湟?guī)則→驗(yàn)證拓?fù)洹贏rcGIS軟件中顯示所有錯(cuò)誤并修改→小班和林帶相交檢查→導(dǎo)出矢量數(shù)據(jù)。完整的技術(shù)路線如圖1所示。

圖1 空間數(shù)據(jù)檢查技術(shù)路線

3.2 數(shù)據(jù)邏輯一致性檢查

游標(biāo)(Cursor)是包括表格或要素類中的一行或多行數(shù)據(jù)的內(nèi)存對(duì)象,每一行都包含數(shù)據(jù)源中每個(gè)字段的屬性和每個(gè)要素的幾何特征。

數(shù)據(jù)邏輯一致性檢查的方法是使用游標(biāo)對(duì)屬性表逐行檢查,根據(jù)表中各列之間的邏輯關(guān)系判斷是否存在錯(cuò)誤,并把錯(cuò)誤原因?qū)懙健板e(cuò)誤”字段中。

新建“錯(cuò)誤”字段→更新面積(對(duì)面積小于667m2的小班歸并到臨近小班)→查看字段是否存在→判斷地類的值是否正確→清洗數(shù)據(jù),清除某些地類中一些字段的多余值→根據(jù)邏輯關(guān)系逐行查錯(cuò)→統(tǒng)計(jì)錯(cuò)誤數(shù)量并報(bào)告→修改錯(cuò)誤,并再次檢查,直到錯(cuò)誤統(tǒng)計(jì)為0。完整的技術(shù)路線圖如圖2所示。

圖2 數(shù)據(jù)邏輯一致性檢查技術(shù)路線

3.3 大量數(shù)據(jù)邏輯一致性檢查的實(shí)現(xiàn)方法

3.3.1 使用單進(jìn)程批量處理 在ArcMap中將所有需要進(jìn)行邏輯一致性檢查的數(shù)據(jù)放到mxd文檔中,在工具箱中創(chuàng)建腳本,數(shù)據(jù)類型選擇“ArcMap文檔”,運(yùn)行腳本時(shí)選擇mxd文檔,即可實(shí)現(xiàn)對(duì)文檔內(nèi)所有圖層的批量處理。

編寫(xiě)腳本時(shí),首先導(dǎo)入ArcPy、os模塊及相關(guān)附屬工具,并對(duì)工作環(huán)境進(jìn)行初始化設(shè)置,核心代碼如下:

#-*-coding:utf-8-*-

import sys,os,arcpy

reload(sys)

sys.setdefaultencoding(′utf-8′)

arcpy.env.overwriteOutput=True

然后定義一個(gè)函數(shù)AttributeChecking(fc),作為數(shù)據(jù)檢查的主函數(shù),在主函數(shù)下建立若干個(gè)子函數(shù)分別實(shí)現(xiàn)創(chuàng)建字段,計(jì)算面積,補(bǔ)全字段,數(shù)據(jù)清洗,邏輯檢查等功能,在main函數(shù)下引用此函數(shù)。批處理的核心代碼如下:

mxd0=arcpy.mapping.MapDocument(′CURRENT′)

df=arcpy.mapping.ListDataFrames(mxd0,"")[0]

inlayer=arcpy.mapping.ListLayers(mxd0,"",df)

for fc in inlayer:

AttributeChecking(fc)

3.3.2 使用多進(jìn)程處理 首先把所有的shapefile文件放到一個(gè)文件夾中。然后在python中新建一個(gè)列表,把所有文件的路徑全部放到列表中shape-FileList,核心代碼如下:

Import os,arcpy,multiprocessing

arcpy.env.workspace="D:\H"

shapeFileList=[]

featureclasses=arcpy.ListFeatureClasses()

for file in featureclasses:

fullpath=os.path.join("D:\H\",file)

再建立進(jìn)程池,使用異步非阻塞的方式處理數(shù)據(jù)。

MyGPool=multiprocessing.Poo(l)

# 多進(jìn)程并行處理

for sf in shapeFileList:

MyGPool.apply_async(AttributeChecking,(sf,))

MyGPool.close()

MyGPool.join()

4 運(yùn)行環(huán)境

以上計(jì)算基于如下運(yùn)行環(huán)境:

1) 中央處理器 CPU Intel(R)Xeon E5507(2.26GHz/4M)

2)內(nèi)存:32G

3)操作系統(tǒng):Win7 64bit操作系統(tǒng)

4)應(yīng)用軟件:ArcGIS 10.2,Python2.7.3,Pycharm 2019

5 結(jié)束語(yǔ)

Python語(yǔ)言作為一種面向?qū)ο蟮摹㈤_(kāi)放的解釋型腳本語(yǔ)言,功能強(qiáng)大而又易于學(xué)習(xí),基于其開(kāi)發(fā)的Arcpy站點(diǎn)包與ArcGIS系統(tǒng)實(shí)現(xiàn)的高度集成。利用ArcPy對(duì)數(shù)據(jù)整理檢查能提高工作效率,減輕工作量,且能保證計(jì)算準(zhǔn)確。對(duì)于大量數(shù)據(jù)的計(jì)算或檢查,使用多進(jìn)程能充分發(fā)揮電腦的機(jī)器性能,節(jié)省時(shí)間,但如果少量數(shù)據(jù)的話,單進(jìn)程批量處理速度更快。

猜你喜歡
進(jìn)程一致性
關(guān)注減污降碳協(xié)同的一致性和整體性
公民與法治(2022年5期)2022-07-29 00:47:28
注重教、學(xué)、評(píng)一致性 提高一輪復(fù)習(xí)效率
對(duì)歷史課堂教、學(xué)、評(píng)一體化(一致性)的幾點(diǎn)探討
IOl-master 700和Pentacam測(cè)量Kappa角一致性分析
債券市場(chǎng)對(duì)外開(kāi)放的進(jìn)程與展望
ONVIF的全新主張:一致性及最訪問(wèn)控制的Profile A
基于事件觸發(fā)的多智能體輸入飽和一致性控制
我國(guó)高等教育改革進(jìn)程與反思
Linux僵死進(jìn)程的產(chǎn)生與避免
男女平等進(jìn)程中出現(xiàn)的新矛盾和新問(wèn)題
主站蜘蛛池模板: 日韩国产高清无码| 国产香蕉在线| 全免费a级毛片免费看不卡| 亚洲综合精品香蕉久久网| 久久青草免费91线频观看不卡| 国产自在线播放| 在线网站18禁| 国产日本欧美在线观看| 婷婷综合在线观看丁香| a级毛片免费在线观看| 色综合a怡红院怡红院首页| 一本色道久久88综合日韩精品| 欧美a在线| 午夜不卡视频| 一级毛片免费播放视频| 亚洲无线视频| 色视频国产| 人妻少妇乱子伦精品无码专区毛片| 精品无码国产自产野外拍在线| 日韩在线影院| 精品超清无码视频在线观看| 夜夜高潮夜夜爽国产伦精品| 久久精品aⅴ无码中文字幕| 亚洲色欲色欲www网| 欧美激情二区三区| 五月天久久婷婷| 国产特级毛片| 全午夜免费一级毛片| 狠狠v日韩v欧美v| 国产精品一区在线麻豆| 久久国产毛片| 91丝袜美腿高跟国产极品老师| 91成人在线观看| 亚洲欧美h| 丰满的熟女一区二区三区l| 啊嗯不日本网站| 妇女自拍偷自拍亚洲精品| 亚洲免费三区| 精品国产成人三级在线观看| 欧美日本一区二区三区免费| 波多野结衣第一页| 久无码久无码av无码| v天堂中文在线| 国产国产人免费视频成18| 国产成人亚洲毛片| 成人伊人色一区二区三区| 欧美日韩国产系列在线观看| 无码区日韩专区免费系列| 无码视频国产精品一区二区 | 乱人伦视频中文字幕在线| 国产区福利小视频在线观看尤物| 欧美在线视频不卡第一页| 99精品福利视频| 亚洲精品成人片在线观看 | 九九免费观看全部免费视频| 国产一区亚洲一区| 一级爆乳无码av| 成人国产精品视频频| 露脸国产精品自产在线播| 亚洲不卡影院| 91国内视频在线观看| 亚洲人精品亚洲人成在线| 人人澡人人爽欧美一区| 久久99这里精品8国产| 凹凸国产分类在线观看| 欧美精品亚洲精品日韩专区| 中文字幕久久精品波多野结| 婷婷六月激情综合一区| 亚洲区视频在线观看| 精品伊人久久大香线蕉网站| 亚欧成人无码AV在线播放| 成人一区在线| 97狠狠操| 亚洲男人的天堂久久精品| 亚洲中文精品久久久久久不卡| 四虎AV麻豆| 国产人妖视频一区在线观看| 国产一区二区色淫影院| 精品成人一区二区| 视频二区国产精品职场同事| 91福利免费视频| 一本大道香蕉久中文在线播放|