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

ArcPy腳本在新型基礎測繪中的應用研究

2023-12-31 00:00:00馬福生臧珂楊春光
科技創新與應用 2023年31期

摘" 要:在日常數據處理過程中,由于空間數據的數據量較大,在對其進行重復性數據處理工作中,工作人員需進行大量手動操作且容易出錯。空間數據的自動批處理可以大幅度降低數據處理人員的工作強度,提高工作效率。結合山東省新型基礎測繪生產項目,使用ArcPy腳本對一些重復性的工作進行批處理,實現數據分發、影像挑選、數據合并等的批量操作,為ArcPy腳本在空間數據自動批處理中的應用提供一種可行且高效的方案。

關鍵詞:新型基礎測繪;ArcPy;批處理;數據分發;影像挑選

中圖分類號:P208" " " "文獻標志碼:A" " " " " 文章編號:2095-2945(2023)31-0177-04

Abstract: In the daily data processing process, due to the large amount of spatial data, staff need to do a lot of manual operations and are prone to errors in the repetitive data processing. Automatic batch processing of spatial data can greatly reduce the work intensity of data processors and improve work efficiency. Combined with the new basic surveying and mapping production project in Shandong Province, ArcPy script is used to batch some repetitive work, and the batch operations of data distribution, image selection and data merging are realized, which provides a feasible and efficient scheme for the application of ArcPy script in automatic batch processing of spatial data.

Keywords: new basic surveying and mapping; ArcPy; batch processing; data distribution; image selection

在日常數據處理過程中,由于空間數據的數據量較大,在對其進行投影變換、字段編輯、拼接裁剪和數據轉換等重復性數據處理工作中,工作人員需進行大量手動操作且容易出錯[1]。為了降低數據處理人員的工作強度,提高工作效率,使用ArcPy腳本進行自動化處理是一種有效的方法。ArcPy腳本在矢量數據處理中已有較多應用,李乃強[2]、吳后清等[3]分別討論了其在地理空間數據質量控制方面的應用,鄭繼武等[4]基于ArcPy研究了大比例尺地形圖圖幅結合表的自動繪制方法,袁玏[5]研究了其在農村土地承包經營權地塊處理中的應用,本文以山東省新型基礎測繪生產工作為例,探討了使用ArcGIS中腳本工具包ArcPy進行數據自動批處理的可行性,為ArcPy在空間數據處理中的應用提供了一種可行且高效的方案。

1" ArcPy簡介

ArcGIS是一款具有強大功能的地理信息數據處理軟件,本身就帶有許多地理信息數據處理工具,能夠很好地滿足日常工作中大部分情況下的數據處理工作,但其無法滿足某些用戶個性化的數據處理流程,因此,ArcGIS推出了ArcPy[6]。

ArcPy是一個以成功的arcgisscripting模塊為基礎并繼承了arcgisscripting功能構建而成的站點包,目的是以實用高效的方式通過Python執行地理數據分析、數據轉換、數據管理和地圖自動化創建基礎[7]。使用ArcPy的另一個主要原因是,Python是一種通用的編程語言。它是一種支持動態輸入的解釋型語言,適用于交互操作以及一次性程序(即腳本)快速原型制作,同時具有編寫大型應用程序的強大功能。用ArcPy編寫的ArcGIS應用程序的優勢在于,可以使用由多個不同領域的GIS專業人員和程序員組成的眾多Python小群體開發的附加模塊[8]。

1.1" ArcPy模塊

模塊為包含函數和類的Python文件。ArcPy由數據訪問模塊(arcpy.da)、制圖模塊(arcpy.mapping)、ArcG IS Spatial Analyst擴展模塊(arcpy.sa),以及ArcG IS Network Analyst擴展模塊(arcpy.na) 等一系列模塊支持,這些模塊分別集成不同的功能。

1.2" ArcPy類

類的作用類似于建筑設計藍圖。藍圖為如何創建事物提供了一個框架。類可用于創建對象,即通常所說的實例。ArcPy類,如SpatialReference和Extent類,通常用作地理處理工具參數設置的快捷方式,否則的話,這些參數會使用更加復雜的字符串。

1.3" ArcPy函數

函數是用于執行某項特定任務并能夠納入更大的程序的已定義功能。在ArcPy中,所有地理處理工具均以函數形式提供,但并非所有函數都是地理處理工具。除工具之外,ArcPy還提供多種函數來更好地支持Python地理處理工作流。函數(通常稱為方法)可用于列出某些數據集、檢索數據集的屬性、在將表添加到地理數據庫之前驗證表名稱,或執行其他許多有用的腳本任務。

