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

基于ArcPy的河南省小流域劃分輔助工具集設計與實現

2023-06-23 17:27:16王松倫丁立潘子軒賈智樂
中國水土保持 2023年4期

王松倫 丁立 潘子軒 賈智樂

[關鍵詞]ArcPy腳本;小流域劃分;屬性賦值;溝道;微流域;河南省

[摘要]小流域劃分過程中河流溝道和微流域提取、面積控制、屬性批量賦值計算及質量檢查都需要GIS工具的深度參與,現有GIS軟件無法直接滿足小流域劃分過程中批量化、流程化的需求。基于ArcPy設計并開發了河南省小流域劃分輔助工具集,有針對性地實現流程化的溝道及微流域提取、小流域屬性賦值計算、質量檢查等功能。該工具集算法合理、操作便捷,在河南省小流域劃分工作中發揮了提質增效的作用。

[中圖分類號]S157.1[文獻標識碼]B[文章編號]1000-0941(2023)04-0019-05

以小流域為基本單元的水土流失綜合治理是我國在長期水土保持工作中總結出來的一條寶貴經驗,是生態建設的重要手段。多年來河南省始終重視水土流失綜合治理工作,而獲取小流域信息是開展流域治理工作的基礎[1]。以河南省小流域劃分為契機,逐步摸清全省小流域現狀,可為全省水土保持規劃制定、開展綜合治理和信息化建設提供基礎數據支撐。小流域劃分的主要工作內容包括溝道及微流域提取、小流域邊界劃分、屬性賦值計算、質量檢查及數據入庫等[2]。在河南省16.7萬km2范圍內開展小流域劃分工作,僅依靠ArcGIS自帶的地理處理工具存在重復作業、自動化程度低等問題[3],且容易產生人為誤差,無法直接滿足實際工作需求。在ArcPy技術支持下開發一個輔助河南省小流域劃分工作的流程化運行、參數化選擇,集水文分析、屬性賦值計算、質量檢查為一體的工具集尤為必要。

1ArcPy站點包

Python是一種功能強大的跨平臺語言,在代碼簡潔性、通用性上有著顯著優勢,通過Python可以輕松調用ArcGIS中封裝的算法來完成復雜的數據處理和分析任務[4]。ArcPy是以ArcGISscripting模塊為基礎并繼承了其功能而構建的站點包,它繼承了基于Python語言編譯的數據轉換、數據管理、數據分析、自動化制圖等功能,開發人員可以應用該模塊便捷地訪問GP工具、類和模塊,創建自定義的空間數據操作工作流[5];同時ArcPy還提供了多種地理處理函數,能夠更好地支持地理數據的分析計算?;贏rcPy的腳本工具開發具有復雜度低、效率高、可移植性強等特點,使用該技術開發河南省小流域劃分工具更加便捷高效。

2河南省小流域劃分主要內容

河南省小流域劃分工作的內容主要包括三部分:一是基于水文分析模型提取河南省范圍內的溝道和微流域數據,為小流域精細劃分提供參考;二是通過人機交互方式進行小流域劃分,并對每條小流域進行屬性賦值和計算;三是對河南省小流域劃分成果進行拓撲和屬性檢查。

2.1溝道及微流域提取

流域河網水系是描述區域地形地貌和水文特征的基本地理參數,是小流域劃分的重要依據[6]。在河南省小流域劃分工作中需要基于水文分析進行溝道、微流域提取,主要流程是基于DEM數據提取作業單元的匯水關系,結合實際需求合理設置閾值提取溝道及相應微流域。已有DEM數據精度低于預期,造成河網提取精度無法達到實際標準[7],如何校正DEM精度從而提升水文分析成果質量值得關注。閾值設定也應該充分考慮河南省地形、地貌等自然地理狀況,并結合微流域面積最終確定。

2.2小流域劃分及屬性賦值

小流域劃分工作主要基于GIS軟件,參考吳鵬等[8]提出的河南省水土保持小流域劃分原則及流程,通過人機交互方式進行劃分。單個小流域屬性繁多,依據《小流域劃分及編碼規范》(SL653—2013),小流域屬性主要包括小流域代碼、小流域名稱、小流域類型等24個指標,具體屬性及相關要求見表1。屬性賦值過程中需要借助其他數據圖層和屬性信息參與計算(如一級流域邊界、縣域邊界、DEM數據、地形類別數據、村莊數據等),對數據質量要求較高。個別屬性值計算過程復雜,涉及空間分析、邏輯判斷等多種處理流程,具有較強的專業性,各字段之間相互關聯,在計算過程中也應有先后之分。

