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