APP下载

基于网络信息与遥感影像的水库自动提取方法研究

2022-06-29杨智文陈金云张志远

水利信息化 2022年3期
关键词:咸宁市爬虫名称

杨智文 ,陈金云 ,张志远

(1.武汉大学遥感信息工程学院,湖北 武汉 430079;2.重庆大学土木工程学院,重庆 400030;3.水利部信息中心,北京 100053)

0 引言

水库是现代水利工程体系中最重要的基础设施之一,截至 2018 年底,我国共有 9.8 万多座水库,总库容约为 8 953 亿 m3[1]。水库与电力、农业、渔业等各类民生行业均有关联,起着防洪、蓄水灌溉、供水、发电、养鱼等作用[2]。另一方面,水库的存在又会对环境、气候及流域水质有一定影响[3]。为实现对水库的统一规划调度和管理,将相关的社会和环境成本降至最低,需要掌握河网内水库的位置、大小和用途等信息。

监测水库的数量、位置、水体表面变化,能够为合理配置区域水资源及抵御旱涝灾害等工作提供坚实的数据支撑[4],因此,建立系统的水库数据库是十分必要的。我国水库数量多,分布广,差异大,传统的线下人工普查方式受到诸多因素制约,需要耗费相当的人力物力且不便汇总统计。采用遥感方法,能够从遥感图像中迅速且精准地提取出水体信息,为动态监测水库的时空变化提供了可能[5-6]。

目前国内外利用遥感技术对水库的相关研究大多为对已知水库的监测,如对水质、水生生物、流量、库容、库区变化的动态监测。监测库区变化所使用的研究方法多为利用遥感影像进行具体的库区范围提取与相关分析,早期提取方法多为波段阈值法,包括谱间关系法、水体指数法等,随着计算机技术的发展,越来越多的学者将决策树、支持向量机和面向对象方法等分类器法应用到相关研究中,后来又有学者结合 BP 和卷积神经网络等深度学习算法模型进行研究,此外对于库区水体的识别提取还有数学形态学方法[7]、小波分析法[8]、基于 GIS技术辅助[9]和混合像元分解[10]的方法等。但水库与湖泊、坑塘等大小水体有着非常相近的物理特征,当使用遥感影像对大范围区域内的水库直接进行提取时,不易于将其与湖泊等水体区分开。为了将水库的空间信息与属性信息关联起来,需要区域内水库的名称及坐标等数据,随着网络的普及,网络上公开发布的信息量呈爆炸式地增长,各行各业的相关政府部门也都有官方的门户网站,因此对水库的基础属性可以尝试利用网络信息进行提取。

为此基于网络公开信息与爬虫技术,结合遥感影像分类方法,研究水库水体自动提取方法,进行数据库自动更新,以解决传统水库提取方法中需要先验知识的问题。

1 水库自动提取研究区域及数据

1.1 研究区概况

本次具体研究区域为湖北省咸宁市,拟得到其境内水库的地理坐标及矢量分布图。湖北省水域较多,所以境内的水库数量也比较多。咸宁市位于湖北省东南部,区域气候温和,降水充沛,四季分明,无霜期长,为亚热带大陆性季风气候,境内分布有富水、陆水、金水和黄盖湖四大水系。

1.2 研究区数据

本研究从美国地质调查局(USGS)网站下载覆盖整个咸宁市的 L1TP 级别的 Landsat 8 遥感影像[11],其单波段的空间分辨率为 30 m,全色波段的空间分辨率为 15 m。因研究范围的地理跨度较大,故选择4 个云量极少且处于丰水期的 Landsat 8 影像场景,以利于对水体的识别。

可以把遥感影像看成是光谱信息较多且含有地理信息的数字图像,但是受外界环境及目标需求等因素的影响,往往要对遥感影像做预处理,进行一定的修正,从而消除误差或满足使用要求,才可以用于影像分类及信息提取。对遥感影像的预处理一般包括几何、辐射(辐射定标、大气校正)、正射等校正[12-13],有时受研究范围及分辨率等因素的影响,还需要对影像进行裁剪、镶嵌和融合等处理。

根据 Landsat 8 L1TP 产品数据说明可知,美国航空航天局(NASA)官方已经使用地面控制点和数字高程模型数据对影像进行了几何精校正,因此本研究仅做辐射校正,不进行几何校正。

2 水库自动提取流程

水库数据库应有名称、坐标和范围等 3 项非常重要的基础数据。对水库的名称及坐标 2 项基础属性数据,尝试通过网络相关信息进行更新,首先利用网络爬虫抓取咸宁市水利和湖泊局门户网站上有关水库的信息,然后进行筛选,再用筛选得到的水库名称及地址信息调用百度和高德地图应用的API,获取对应的坐标数据;对于水库的范围矢量数据,则利用遥感影像与水体提取的方法获取。水库自动提取流程如图 1 所示。

