Python和Visual Basic编程在水土保持数据处理工作中的应用

2023-07-30 14:21寇馨月,崔凡,刘晓林,臧彩霞,刘清
中国水土保持 2023年6期
关键词:数据处理水土保持

寇馨月,崔凡,刘晓林,臧彩霞,刘清

[关键词] Python;图斑编号;Visual Basic;降雨过程摘录;数据处理;水土保持

[摘要] 监测与处理数据是水土保持工作的基础,尽管数据处理工作简单,但人工处理耗时长、易出错,且经常需要进行修改。以工作需要为目标,采用编程方法可快速准确完成水土保持数据处理工作。借助Python和Visual Basic分别实现了生产建设项目扰动图斑编号自动输入、水土保持监测点降雨过程摘录数据快速整汇编处理。结果表明:①采用图斑编号批量自动输入的Python程序,300个扰动图斑的图斑编号输入用时10 s,与传统人工处理方式相比,工作效率提高了77倍;②采用降雨过程摘录数据成果表整汇编的Visual Basic程序,2 507条降雨过程数据整汇编用时5 min,工作效率提高了25倍;③Python和Visual Basic程序不仅可以快速准确完成水土保持遥感监管和监测点观测数据整汇编等数据处理工作,亦可完成河湖监管、水环境监测等其他行业类似要求的工作。

[中图分类号] S157.1[文献标识码] A[文章编号] 1000-0941(2023)06-0048-04

新阶段水土保持工作要点主要包含依法严格监管人为水土流失[1-3]、扎实做好水土保持监测评价[4-5]等,其中人为水土流失监管的工作重点之一是常态化开展水土保持遥感监管工作。据统计,水利部已连续4 a在全国开展水土保持遥感监管工作[6],累计更新解译扰动图斑超200万个(不包含省、市、县级组织的监管工作),每100 km2监管区域平均解译扰动图斑数量120个左右。按照《生产建设项目水土保持信息化监管技术规定(试行)》(以下简称《技术规定》)要求,需对每个扰动图斑按要求编写图斑编号,作为唯一的身份标识[7]。图斑编号是数据管理、搜索查询、信息录入、边界修改等工作必不可少的属性字段,可为后续监管工作顺利开展提供基础。此项工作量较大,若能实现自动编写图斑编号,将为工作带来极大的便捷。目前其他行业如林业数据[8]、矿山新增图斑[9]已实现基于ArcGIS编程的自动编号,而水土保持遥感监管扰动图斑基于ArcGIS编程自动编号尚缺少相关研究。坡面定位水土流失监测[10]是扎实做好水土保持监测评价工作的重点之一,为此,海河流域[11]、河南省[12]、上海市[13]等均对各自辖区的监测站点优化等进行了充分研究和规划。多年监测成果存储与应用亦是研究热点,如:李智广等[14]总结了安徽省监测点观测数据整(汇)编的经验做法;赵辉等[15]分析了全国站点监测资料整编工作存在的问题,建议选用与之适合的整编方法提高监测资料整编工作效率。目前坡面定位水土流失监测资料整编方法多为人工整理,在整汇编有特殊格式要求的表格时易出错且耗时长(如降雨过程摘录数据成果表),急需改进整编方法,提高工作效率同时保证成果质量。

本研究围绕图斑编号自动输入和改进监测成果整汇编方法两项工作需求,基于Python和Visual Basic程序,开展扰动图斑的图斑编号自动输入、降雨过程摘录数据成果表整汇编等相关研究,以大幅提高工作效率和精准度,为水土保持基础工作高质量发展提供技术支持。

1Python编程在水土保持遥感监管工作中的应用

1.1Python应用的工作要求

《技术规定》中要求“图斑编号”字段需按照空间地理位置从上到下、从左到右的顺序依次编号,并以“YYYYMM_XXXXXX_TTTT”的形式命名,其中:前6位“YYYYMM”表示遥感影像成像年月;中间6位“XXXXXX”是扰动图斑所在县级行政区的行政区划代码;后4位“TTTT” 是序号,从0000至9999排序。

1.2Python程序代码