2.3質量檢查

河南省小流域質量檢查主要包括拓撲檢查和屬性檢查兩部分。拓撲檢查主要分析小流域矢量數據之間以及小流域與縣級行政區邊界之間的拓撲錯誤,在拓撲檢查過程中檢查工具應定義好所有類型的拓撲錯誤,同時將檢查結果直觀展示,并支持對作業單元內部、作業單元之間以及全省小流域間的拓撲檢查。屬性檢查對象包括幾何屬性以及非幾何屬性,其中幾何屬性主要包括面積和坐標系;通過對幾何屬性檢查可以將作業單元內的小流域面積總和與作業單元實際面積差值控制在一定容差范圍內,這也是驗證小流域拓撲錯誤的輔助手段,該容差需要根據實際情況設置;非幾何屬性則是面積及坐標系之外的其他屬性,主要檢查內容是字段值是否在指定值域內或必填字段值是否為空(NONE)。

3基于ArcPy的功能設計與實現

3.1功能設計

河南省小流域劃分輔助工具集采用ArcPy腳本進行開發封裝。根據實際工作需要,輔助工具分模塊獨立進行設計,主要包括水文分析模塊、屬性賦值計算模塊和數據質檢模塊。參照水利部發布的《小流域劃分及編碼規范》(SL653—2013),以及河南省小流域綜合管理業務需要,河南省小流域劃分過程中采用縣一級的行政區劃作為作業單元,對每個縣(市、區)逐一進行小流域劃分操作??傮w功能框架見圖1,各模塊間相互獨立,在作業流程上存在邏輯關系。

3.2功能實現

3.2.1水文分析模塊

溝道和微流域提取的前提是確定水文分析作業單元,本模塊以縣級行政區劃作為小流域劃分作業單元。為了保證作業單元內溝道、微流域數據的完整性,在水文分析中使用的DEM數據范圍通常大于縣區邊界,水文分析工具模塊的具體流程見圖2。DEM數據選用ALOSDEM,其水平及垂直精度均約為12.5m。

為了盡可能地保證水文分析結果的準確性,使用AGREE算法[9]對DEM數據進行修正,從而獲取到更高精度的DEM,該算法根據矢量河流數據降低與矢量線重疊的格網高程值[10]。水文分析模塊的主要流程包括:填洼、流向分析、匯流累積量計算,閾值提取溝道和河流鏈接數據,最后基于流向分析結果和河流鏈接數據獲取微流域分布。集水面積閾值是河網提取的關鍵參數,決定了提取河網的精度和與實際河網的匹配度[11]。根據河南省小流域劃分的實際需要,將微流域最小面積設定為0.1km2,提取作業單元內集水區域大于0.1km2的微流域分水嶺及其對應的溝道弧段、水流出口位置節點??紤]到DEM精

度為12.5m,將微流域控制面積換算為集水面積閾值,約為640個柵格。為了保持各作業單元小流域劃分尺度的一致性,全省統一采用該閾值。圖3為某作業單元提取的溝道和微流域數據。

3.2.2屬性賦值計算模塊

計算小流域屬性賦值時,除個別屬性可以通過簡單賦值函數實現外,多數屬性字段涉及多類數據間的復雜計算,需要GIS空間分析、邏輯判斷、幾何計算等算法深度參與。由于屬性字段是統一且固定不變的,因此只需要在工具集面板中進行參數化的圖層選擇即可。河南省小流域屬性賦值計算模塊主要流程結構見圖4,通過人機交互手段劃分的小流域圖層為屬性賦值計算的核心數據,除此之外還需要屬性字段表、地形類型、行政區劃、一級流域、DEM、溝道及微流域、村莊點、主要河流、包含河流名稱及河流代碼的流域面等輔助圖層(圖中深灰色底紋為需要計算的小流域字段,其對應箭頭的上游方向為計算該字段所需的圖層數據,圖中為淺色底紋圖層)。下文根據字段賦值在流程上的先后順序詳細介紹各字段的計算過程及關鍵函數。

(1)小流域屬性字段添加。通過調用外部預定義屬性表將所需字段追加至小流域圖層,除字段名稱外還包括字段別名、字段類型、長度、數值位數、小數位數等信息,在程序中通過逐單元格遍歷的形式將字段信息追加至小流域屬性表。

(2)劃分人、劃分時間、縣(市、區)、縣(市、區)代碼、地(市)。在同一作業單元內的上述5個字段屬性值通常是相同的,通過字段批量計算函數arcpy.management.CalculateField()進行賦值。

