寇馨月,崔凡,劉曉林,臧彩霞,劉清
[關鍵詞] Python;圖斑編號;Visual Basic;降雨過程摘錄;數(shù)據(jù)處理;水土保持
[摘要] 監(jiān)測與處理數(shù)據(jù)是水土保持工作的基礎,盡管數(shù)據(jù)處理工作簡單,但人工處理耗時長、易出錯,且經(jīng)常需要進行修改。以工作需要為目標,采用編程方法可快速準確完成水土保持數(shù)據(jù)處理工作。借助Python和Visual Basic分別實現(xiàn)了生產(chǎn)建設項目擾動圖斑編號自動輸入、水土保持監(jiān)測點降雨過程摘錄數(shù)據(jù)快速整匯編處理。結(jié)果表明:①采用圖斑編號批量自動輸入的Python程序,300個擾動圖斑的圖斑編號輸入用時10 s,與傳統(tǒng)人工處理方式相比,工作效率提高了77倍;②采用降雨過程摘錄數(shù)據(jù)成果表整匯編的Visual Basic程序,2 507條降雨過程數(shù)據(jù)整匯編用時5 min,工作效率提高了25倍;③Python和Visual Basic程序不僅可以快速準確完成水土保持遙感監(jiān)管和監(jiān)測點觀測數(shù)據(jù)整匯編等數(shù)據(jù)處理工作,亦可完成河湖監(jiān)管、水環(huán)境監(jiān)測等其他行業(yè)類似要求的工作。
[中圖分類號] S157.1[文獻標識碼] A[文章編號] 1000-0941(2023)06-0048-04
新階段水土保持工作要點主要包含依法嚴格監(jiān)管人為水土流失[1-3]、扎實做好水土保持監(jiān)測評價[4-5]等,其中人為水土流失監(jiān)管的工作重點之一是常態(tài)化開展水土保持遙感監(jiān)管工作。據(jù)統(tǒng)計,水利部已連續(xù)4 a在全國開展水土保持遙感監(jiān)管工作[6],累計更新解譯擾動圖斑超200萬個(不包含省、市、縣級組織的監(jiān)管工作),每100 km2監(jiān)管區(qū)域平均解譯擾動圖斑數(shù)量120個左右。按照《生產(chǎn)建設項目水土保持信息化監(jiān)管技術規(guī)定(試行)》(以下簡稱《技術規(guī)定》)要求,需對每個擾動圖斑按要求編寫圖斑編號,作為唯一的身份標識[7]。圖斑編號是數(shù)據(jù)管理、搜索查詢、信息錄入、邊界修改等工作必不可少的屬性字段,可為后續(xù)監(jiān)管工作順利開展提供基礎。此項工作量較大,若能實現(xiàn)自動編寫圖斑編號,將為工作帶來極大的便捷。目前其他行業(yè)如林業(yè)數(shù)據(jù)[8]、礦山新增圖斑[9]已實現(xiàn)基于ArcGIS編程的自動編號,而水土保持遙感監(jiān)管擾動圖斑基于ArcGIS編程自動編號尚缺少相關研究。坡面定位水土流失監(jiān)測[10]是扎實做好水土保持監(jiān)測評價工作的重點之一,為此,海河流域[11]、河南省[12]、上海市[13]等均對各自轄區(qū)的監(jiān)測站點優(yōu)化等進行了充分研究和規(guī)劃。多年監(jiān)測成果存儲與應用亦是研究熱點,如:李智廣等[14]總結(jié)了安徽省監(jiān)測點觀測數(shù)據(jù)整(匯)編的經(jīng)驗做法;趙輝等[15]分析了全國站點監(jiān)測資料整編工作存在的問題,建議選用與之適合的整編方法提高監(jiān)測資料整編工作效率。目前坡面定位水土流失監(jiān)測資料整編方法多為人工整理,在整匯編有特殊格式要求的表格時易出錯且耗時長(如降雨過程摘錄數(shù)據(jù)成果表),急需改進整編方法,提高工作效率同時保證成果質(zhì)量。
本研究圍繞圖斑編號自動輸入和改進監(jiān)測成果整匯編方法兩項工作需求,基于Python和Visual Basic程序,開展擾動圖斑的圖斑編號自動輸入、降雨過程摘錄數(shù)據(jù)成果表整匯編等相關研究,以大幅提高工作效率和精準度,為水土保持基礎工作高質(zhì)量發(fā)展提供技術支持。
1Python編程在水土保持遙感監(jiān)管工作中的應用
1.1Python應用的工作要求
《技術規(guī)定》中要求“圖斑編號”字段需按照空間地理位置從上到下、從左到右的順序依次編號,并以“YYYYMM_XXXXXX_TTTT”的形式命名,其中:前6位“YYYYMM”表示遙感影像成像年月;中間6位“XXXXXX”是擾動圖斑所在縣級行政區(qū)的行政區(qū)劃代碼;后4位“TTTT” 是序號,從0000至9999排序。
1.2Python程序代碼
圖斑編號需依據(jù)空間地理位置按照規(guī)定的順序進行編排,擾動圖斑的空間地理位置可以通過計算幾何質(zhì)心的X、Y坐標并記錄在屬性表中。圖斑編號Python程序代碼編寫思路是調(diào)用Python程序自帶函數(shù)“arcpy.UpdateCursor”,對數(shù)字形式的X、Y坐標按照要求先以質(zhì)心Y坐標降序排列,再以質(zhì)心X坐標增序排序。圖斑編號批量自動輸入屬性字段QDNM中的Python程序運行代碼見圖1。
代碼中的“D:RDTB.shp”是需要編輯圖斑編號的擾動圖斑矢量文件所在路徑,引號內(nèi)路徑可以替換;“YYYYMM_XXXXXX_”是圖斑編號的前12位數(shù)字,需根據(jù)實際監(jiān)管情況填寫,如用2022年1月影像解譯的廣州市天河區(qū)的擾動圖斑,則圖斑編號的前12位數(shù)字為“202201_440106_”。圖斑編號自動輸入Python程序的操作流程見圖2,程序運行完成后可在QDNM字段中查看圖斑編號自動輸入的結(jié)果。
1.3Python錄入圖斑研究結(jié)果
本研究選取監(jiān)管區(qū)域內(nèi)解譯成果300個圖斑作為測試數(shù)據(jù),按照《技術規(guī)定》要求,若逐一手動輸入圖斑編號,300個圖斑需用時10~13 min,且易出現(xiàn)序號不連續(xù)的情況;若用Python編程,則只需要10 s(見圖3),且無需借助其他輔助文件,使用操作簡單易行,極大提高了工作效率和準確性。圖斑編號自動輸入Python程序適用于生產(chǎn)建設項目水土保持遙感監(jiān)管(區(qū)域及項目監(jiān)管)工作,從2017年起,已在廣東、江西、貴州、廣西、贛州、廣州等多個省、市、縣級監(jiān)管項目中得以應用,亦可適用于其他監(jiān)管工作所獲取的矢量文件圖斑編號排序,如河湖監(jiān)管、 寇馨月等:Python和Visual Basic編程在水土保持數(shù)據(jù)處理工作中的應用水環(huán)境監(jiān)測[16]等工作。
2Visual Basic編程在水土保持監(jiān)測點觀測數(shù)據(jù)整匯編工作中的應用2.1Visual Basic應用的工作要求
按照《徑流小區(qū)與小流域水土保持監(jiān)測手冊》(以下簡稱《手冊》)和《全國水土流失動態(tài)監(jiān)測與公告項目年度成果匯編刊印工作大綱》(以下簡稱《大綱》)的要求,監(jiān)測點的降雨過程摘錄數(shù)據(jù)成果表的格式除行間距、字體等要求外,還有特殊的格式要求:每頁兩欄,每欄7組,兩欄間有一列間隔;第一欄最后一行與第二欄第一行數(shù)據(jù)連續(xù),且不同頁數(shù)據(jù)需連續(xù);每5行一組,組間空行。
2.2Visual Basic程序代碼
降雨過程摘錄數(shù)據(jù)成果表整匯編的特殊格式要求主要是分欄和組間空行,因此Visual Basic程序代碼編寫思路是建立總程序,依次調(diào)用分欄程序和插入空行程序。其中分欄程序,每70行的前35行保持原位置不動,第36~70行重新寫入第二欄所在列且刪除原位置數(shù)據(jù)行;插入空行程序,指定凡是6的倍數(shù)行插入空行。降雨過程摘錄數(shù)據(jù)成果表整匯編的Visual Basic程序運行代碼見圖4。
具體操作流程見圖5,程序運行完成后復制已整編好的數(shù)據(jù)至整編圖6降雨過程摘錄數(shù)據(jù)成果表整匯編前Visual Basic程序運行界面
表格中,調(diào)整格式即可完成整匯編工作。
2.3Visual Basic摘錄數(shù)據(jù)研究結(jié)果
本研究選取徑流小區(qū)監(jiān)測成果2 507條降雨過程摘錄數(shù)據(jù)作為測試數(shù)據(jù),按照《手冊》和《大綱》的工作要求,手動整編降雨過程摘錄數(shù)據(jù)成果表,2 507條數(shù)據(jù)需用時100~130 min,且數(shù)據(jù)銜接極易出錯,若遺漏某一行數(shù)據(jù)的整編,則需從錯行所在頁開始至最后全部重新整編,耗時耗力。若用Visual Basic編程,則只需不到5 min(程序運行18 s,后續(xù)復制粘貼數(shù)據(jù)的操作用時不到1 min),整編精準高效,數(shù)據(jù)銜接不出錯,使用操作簡單易行,極大地提高了工作效率和準確性,數(shù)據(jù)成果表整匯編前后界面顯示見圖6、圖7。本程序不僅適用于降雨過程摘錄數(shù)據(jù)成果表整匯編工作,同時也適用于徑流小區(qū)土壤含水量和植被蓋度成果整匯編工作;分欄程序和插入空行程序亦可以分開運行,如插入空行程序可應用于徑流小區(qū)逐次徑流泥沙成果整匯編工作中。本程序已連續(xù)10 a應用在全國水土流失動態(tài)監(jiān)測項目整匯編、珠江流域水土保持監(jiān)測成果整匯編工作中,近3 a也在廣東省水土保持監(jiān)測成果整匯編工作中得到廣泛應用。
3結(jié)論
本研究應用Python和Visual Basic程序分別實現(xiàn)了擾動圖斑編號自動輸入、降雨過程摘錄數(shù)據(jù)成果表整匯編,操作簡單高效,準確無誤。經(jīng)測試300個圖斑的編號輸入和2 507條降雨過程數(shù)據(jù)整匯編工作的效率分別提高了77倍、25倍。在圖斑編號批量自動輸入的Python程序中,擾動圖斑矢量文件所在路徑越短,程序讀取目標對象時間也越短,程序整體運行時間亦越短。圖斑編號批量自動輸入的Python程序和降雨過程摘錄數(shù)據(jù)成果表整匯編的Visual Basic程序,不僅可以完成水土保持監(jiān)管工作中擾動圖斑的圖斑編號整理和監(jiān)測點降雨過程摘錄數(shù)據(jù)整匯編,還可以應用于河湖監(jiān)管、水環(huán)境監(jiān)測、監(jiān)測點土壤含水量和植被蓋度成果整匯編或其他類似要求的工作中。
[參考文獻]
[1] 朱鶴,時宇,孫東亞,等.水土保持區(qū)域監(jiān)管成果分析框架設計與實現(xiàn)[J].中國防汛抗旱,2022,32(8):44-47.
[2] 寇馨月,姜學兵,亢慶,等.水土保持“天地一體化”項目監(jiān)管技術體系構(gòu)建與應用[J].中國水土保持科學,2021,19(2):98-107.
[3] 姜德文,亢慶,趙永軍,等.生產(chǎn)建設項目水土保持“天地一體化”監(jiān)管技術研究[J].中國水土保持,2016(11):1-3.
[4] 李智廣.《全國水土流失動態(tài)監(jiān)測規(guī)劃(2018—2022年)》的編制原則與目標任務[J].中國水土保持,2018(5):20-23,68.
[5] 王愛娟.以需求為導向的水土保持監(jiān)測工作任務解析[J].中國水土保持,2017(10):43-46.
[6] 李樂,時宇.生產(chǎn)建設項目水土保持遙感解譯與判別技術實踐及思考[J].中國水土保持,2022(1):31-34.
[7] 方瑞,辛華榮,郭憲杰,等.水土保持動態(tài)監(jiān)管分析系統(tǒng)的功能與實踐[J].中國水土保持科學,2021,19(3):110-119.
[8] 羅春林.一種改進的線狀分布圖斑自動編號設計與實現(xiàn)[J].林業(yè)建設,2022(2):43-47.
[9] 陳棟,姚維嶺.基于ArcPy與定制ArcToolbox的礦山新增圖斑自動編號及方法改進[J].國土資源遙感,2021,33(2):262-269.
[10] 王愛娟.我國水土保持監(jiān)測點工作現(xiàn)狀及規(guī)范化建議[J].中國水土保持,2017(4):66-68.
[11] 王文軒,鄒海天.海河流域水土保持監(jiān)測站點優(yōu)化布局思路探討[J].海河水利,2020(4):13-15.
[12] 張巖,衣強,郭華.河南省水土保持監(jiān)測工作現(xiàn)狀與未來[J].河南水利與南水北調(diào),2015(5):31-32.
[13] 楊均科,周婷昀,張月萍,等.上海市水土保持監(jiān)測規(guī)劃編制研究[J].中國水土保持,2021(11):59-61.
[14] 李智廣,朱繼鵬,姜學兵.安徽省水土保持監(jiān)測點觀測數(shù)據(jù)整(匯)編的做法和啟示[J].中國水土保持,2015(6):13-16.
[15] 趙輝,尹義莉.水土保持監(jiān)測資料整編工作存在的問題及其對策[J].中國水土保持科學,2015,13(4):132-136.
[16] 崔凡,寇馨月,馮佑斌,等.粵港澳大灣區(qū)重要飲用水水源地監(jiān)督性監(jiān)測技術體系[J].人民珠江,2021,42(5):1-8.
[作者簡介] 寇馨月(1990—),女,遼寧沈陽人,工程師,碩士,主要從事水土保持、信息化監(jiān)管等工作。
[收稿日期] 2022-09-14
(責任編輯楊傲秋)