图 1 水库自动提取流程

2.1 水库名称提取

网络爬虫是一种能够按照既定规则对 Web 网页进行遍历检索,并自动提取使用者感兴趣的信息的程序或脚本[14]。主要原理如下:在指定的互联网子集合中读取统一资源定位符(URL),访问及下载对应的网页内容,并抓取页面内包含的 URL,从而继续提取新 URL 对应的网页信息,完成对目标数据的获取、分析及呈现[15]。

利用爬虫抓取水库相关网络信息的步骤如下:

1)打开咸宁市水利和湖泊局门户网站,在站内直接以“水库”为关键词进行检索,可以得到很多与水库相关的信息条目,这些条目来自于各类导航中,说明站内信息基本都被检索到。

2)进入开发者模式,分析网页布局结构及源码,查看各信息条目对应的节点,需要提取的信息是文本属性值,编写爬虫程序提取网页的 HTML(Hyper Text Markup Language)代码,再根据 CSS(Cascading Style Sheets)选择器进行抓取,将这些信息条目的名称、简介及正文内容存储起来。

3)进行进一步筛选,利用正则表达式匹配方法,以“水库”为标识符,对提取到的文本信息进行检索与匹配,将得到的结果去重后存储到 CSV(Comma Separated Values)表格中。

4)进行人工判读筛选,把所有可能正确的水库名称都保存下来。

2.2 水库坐标提取

目前,各大地图公司都开发了 Web 端应用程序,整合了数据库资源,并提供一些 API 以便用户调用相应功能从数据库中获取目标数据,或是帮助开发者进行某些地理功能的嵌套完成对个人地图应用的二次开发[16]。例如,百度地图的 Web 服务 API就提供了很多接口模块,包括地点输入提示,正、逆地理编码等。

水库坐标提取步骤如下:

1)根据信息点(POI)分类,调用百度地图API 直接检索其数据库资源。地点输入提示接口可以作为一种地点检索服务,通过匹配用户输入的关键词内容和检索城市等限制,推荐给用户 POI 地点列表,表中包括名称、坐标、数量等基础数据。同理,还可以使用高德、腾讯地图的 API 进行数据库检索,提取出水库名称及对应坐标。

2)将得到的几个水库数据表格合并后去重。由于电子地图的数据更新一般具有滞后性,仅依靠其数据库对水库信息进行检索,得到的结果与实际相比往往是不完整的。将该汇总表格与利用爬虫提取的“水库名称”表格合并,以“水库名”为关键词去除重复项,在新的表格中就会得到一些没有对应坐标的水库名称。此时进一步扩大搜索,在咸宁市水利和湖泊局网站或者百度上输入没有提取到坐标的水库名称,寻找其具体所在地。

3)利用百度地图 API 中的地理编码接口,完成对表格中剩余水库所在地坐标的查询,用户可通过该功能将结构化地址或地点名称转化为对应的地理坐标点(经纬度)。得到的部分水库提取结果如表 1所示。

2.3 水库矢量提取

目前,对遥感影像解译分类后进行目标提取是一项很重要的数据获取手段[17-18],利用遥感影像提取水体信息也是国内外学者常用的方法。利用表 1的提取结果,得到咸宁市辖区内水库的点矢量分布图,再以水库坐标点对覆盖咸宁市的遥感图像做缓冲区分析,可得到每个水库坐标点附近的遥感影像。

表 1 水库位置及坐标汇总数据的部分结果

从遥感影像中提取水体信息的方法有多种,根据使用的波段数目,一般可分为单波段和多波段两大类。Xu[19]提出改进的归一化差异水体指数(MNDWI),该水体指数能有效抑制甚至消除建筑物、土壤及植被噪声。因此,对于以城区为主要背景的水域,MNDWI 更适合对其中水体信息的增强和提取,表达式如下:

式中:Rg和Rm分别为绿光和中红外波段反射率。

以 Landsat 8 图像为例,其波段 3 为绿光波段,波段 6 为中红外波段,各类地物地貌在其可见光及红外光波段的 DN 值(遥感影像像元亮度值)如图2 所示。当使用式(1)处理 Landsat 8 多光谱遥感图像时,水域为正值,而城区、土地和植被通常为负值,这有效消除了陆地植被和土壤等信息,并保留了水体信息以供分析。

图 2 各类地物地貌在 Landsat 8 遥感影像的可见光及红外光波段 DN 值对比

统计处理所得的 MNDWI 图像的灰度直方图,利用自适应双峰阈值法进行图像二值化[20],进而剔除部分阴影区噪声,并将水体和背景分离开,提取出水体信息。水库水体的矢量化提取结果如图 3 所示。

图 3 咸宁市部分水库坐标点及分布矢量图