图斑编号需依据空间地理位置按照规定的顺序进行编排,扰动图斑的空间地理位置可以通过计算几何质心的X、Y坐标并记录在属性表中。图斑编号Python程序代码编写思路是调用Python程序自带函数“arcpy.UpdateCursor”,对数字形式的X、Y坐标按照要求先以质心Y坐标降序排列,再以质心X坐标增序排序。图斑编号批量自动输入属性字段QDNM中的Python程序运行代码见图1。

代码中的“D:RDTB.shp”是需要编辑图斑编号的扰动图斑矢量文件所在路径,引号内路径可以替换;“YYYYMM_XXXXXX_”是图斑编号的前12位数字,需根据实际监管情况填写,如用2022年1月影像解译的广州市天河区的扰动图斑,则图斑编号的前12位数字为“202201_440106_”。图斑编号自动输入Python程序的操作流程见图2,程序运行完成后可在QDNM字段中查看图斑编号自动输入的结果。

1.3Python录入图斑研究结果

本研究选取监管区域内解译成果300个图斑作为测试数据,按照《技术规定》要求,若逐一手动输入图斑编号,300个图斑需用时10~13 min,且易出现序号不连续的情况;若用Python编程,则只需要10 s(见图3),且无需借助其他辅助文件,使用操作简单易行,极大提高了工作效率和准确性。图斑编号自动输入Python程序适用于生产建设项目水土保持遥感监管(区域及项目监管)工作,从2017年起,已在广东、江西、贵州、广西、赣州、广州等多个省、市、县级监管项目中得以应用,亦可适用于其他监管工作所获取的矢量文件图斑编号排序,如河湖监管、 寇馨月等:Python和Visual Basic编程在水土保持数据处理工作中的应用水环境监测[16]等工作。

2Visual Basic编程在水土保持监测点观测数据整汇编工作中的应用2.1Visual Basic应用的工作要求

按照《径流小区与小流域水土保持监测手册》(以下简称《手册》)和《全国水土流失动态监测与公告项目年度成果汇编刊印工作大纲》(以下简称《大纲》)的要求,监测点的降雨过程摘录数据成果表的格式除行间距、字体等要求外,还有特殊的格式要求:每页两栏,每栏7组,两栏间有一列间隔;第一栏最后一行与第二栏第一行数据连續,且不同页数据需连续;每5行一组,组间空行。

2.2Visual Basic程序代码

降雨过程摘录数据成果表整汇编的特殊格式要求主要是分栏和组间空行,因此Visual Basic程序代码编写思路是建立总程序,依次调用分栏程序和插入空行程序。其中分栏程序,每70行的前35行保持原位置不动,第36~70行重新写入第二栏所在列且删除原位置数据行;插入空行程序,指定凡是6的倍数行插入空行。降雨过程摘录数据成果表整汇编的Visual Basic程序运行代码见图4。

具体操作流程见图5,程序运行完成后复制已整编好的数据至整编图6降雨过程摘录数据成果表整汇编前Visual Basic程序运行界面

表格中,调整格式即可完成整汇编工作。

2.3Visual Basic摘录数据研究结果

本研究选取径流小区监测成果2 507条降雨过程摘录数据作为测试数据,按照《手册》和《大纲》的工作要求,手动整编降雨过程摘录数据成果表,2 507条数据需用时100~130 min,且数据衔接极易出错,若遗漏某一行数据的整编,则需从错行所在页开始至最后全部重新整编,耗时耗力。若用Visual Basic编程,则只需不到5 min(程序运行18 s,后续复制粘贴数据的操作用时不到1 min),整编精准高效,数据衔接不出错,使用操作简单易行,极大地提高了工作效率和准确性,数据成果表整汇编前后界面显示见图6、图7。本程序不仅适用于降雨过程摘录数据成果表整汇编工作,同时也适用于径流小区土壤含水量和植被盖度成果整汇编工作;分栏程序和插入空行程序亦可以分开运行,如插入空行程序可应用于径流小区逐次径流泥沙成果整汇编工作中。本程序已连续10 a应用在全国水土流失动态监测项目整汇编、珠江流域水土保持监测成果整汇编工作中,近3 a也在广东省水土保持监测成果整汇编工作中得到广泛应用。