2" 生產中遇到的問題

基礎測繪是測繪事業的核心組成部分,對于國防建設、經濟建設、社會發展和生態保護具有重要意義,同時為自然資源管理、公共安全與應急管理等提供數據支持和技術保障。新型基礎測繪是基礎測繪在新時代的轉型升級,其成果具有全域覆蓋、數據量大、內容豐富等突出特點,這也使得在生產過程中會面臨大量耗時且重復性的工作,影響工作效率。為了降低工作人員的工作強度,提高工作效率,使用ArcPy對一些重復性的工作進行批處理是一種有效的方法。

在山東省“十四五”基礎測繪規劃中,計劃5 a內實現基于0.2 m分辨率影像全省更新一遍以及基于0.5 m分辨率影像的年度更新, 更新內容包括山體、水系、冰雪、海洋、農林用地與土質、高程、水利、交通、建(構)筑物及場地設施、管線、院落、人工地貌、行政區劃單元、地名地址、國土空間規劃單元和其他管理單元等。相比“十三五”的5 a全省基于0.5 m分辨率影像更新一輪,任務比以前成倍地增加,因此在分發任務的過程中需要更多的時間來處理更多的數據量。

另一方面,在“十三五”基礎測繪中普遍使用的是0.5 m分辨率的影像,按照1∶10 000的圖幅進行分幅,每幅圖面積為25 km2,單個子任務區使用的影像數量不多,人工挑選耗時并不明顯。由于“十四五”基礎測繪使用的0.2 m分辨率的影像是基于1∶2 000的圖幅進行分幅,即每幅圖面積為1 km2,因此更新中每個子任務區使用的影像呈現指數級增加,人工挑選耗時明顯增加。

以上2個問題均為重復性的海量數據處理問題,利用ArcPy站點包可以很好地解決這個問題。

3" ArcPy在生產中的應用

3.1" 數據分發

在基礎測繪實際生產中,由于工期的限制,每個任務區需要分為多個子任務區由不同的作業員完成,因此在任務分配過程中涉及數據分發的問題。傳統的做法是利用Arcgis制作矢量的任務分塊圖,然后由作業員自己對原始數據進行裁切,這樣每個作業員需要處理一遍數據。由此想到使用ArcPy腳本,根據分配好的任務分塊圖對多個原始數據進行統一分配及裁切,能大大節省任務分配的時間。

腳本具體思路為:先將制作好的矢量任務分塊圖對自身進行分割處理,形成多個子任務分塊圖,然后使用分割好的子任務分塊圖對數據進行裁剪,使用“原始數據+作業員”的格式對裁切后的數據命名,處理流程如圖1所示。

部分代碼如下:

for fenkuai in arcpy.ListFiles(\"*.shp\"):

arcpy.Split_analysis(fenkuai,fenkuai, “作業員“, data_path+\"/guocheng\", \"\")

for shuju in arcpy.ListFiles(\"*.gdb\"):

env.workspace = data_path+\"/guocheng\"

for fenkuai2 in arcpy.ListFiles(\"*.shp\"):

clip_name=os.path.splitext(shuju)[0]+\"_\"+os.path.splitext(fenkuai2)[0]+\".gdb\"

arcpy.CreateFileGDB_management(data_path+ \"/jieguo\",clip_name, \"9.3\")

env.workspace = data_path+\"/\"+shuju

for shapefile in arcpy.ListFeatureClasses():

arcpy.Clip_analysis(shapefile, data_path + \"/guocheng/\" + fenkuai2,data_path + \"/jieguo/\" + clip_name + \"/\" + shapefile)

腳本在ArcGIS集成軟件IDLE中運行,將數據放入指定文件夾中,即可實現自動運行。運行過程中顯示每個gdb數據庫的操作過程,可以實現實時監控,保證數據處理的準確性。對于裁切后的數據,每個作業員根據分配結果選取自己的任務區進行直接生產。

3.2" 影像挑選

每個任務區的影像在分發時在一個文件夾下,作業員需要根據自己的子任務區進行挑選。根據分配任務區大小的不同,每個作業員在單個任務區生產中需要挑選的影像為50~200 mm不等,人工挑選耗費時間且容易出錯,再次想到使用ArcPy腳本,根據子任務區與圖幅的空間關系進行批量挑選。

影像挑選的腳本思路為:對子任務區和影像結合表進行相交處理,得到子任務區需要的影像結合表,將相交后的影像結合表中的影像名稱提取到數組中,根據提取數組中的影像名在原文件夾里將影像復制到目標文件夾內,處理流程如圖2所示。

部分代碼如下:

arcpy.SpatialJoin_analysis(rwfk_shp, DLGfenfu_shp,

jieguo2, \"JOIN_ONE_TO_MANY\", \"KEEP_ALL\",\"\", \"INTERSECT\", \"\", \"\")

arcpy.AddField_management(jieguo2, \"domtif\",\"TEXT\",\"\",\"\",\"20\",\"\",NULLABLE\",\"\", \"\")

arcpy.CalculateField_management(jieguo2, \" domtif \",\"!NAME! +\\".tif\\"\",\"\", \"\")

arcpy.AddField_management(jieguo2, \"domtfw\",\"TEXT\",\"\",\"\",\"20\",\"\", ULLABLE\", \"\", \"\")

arcpy.CalculateField_management(jieguo2, \" domtfw \", \"!NAME! + \\".tfw\\"\", \"\", \"\")

shpfields = [' domtif ', ' domtfw ']

shp_TXT = []

shprows = arcpy.SearchCursor(jieguo2, shpfields)

while True:

shprow = shprows.next()

if not shprow:

break

shp_TXT.append(shprow. domtif)

shp_TXT.append(shprow. domtfw)

for i in range(0, len(shp_TXT)):

if arcpy.Exists(src_file+'/'+shp_TXT[i]):

shutil.copy(src_file+'/'+shp_TXT[i],

dst_file)

else:

print src_file+'\\'+shp_TXT[i]+u\"不存在!\"

生產中根據實際情況將原始數據路徑設置好,點擊運行即可實現影像的自動挑選,挑選過程在后臺運行,不影響作業員處理其他工作,速度數倍快于人工,并且不會出現挑選錯誤的情況。

3.3" 數據合并

由于基礎測繪數據存儲時是按縣級任務區進行組織的,因此需要對每個作業員生產完成的單個子任務區數據進行合并處理,并按要求對數據進行接邊。由于接邊需要人工干預過程,因此考慮使用ArcPy腳本進行前期自動處理,后期人工干預。

腳本具體思路為:遍歷文件夾中的數據庫文件,將每個數據庫的相應圖層一一追加至模板數據庫中,追加完成后,對每個圖層的數據根據各自屬性進行預接邊,即融合處理,再將融合后的數據追加到模板中,處理流程如圖3所示。

部分代碼如下:

f_list=arcpy.ListFiles(\"*.gdb\")

env.workspace = path+\"/\"+mb_name

fcList = arcpy.ListFeatureClasses()

for f in f_list:

for shapefile in fcList:

arcpy.Append_management(path+\"/shuju/\"+f+\"/\"+shapefile,

path+\"/\"+mb_name+\"/\"+shapefile,\"NO_TEST\",\"\")

arcpy.CreateFileGDB_management (path+\"/DIS_gdb\",mb_name, \"9.3\")

arcpy.Dissolve_management(path+\"/\"+mb_name+\"/HFCL\",path+\"/DIS_gdb/\"+mb_name+\"/HFCL\", \"…………\", \"\", \"SINGLE_PART\", \"DISSOLVE_LINES\")#根據實際情況定義融合字段

disfcList=[\"HFCL\",…………]#需要融合的圖層

for i in disfcList:

arcpy.TruncateTable_management(path+\"/\"+mb_name+\"/\"+i)

arcpy.Append_management(path+\"/DIS_gdb/\"+mb_name+\"/\"+i,

path+\"/\"+mb_name+\"/\"+i,\"NO_TEST\",\"\")

腳本會對各作業員提交的分塊數據進行合并,并進行初步融合處理,在分界線兩側數據均無變化的情況下實現效果較好,個別變化的細節需要后期人工干預加以判斷。經實際生產驗證,采用此種人機交互的方式,合圖速度有明顯提升。

4" 工程實例

本文基于“十四五”新型基礎測繪生產項目,選取具有代表性的幾個任務區,分別采用原始方法和文中腳本進行數據的分發、合并以及影像的挑選工作。以樣本任務區A區為例,使各子任務區作業員使用原始方法進行以上工作并記錄所用時間,同時實驗人員使用腳本進行處理并記錄時間,最終統計時間見表1。

經實際生產驗證結果,使用腳本后生產效率有明顯提升,數據合并因涉及人工干預工作,效率提升不及數據分發和影像挑選明顯。

5" 結束語

隨著信息技術的發展,地理信息工作所需要處理的數據越來越多,如何快速、高效地處理海量信息數據,是每個從業者必須面對的問題。基于ArcPy腳本的基礎測繪批處理工具針對實際生產需要進行開發,解決了生產中遇到的問題,減少了大量重復性的工作,保證成果質量的同時提高了生產效率。利用ArcPy腳本進行批量地理處理工作流設計,能夠充分提高處理效率,有效規避人為錯誤,大幅度節約人工成本,值得學習和推廣,使其在測繪地理信息工作中發揮更重要的作用。

參考文獻:

[1] 李詩宇,鄧吉強.基于ArcPy的地學數據自動化處理與分析方法[J].科技創新與生產力,2018(3):44-46,49.

[2] 李乃強.基于ArcPy的地理空間數據質檢技術研究[J].地礦測繪,2021,37(3):38-41,45.

[3] 吳厚清,熊維康,聶晨暉,等.ArcPy腳本工具在新型基礎測繪質量控制中的應用[J].測繪通報,2022(8):160-164.

[4] 鄭繼武,鄧學鋒.基于ArcPy的大比例尺地形圖圖幅接合表自動繪制方法[J].地理空間信息,2022,20(9):121-124.

[5] 袁玏.基于Python的農村土地承包經營權地塊數據處理的研究[J].南方國土資源,2016(8):38-40.

[6] 馬云崗.Arcpy在地理信息數據處理中的應用[J].華北自然資源,2019(5):78-80.

[7] 佟中石,張文朗,劉佰瑩.ArcPy腳本在山東省基礎測繪項目中的應用[J].測繪與空間地理信息,2021,44(S1):139-141,146.

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

主站蜘蛛池模板: 无码'专区第一页| 亚洲成a∧人片在线观看无码| 亚洲欧美另类日本| 国产在线98福利播放视频免费| 女人18毛片水真多国产| 欧美在线精品怡红院| 欧美色亚洲| 中文字幕在线视频免费| 久久久久久久久18禁秘| 成人午夜久久| 中文字幕 欧美日韩| 狠狠色综合网| 久久www视频| 热伊人99re久久精品最新地| 久久久精品久久久久三级| 国产视频a| 国产精品亚洲五月天高清| 亚洲精品制服丝袜二区| 欧美日本视频在线观看| 亚洲天堂网在线观看视频| 欧美成人一级| 成人在线观看一区| 国产综合另类小说色区色噜噜| 91免费国产高清观看| 国产激情无码一区二区免费| h视频在线播放| 99久久精品免费观看国产| 久久夜色精品国产嚕嚕亚洲av| 国产精品内射视频| 久久夜色精品国产嚕嚕亚洲av| 久久99精品久久久久久不卡| a毛片在线播放| 国产麻豆精品手机在线观看| 在线国产综合一区二区三区| 伊人色天堂| 欧美天堂久久| 精品国产91爱| 嫩草国产在线| 亚洲人在线| 米奇精品一区二区三区| 欧美人人干| 亚洲日本www| 欧美日韩另类国产| 91最新精品视频发布页| 在线欧美日韩国产| 国产原创第一页在线观看| 亚洲系列中文字幕一区二区| 国产第一色| 午夜无码一区二区三区在线app| 亚洲日本中文综合在线| 亚洲国产精品久久久久秋霞影院| 国产成人一区| 国产99在线| 天天躁夜夜躁狠狠躁躁88| 韩日无码在线不卡| 亚洲天堂网在线观看视频| 亚洲中文制服丝袜欧美精品| 亚洲国产天堂久久综合226114| 国产激爽大片在线播放| 婷婷综合在线观看丁香| 久久人午夜亚洲精品无码区| 18禁高潮出水呻吟娇喘蜜芽| 一级毛片中文字幕| 亚洲欧美成人| 欧美精品一区在线看| 中文字幕亚洲另类天堂| 亚洲娇小与黑人巨大交| 久久精品视频亚洲| 精品一区二区三区四区五区| 国模沟沟一区二区三区| 亚瑟天堂久久一区二区影院| 最新无码专区超级碰碰碰| 欧美不卡在线视频| 久久黄色一级片| 国产97视频在线| 欧美精品v| 欧美视频在线不卡| 亚洲αv毛片| 中文字幕中文字字幕码一二区| 中文字幕亚洲电影| 免费人成视频在线观看网站| 欧美爱爱网|