对得到的水库面矢量进行后处理:利用面积指标将破碎的且距水库点较远的细小面块剔除;对于一些面积较大但距水库点较远的块状区域,一般是在缓冲区内提取出的湖泊,也需要将其剔除;根据长宽比等形状因子指标,将狭长蜿蜒的并且未经过水库点的面块剔除,这种一般是在缓冲区内提取出的河流;根据就近原则,在水库点的附近选出 1 块合适的面块作为其库区范围。

3 水库自动提取结果与分析

3.1 水库提取数量验证

利用网络信息对水库名称和坐标进行提取,得到的水库共有 209 座(爬虫抓取数据);根据咸宁市水利和湖泊局官方公布的水库责任人统计名单等数据,线下实际汇总出的咸宁市辖区内水库共有 561 座(官方公布数据);已有的还有一份 2011 年官方公布的全国第一次水利普查的咸宁市湖泊及大中型水库分布矢量图,水库共有 24 座(已有数据)。将三者进行对比分析,分析结果如图 4 所示。

可以看出咸宁市的水库数量还是比较多的,在本研究中,由爬虫提取出名称的水库数量约占实际汇总数量的 37%,其中大型和中型水库的提取数量是完整的。而很多小型水库,尤其是小(2)型水库,可能因其太小或缺乏有效监管等,导致网络信息更新不及时,未能在咸宁市水利与湖泊局门户网站找到相关报道,因此未能被爬虫抓取到。

3.2 水库提取范围验证

根据统计资料汇总出的水库坐标点和已有的咸宁市湖泊及大中型水库分布图,通过目视解译在遥感影像上选取真实水库库区作为样本(按像元选取),统计水库提取结果的混淆矩阵,如表 2所示。

图 4 3 种方式汇总水库数量的对比分析

由混淆矩阵计算出水库提取结果的查准率为 0.973 5,查全率为 0.611 3,针对单一指标表征能力的不足,作为二者调和平均的F1分数为 0.751。可见被爬虫抓取到名称的水库的范围提取准确率较高,而对水库整体提取的完整程度偏低,这是因为本研究仅通过网络信息进行数据获取,没有使用线下人工统计得到的水库先验知识,有些提取出的小型水库由于没有对应坐标数据,也和噪声一并被剔除了。今后可以扩大爬虫的检索范围,一方面针对其他各种相关网站抓取水库信息进行补充,另一方面除了抓取文字信息外,还可以将相关网站中的各类附件抓取下来,再进一步对附件内容进行分析和筛选,从而完善整理得到的水库基础数据,对缺失的水库信息进行补充,避免误删的情况。可以预测,随着网络信息的持续发布与更新,本研究的提取结果将会逐步完整。

表 2 咸宁地区水库提取结果的混淆矩阵 座

4 结语

本研究提出并实现了基于网络爬虫的水库名称检索,完成了对水库对应坐标的提取,最后利用遥感方法提取出水库库区面矢量。结合传统的遥感水体提取方法,引入爬虫技术抓取分析网络信息,解决了传统水库提取方法中需要先验知识确定水库坐标的问题,可以完成对水库的自动提取,从而及时发现新增水库并对水库进行动态变化监测。

本研究也存在一些今后仍需完善的地方:

1)针对本次研究区域,提取到的水库数量并不理想。有较多小型水库的相关信息未能检索到,导致水库被识别为非水库,而有些水库则因为所在地信息不够精确,坐标间发生重合。这是因为本研究仅针对咸宁市水利和湖泊局门户网站编写了网络爬虫代码,后续可以完善爬虫脚本,对各下属区县的水利官方网站做进一步检索,还可以抓取一些工程招标网站发布的相关信息,综合各方网络信息补充水库相关数据。另外,本研究仅统计了网络文本信息,后续可以将公布有水库情况的网页内含有的表格数据也抓取下来进行分析。

2)本研究仅利用爬虫技术进行网络信息的抓取和简单筛选,通过对文本中指定位置的截取进行数据清洗,最后获取的水库名称仍需人工确定,后续可以考虑使用第三方库分析文本整体语义,进行语句分割和关键词提取,例如 jieba 库等,同时也可以利用自建词库进行训练,从而对抓取到的文本信息自动进行语句划分,将各文字段落逐句逐词地分割,并提取出其中包含有水库关键词的相关词汇。

猜你喜欢

咸宁市爬虫名称
利用网络爬虫技术验证房地产灰犀牛之说
咸宁市农业科学院情况简介
基于Python的网络爬虫和反爬虫技术研究
工友艺苑
咸宁市农业科学院农机所简介
大数据背景下校园舆情的爬虫应用研究
大数据环境下基于python的网络爬虫技术
沪港通一周成交概况
沪港通一周成交概况
沪港通一周成交概况