3结论

本研究应用Python和Visual Basic程序分別实现了扰动图斑编号自动输入、降雨过程摘录数据成果表整汇编,操作简单高效,准确无误。经测试300个图斑的编号输入和2 507条降雨过程数据整汇编工作的效率分别提高了77倍、25倍。在图斑编号批量自动输入的Python程序中,扰动图斑矢量文件所在路径越短,程序读取目标对象时间也越短,程序整体运行时间亦越短。图斑编号批量自动输入的Python程序和降雨过程摘录数据成果表整汇编的Visual Basic程序,不仅可以完成水土保持监管工作中扰动图斑的图斑编号整理和监测点降雨过程摘录数据整汇编,还可以应用于河湖监管、水环境监测、监测点土壤含水量和植被盖度成果整汇编或其他类似要求的工作中。

[参考文献]

[1] 朱鹤,时宇,孙东亚,等.水土保持区域监管成果分析框架设计与实现[J].中国防汛抗旱,2022,32(8):44-47.

[2] 寇馨月,姜学兵,亢庆,等.水土保持“天地一体化”项目监管技术体系构建与应用[J].中国水土保持科学,2021,19(2):98-107.

[3] 姜德文,亢庆,赵永军,等.生产建设项目水土保持“天地一体化”监管技术研究[J].中国水土保持,2016(11):1-3.

[4] 李智广.《全国水土流失动态监测规划(2018—2022年)》的编制原则与目标任务[J].中国水土保持,2018(5):20-23,68.

[5] 王爱娟.以需求为导向的水土保持监测工作任务解析[J].中国水土保持,2017(10):43-46.

[6] 李乐,时宇.生产建设项目水土保持遥感解译与判别技术实践及思考[J].中国水土保持,2022(1):31-34.

[7] 方瑞,辛华荣,郭宪杰,等.水土保持动态监管分析系统的功能与实践[J].中国水土保持科学,2021,19(3):110-119.

[8] 罗春林.一种改进的线状分布图斑自动编号设计与实现[J].林业建设,2022(2):43-47.

[9] 陈栋,姚维岭.基于ArcPy与定制ArcToolbox的矿山新增图斑自动编号及方法改进[J].国土资源遥感,2021,33(2):262-269.

[10] 王爱娟.我国水土保持监测点工作现状及规范化建议[J].中国水土保持,2017(4):66-68.

[11] 王文轩,邹海天.海河流域水土保持监测站点优化布局思路探讨[J].海河水利,2020(4):13-15.

[12] 张岩,衣强,郭华.河南省水土保持监测工作现状与未来[J].河南水利与南水北调,2015(5):31-32.

[13] 杨均科,周婷昀,张月萍,等.上海市水土保持监测规划编制研究[J].中国水土保持,2021(11):59-61.

[14] 李智广,朱继鹏,姜学兵.安徽省水土保持监测点观测数据整(汇)编的做法和启示[J].中国水土保持,2015(6):13-16.

[15] 赵辉,尹义莉.水土保持监测资料整编工作存在的问题及其对策[J].中国水土保持科学,2015,13(4):132-136.

[16] 崔凡,寇馨月,冯佑斌,等.粤港澳大湾区重要饮用水水源地监督性监测技术体系[J].人民珠江,2021,42(5):1-8.

[作者简介] 寇馨月(1990—),女,辽宁沈阳人,工程师,硕士,主要从事水土保持、信息化监管等工作。

[收稿日期] 2022-09-14

(责任编辑杨傲秋)

猜你喜欢
数据处理水土保持
水土保持探新路 三十九年写春秋
认知诊断缺失数据处理方法的比较:零替换、多重插补与极大似然估计法*
ILWT-EEMD数据处理的ELM滚动轴承故障诊断
《水土保持通报》征稿简则
水土保持
水土保持
基于希尔伯特- 黄变换的去噪法在外测数据处理中的应用
基于POS AV610与PPP的车辆导航数据处理