(3)面積最東經度、最西經度、最南緯度、最北緯度(四至地理坐標)。通過arcpy.CalculateGeometryAttributes_management()方法進行幾何空間屬性計算,字段值采用與小流域一致的CGCS2000坐標,考慮ArcPy計算的四至地理坐標結果不支持度分秒格式,需要定義函數進行相應格式轉換。

(4)一級流域、地形類型、河流名稱、河流代碼。參照屬性賦值計算邏輯,首先使用arcpy.analysis.Intersect()函數獲取相交圖層信息,若單個小流域被分割為多塊,則使用arcpy.analysis.Statistics(Intersect,None,["Shape_Area","MAX"],LinkField)函數得到其中面積最大的要素字段信息,并通過字段鏈接形式進行賦值。

(5)小流域類型、亞單元。不同類型的小流域和亞單元在小流域邊界與河流溝道的空間關系特征上各有差異,其中完整型小流域與溝道只有一個交點,區間型小流域存在兩個或多個交點,地形類型為丘陵或山地的坡面型小流域部分邊界通常與河流共線。亞單元小流域往往在和縣(市、區)的公共邊界上同河流溝道存在交點。基于這些特征設計小流域類型及亞單元屬性賦值功能。亞單元賦值的主要Python語句如下:

XLY_XJ_RV_insect=arcpy.analysis.Intersect([[Layer,1],[XJ_Layer,1],[GD_Layer,1]],out_insect_in,"ONLY_FID","","POINT")#小流域、縣界、溝道相交獲取交點

insect_xly_id_list.append(FID)#將所有存在交點的小流域FID值存入類別

witharcpy.da.UpdateCursor(Layer,["OID@",XLY])ascursor:#遍歷目標要素并賦值

row[1]=1

(6)小流域代碼批量賦值。小流域代碼需要滿足全省唯一性的條件,除通過縣(市、區)代碼和河流代碼進行控制外,為避免在作業單元內出現重復值,在同一縣區內為小流域賦予唯一標識,即ID值。小流域代碼根據規范要求采用英文大寫字母(舍棄I、O、Z)和數字的混合碼,共17位,分別由全國河流代碼、小流域順序碼、亞單元標識碼和縣級行政區區劃代碼構成,主要Python語句如下:

arcpy.management.CalculateField(Layer,"XLYDM","str(!HLDM?。1:7]+str(!ID!).zfill(4)+str(!YDY?。?str(!XQDM?。?,"PYTHON3","","TEXT")

(7)平均海拔、平均坡度?;谧鳂I單元DEM數據計算小流域平均海拔、平均坡度,調用arcpy.ddd.Slope()函數,通過三維分析提取坡度,使用arcpy.sa.ZonalStatisticsAsTable()函數計算每個小流域的平均海拔和坡度值,最后通過字段鏈接的方式賦值至相應字段。

(8)溝壑密度、最長匯流路徑。溝壑密度和最長匯流路徑以小流域為單位進行統計,利用區域統計分析工具實現,其中小流域溝壑密度為小流域內溝道長度值之和與小流域面積之比,最長匯流路徑長度為小流域內最長的河流長度,對于無河流數據的小流域,自動遍歷并將其最長匯流路徑賦值為“0”。溝壑密度計算過程:使用小流域圖層對溝道數據進行裁剪,通過arcpy.analysis.Identity("Goudao_Clip",Layer,"Gouhe_Identify","ALL",None,"NO_RELATIONSHIPS")函數進行標識以建立與小流域的空間關聯,利用arcpy.analysis.Statistics("Gouhe_Identify","Zonal_GHCD_SUM_Statis_Tb","GHCDSUM","XLYDM")函數計算小流域內的溝道長度總和,并將其鏈接至小流域圖層,最后基于arcpy.management.CalculateField(Layer,"GHMD","!SUM_GHCD!/!MJ!","PYTHON3","TEXT")函數批量獲取作業單元小流域溝壑密度屬性。

(9)小流域名稱。根據小流域命名原則,小流域名稱應簡明確切、易于辨識,可采用當地溝道、村莊等標志性地物命名,本研究以小流域幾何中心附近村莊名稱命名。通過arcpy.FeatureToPoint_management()函數將小流域面要素轉換為包含于面內的點要素,使用arcpy.Near_analysis()函數捕捉鄰近村莊點作為小流域名稱,在捕捉的過程中使用arcpy.management.DeleteIdentical()函數移除村名重復點,以避免在同一縣區范圍內存在同名小流域。

為了提高字段賦值計算工具的操作便捷性,將開發的功能模塊打包為工具箱,實現在同一個地理處理工具面板中統一批處理,即選擇所有參與計算的圖層數據,按照相應計算邏輯和字段賦值順序一次性完成一個作業單元內小流域的所有屬性批量賦值。

3.2.3數據質檢模塊

質量檢查是保障小流域劃分成果準確性、可靠性的重要手段。在程序中檢測到錯誤后以彈窗形式進行提示,便于小流域劃分人員快速定位錯誤進行修改。

河南省小流域屬性檢查主要包括以下內容:

(1)屬性完整性檢查。將小流域圖層中的所有屬性字段存入列表,通過遍歷與外部預定義的屬性表信息逐一對照,對缺少的字段進行提示,并刪除多余字段。

(2)坐標系正確性檢查。獲取作業單元小流域的元數據信息,判斷坐標系是否為CGCS2000國家大地坐標系,否則進行提示。

(3)字段完整性檢查。檢查所有小流域要素的必填字段屬性值是否為空或“NONE”值,若為空或“NONE”'值則警告提示,并列出相應小流域編碼及字段名。

(4)面積誤差控制。匯總統計同一縣(市、區)內的小流域總和面積并與該縣(市、區)總面積進行對比,絕對誤差值應控制在0.01km2內,否則進行提示。

在河南省小流域劃分空間拓撲數據質量檢查時,調用arcpy.management.AddRuleToTopology()函數為拓撲檢查定義規則。針對以下3種常見的拓撲錯誤類型,分別設置“MustNotOverlap(Area)”“MustNotHaveGaps(Area)”“BoundaryMustBeCoveredByBoundaryOf(Area-Area)”為對應的拓撲規則參數。

面拓撲錯誤為小流域邊界相互重疊,如圖REF_Ref85896294h*MERGEFORMAT5中小流域A與小流域B間的區域所示。線拓撲錯誤一為小流域邊界之間存在空隙,如圖5中小流域B和小流域C間的區域所示;二為縣(市、區)行政邊界沒有被小流域邊界覆蓋,如圖5中小流域A與縣區行政邊界間的區域所示。

4總結與討論

目前關于小流域劃分技術的研究較多,但多是基于水文分析模型的小流域自動劃分技術探討,很少有對后續屬性賦值流程及結果的關注,但這也是小流域劃分成果的重要組成部分。同時,現有研究對小流域劃分效率與質量方面也鮮有提及。本研究重點在于:一是將縣(市、區)作為小流域劃分的最小作業單元,進一步提升了小流域劃分成果的精細化程度;二是更加關注小流域劃分成果中的屬性賦值計算和質量檢查過程,將小流域的屬性成果放在了與空間劃分成果同等重要的位置;三是更加重視小流域劃分的效率和質量問題,并在梳理每個屬性賦值計算的流程基礎上定制開發了對應的自動批處理工具,在降低小流域劃分后續工作復雜度的基礎上又極大地提升了效率和質量。

基于ArcPy站點包構建的小流域劃分輔助工具集在河南省小流域劃分項目中實現了流程化、專業化、高效化的批處理,通過水文分析提取了河南省溝道、微流域數據,分別計算了河南省5576個小流域的24個屬性字段,并對小流域成果進行了質量檢查等。該工具集具有以下特點:

(1)運行效率高。結合實際工作需求對算法邏輯進行優化,減少了大量重復操作,能夠實現數據的批量自動化處理,與傳統方式相比作業效率明顯提高。

(2)運行穩定可靠。字段通過鏈接形式添加在屬性中,處理完成后自動取消字段關聯,不會產生冗余數據;字段賦值過程嚴格按照規范流程執行,設置異常捕捉機制,產生錯誤后立即停止運行避免產生錯誤數據;空間分析的結果為新圖層,不會更改輸入數據的空間屬性。

(3)操作簡單。工具集算法合理,操作便捷,只需輸入相關圖層參數即可由后臺完全自動化處理。河南省小流域劃分輔助工具集的研發切實解決了生產實踐中的問題,提高了工作效率,是小流域劃分工作按時高質量完成的保障。利用ArcPy工具進行高效數據分析處理是一種科學有效的方法,這種開發思路在眾多數據生產項目中均具有借鑒意義,本研究成果具備一定的推廣價值和可移植性。

[參考文獻]

[1]俞春娜,馮存均.面積約束的小流域提取算法研究[J].測繪科學,2022,47(12):216-222.

[2]張景揚,盧遠,劉斌濤.基于ArcHydroTools的廣西小流域劃分研究[J].水利水電技術,2017,48(9):65-71.

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

[4]呂德昊,宋偉東,董山,等.ArcGIS中應用Python腳本實現地理數據的批處理[J].測繪與空間地理信息,2021,44(2):111-112,117.

[5]馮里濤,陳艷艷,李兆豐,等.基于Geoprocessing的基礎地理信息數據庫質量工具集的開發[J].測繪與空間地理信息,2013,36(9):102-105.

[6]王奎,林孝松.基于GIS的小流域特征信息提取[J].重慶理工大學學報(自然科學),2015,29(9):105-110.

[7]趙遠洋,丁永生,孫丹,等.基于Arcpy編程修正的數字高程模型小流域水文分析[J].大連海事大學學報,2016,42(4):55-60.

[8]吳鵬,韓錦琳.河南省水土保持小流域劃分原則與流程[J].中國水土保持,2022(5):29-31.

[9]FERDIHellweger.AGREE-DEMSurfaceReconditioningSystem[D].Austin:UniversityofTexasatAustin,1997:17.

[10]鄭倩,史海濱,李仙岳,等.基于AGREE算法與BURN-IN算法的平原灌區DEM河網提取問題剖析[J].灌溉排水學報,2019,38(5):122-128.

[11]李照會,郭良,劉榮華,等.基于DEM數字河網提取時集水面積閾值與河源密度關系的研究[J].地球信息科學學報,2018,20(9):1244-1251.

[作者簡介]王松倫(1981—),男,河南扶溝人,高級工程師,碩士,主要研究方向為水利信息化;通信作者潘子軒(1996—),男,河南輝縣人,助理工程師,碩士,主要研究方向為水利遙感監管。[收稿日期]2022-12-01

(責任編輯楊傲秋)

主站蜘蛛池模板: 99久久精彩视频| 不卡的在线视频免费观看| 在线看片免费人成视久网下载| 成人久久18免费网站| 2021精品国产自在现线看| 日本日韩欧美| 男女男精品视频| 国产精品欧美亚洲韩国日本不卡| 国产精品青青| 亚洲欧美日韩精品专区| 亚洲,国产,日韩,综合一区| 71pao成人国产永久免费视频| 久久五月视频| 中文国产成人精品久久一| 玖玖精品在线| 国产视频资源在线观看| 呦视频在线一区二区三区| 青青草原国产免费av观看| 手机看片1024久久精品你懂的| 色国产视频| 广东一级毛片| 亚洲精品国产成人7777| 免费看的一级毛片| 亚洲欧美人成人让影院| 亚洲人成在线免费观看| 久草视频福利在线观看| 搞黄网站免费观看| 中文字幕人成乱码熟女免费| 99久久婷婷国产综合精| 欧美 亚洲 日韩 国产| 婷婷六月综合网| 天堂av高清一区二区三区| 久久久精品无码一区二区三区| 日韩成人在线视频| 国产伦精品一区二区三区视频优播| 67194亚洲无码| 国产欧美日韩综合一区在线播放| 欧美亚洲国产视频| 天天摸天天操免费播放小视频| 国产精品高清国产三级囯产AV| 国产麻豆另类AV| 97超碰精品成人国产| Jizz国产色系免费| 久久国产高潮流白浆免费观看| 91蝌蚪视频在线观看| 天堂岛国av无码免费无禁网站| 国产美女丝袜高潮| 无码内射在线| 97在线国产视频| 天天综合亚洲| 亚洲系列中文字幕一区二区| 国产精品亚洲一区二区在线观看| 亚洲熟女中文字幕男人总站| 99国产在线视频| 国产9191精品免费观看| 国产xxxxx免费视频| 亚洲欧美自拍一区| 91福利片| 极品私人尤物在线精品首页| 色哟哟国产精品一区二区| 99久久婷婷国产综合精| 国产视频你懂得| 中文无码精品a∨在线观看| 免费女人18毛片a级毛片视频| 无码国产伊人| 国产精品不卡片视频免费观看| 欧美全免费aaaaaa特黄在线| 国产粉嫩粉嫩的18在线播放91| 国产成人无码AV在线播放动漫| 午夜精品一区二区蜜桃| 久久五月天综合| 欧美三级视频网站| 午夜国产大片免费观看| 黄片在线永久| 国产美女精品人人做人人爽| 欧美视频在线第一页| 久久精品视频亚洲| 好紧太爽了视频免费无码| 中文字幕第4页| 天天操精品| 亚洲国产精品VA在线看黑人| 欧美成人免费午夜全|