青藏高原湖泊智能提取系统
2022-03-15朱先鸿王星捷袁伟强
朱先鸿,王星捷,袁伟强
(1.成都理工大学 工程技术学院,四川乐山 614007;2.四川经准检验检测集团股份有限公司,四川广安 638500)
青藏高原是中国最大、世界海拔最高的高原,被称为“世界屋脊”,青藏高原所拥有的湖泊数量是全国湖泊数量的39.2%,而湖泊作为陆地水环境的重要组成部分,参与大自然的水循环,对气候的变化有着敏感反应,相当于气候变化的指示器[1],青藏高原的湖泊群是研究青藏高原气候环境变化的重要组成部分。为研究青藏高原湖泊面积的时空变化规律,利用遥感监测是非常便捷、高效、可行的方法。在遥感数据处理和分析上,目前的方法大多采用ENVI 软件结合ArcGIS 进行处理和分析。杨珂含等[2]在研究青藏高原湖泊面积动态监测时根据NDWI 和HRWI值,进而通过阈值进行提取,再进行一系列处理,从而得到提取结果,并且对湖泊的时序变化进行了统计。德吉央宗等[3]对近40 年西藏色林错流域湖泊面积变化及影响因素进行了分析,董斯扬等[4]对近40年青藏高原湖泊面积变化进行了遥感分析,他们同样也是采用归一化差异水体指数(NDWI)并结合目视解释来进行人机交互的水体提取。
利用波段信息计算相关水体指数来对水体进行提取,能够有效地对湖泊水域进行提取,但是对相关软件的依赖性较强,过程较为繁琐,智能提取化程度不高。
结合地理信息系统(GIS)和遥感(RS)技术,引入机器学习算法对遥感影像水体进行智能提取,可以简化湖泊水体的提取过程。因此,设计青藏高原湖泊智能提取系统对研究青藏高原湖泊动态的监测与分析具有重要意义。
1 系统框架
目前在地理信息技术上有很多知名的GIS 平台提供二次开发接口,如ArcGIS、MapGIS、SurperMap等,其在GIS 服务、二次开发方面都很出色,能为用户提供一系列展示、分析等服务。
文中所设计的系统采用.NET 开发环境,基于MapGIS 的二次开发,结合地理遥感数据处理库(GDAL)和机器学习算法支持向量机(Support Vector Machines,SVM)[5-6]、决策树[7-8]进行系统设计与实现。
MapGIS 是中国地质大学开发的通用工具型地理信息系统软件,它提供了一套完整且功能齐全的组件、控件及插件,用户只需要灵活地应用它们便可以非常方便简洁地开发各自行业领域内的GIS 平台及应用系统[9]。在面向桌面端的应用开发上,MapGIS 提供了基于MapGIS 基础二次开发库,在.NET Framework 框架上,即Objects 开发。文中系统结合使用Objects 开发模式,具体的系统框架如图1 所示。
图1 系统框架
GDAL 是一个操作各种栅格地理数据格式的库,包括读取、写入、转换、处理各种栅格数据格式(有些特定的格式对一些操作如写入等不支持)。GDAL 使用了一个单一的抽象数据模型,支持大多数的栅格数据。GDAL 支持几乎所有在遥感领域中用到的栅格影像格式数据和矢量格式数据文件[10]。除了栅格操作,这个库还包括操作矢量数据的另一个库——OGR,因此这个库同时具备操作栅格和矢量数据的能力,并且支持跨平台。目前几乎所有主流GIS 软件都结合了GDAL 库的功能。
2 功能设计
系统是采用C/S 架构的桌面应用,实现了数据的可视化、管理与分析,实现了GIS 系统所拥有的基础功能,能够对影像数据进行读取、处理、分析和存储,可以实现栅格数据向矢量数据的转换、空间数据的查询功能,提取影像数据中的湖泊水体面积是系统的核心功能。具体功能设计如图2 所示。
图2 系统功能
系统的基本功能主要是基于MapGIS Object 二次开发,用于图层的展示、空间数据的可视化分析,包含了地图文件的加载、图层管理、地图缩放以及地图距离、面积及角度的测量、鹰眼地图、地图输出等基本功能。可以通过这些功能区操作地图数据,实现空间数据的可视化显示与输出。
湖泊水域面积提取主要结合遥感影像数据进行分析,通过SVM 支持向量机、决策树等机器学习算法将输入的遥感影像进行湖泊提取,再将提取得到的湖泊数据由栅格转化为矢量数据格式,从而作为湖泊水域面积分析的数据来源。
系统数据管理与数据查询包括湖泊矢量数据属性信息的修改、查询,对数据提供属性查询和空间查询,提供湖泊的属性信息从而查询其空间位置并且显示在视图中。可通过属性字段条件SQL 查询语句对空间数据进行筛选查询,也能通过空间定位查询,包括点查询、矩形查询、圆查询、多边形查询。
3 系统实现
3.1 数据及其存储
文中系统是基于.NET 和MapGIS Object 的桌面应用,数据采用MODIS 影像数据作为分析的数据,卫星遥感具有覆盖范围广、信息量大、重复频率高等优势,在全球变化研究中已经成为常规观测无法替代的重要信息源。以MapGIS 的HDF 格式的地理数据库来对空间数据进行存储,HDF 是一个能够自我描述、多目标、用于科学数据存储和分发的数据格式,它针对存储和分发科学数据的各种要求提供解决方法。结合GDAL 数据处理库对影像数据进行读取和处理。MapGIS Object 提供了很多接口,用于地理数据的展示分析,也为整个系统提供了一个稳定、安全的平台。采用关系型数据库SQL Sever 2008 对数据进行管理,实现关系型数据库与地理数据库的交互与数据共享,从而为系统提供一个可靠、安全的数据管理模块。
3.2 数据的读取与处理
借用GDAL 库提供的接口来读取遥感数据,读取遥感数据的目标是提取里面的湖泊信息,将遥感影像图应用波段转化算法,将读取的波段数据转化为RGB 数据,将影像转化为位图,显示在WinForm 的picturebox 控件中。首先将图像进行灰度显示,图像灰度化是许多数字图像处理的初始和基础工作[11]。在RGB 模型中,若R=G=B,则彩色表示一种灰度颜色,其中R=G=B 的值叫灰度值,因此,灰度图像每个像素只需一个字节存放灰度值(又称强度值、亮度值),灰度范围为0~255。图像灰度化是图像增强技术中基础且直接的空间域图像处理方法,通过图像的灰度化,图像变得更加清晰、细腻且容易识别,因此图像中的湖泊可以很清晰地呈现,为后期湖泊的提取提供便利。
3.3 智能提取
利用机器学习算法并根据灰度化的影像图进行湖泊提取,支持向量机(SVM)是一种二类分类模型,其基本模型定义为特征空间上最大的线性分类器,机器学习的策略是间隔最大化,最终转化为一个凸二次规划问题。通过选取图像中的目标样本和非目标样本进行模型训练,再将整个图像作为输入数据输入到模型中进行提取,得到的新图像就是模型的输出,也就是提取结果,如图3 所示。
图3 SVM提取结果
为了使结果更加准确,采用ID3 算法[12-14]构造决策树,ID3 算法起源于概念学习系统(CLS),其以信息熵[15-16]的下降速度为选取测试属性的标准,即在每个节点选取还尚未被用来划分的具有最高信息增益的属性作为划分标准,然后继续这个过程,直到生成的决策树能完美分类训练样例。将准备的样例用于训练决策树模型,再将多个通过SVM 方法提取的结果进行叠加综合分析。决策树将置信度高的RGB值保留,去除低的值,进一步提高影像提取的精度。
3.4 提取结果智能化处理
湖泊提取完成后需要将栅格数据处理为矢量数据,在处理为矢量数据的过程中,计算每个湖泊的数量以及面积。这里借助于MapGIS Object类库提供的矢量接口进行转换,通过矢量化处理,可以智能化地计算出青藏高原的湖泊水域矢量数据,每一个湖泊的要素都包含了面积属性。具体实现效果如图4所示。
图4 矢量化结果
3.5 数据查询
数据查询在GIS 项目中处于核心地位,也是基础功能,在使用GIS 数据时,经常需要从已有的数据中查询出部分满足条件的数据。数据查询分为属性查询和空间查询。在空间查询分析中,主要利用空间查询过滤(Spatial Filter)组建进行查询,它是一个同时包含了空间约束和属性约束的查询过滤,可以应用空间约束和属性约束来从特征类中获取一组限定的特征。对于已经提取的湖泊矢量,可以根据面积较大的湖泊进行研究,只需要设置根据面积查询的条件便可实现过滤。由于遥感数据所提取的湖泊不具有名称等其他属性,而空间查询可以根据要素的空间关系过滤出需要的结果,根据已有的矢量数据将与之相交的要素进行提取,从而实现目标湖泊的提取,以便对特定的目标进行分析。查询结果如图5所示。
图5 湖泊查询
4 实验分析
4.1 总体湖泊水域面积分析
文中实验的数据来自美国航空航天局(NASA)网站上的MODIS 数据,是2016 年到2020 年每年同时间的影像数据,提取2016 年到2020 年每年同时间的湖泊数据,记录每一年的湖泊总面积并存储到数据库,再将存储年份的湖泊水域面积数据进行统计。在2012 年,统计的湖泊总面积超过40 000 km2,与实际的研究结果相符合,如图6 所示。同时计算出相关年份的湖泊面积的变化率,从2016 年到2020 年,湖泊的面积一直在增长,其中2018 年的增长率最高。可以看出,从2016 年到2020 年,青藏高原的湖泊面积呈扩张趋势,与文献[4]研究的结果一致。冰川融水或许是高原湖泊扩张的原因之一,证明了数据提取的精度基本与实际值一致,变化规律与相关研究的结果相符合。
图6 总体面积统计
4.2 特定湖泊水域面积分析
在一些研究中,需要对某一区域的特定湖泊进行动态分析,这时必须提取目标区域的湖泊水域面积。借助于数据查询功能,用已知数据的矢量数据进行提取,在提取某一特定的湖泊后便可以对该湖泊进行动态分析。图7 所示为对色林错湖泊面积提取,并进行统计分析的结果,从图7 可以得出色林错湖泊的变化规律,从2016 年到2020 年,其水域面积整体呈上升趋势。该分析结果与文献[3]中40 年西藏色林错流域湖泊面积变化及影响因素分析的研究结果保持一致,证明了数据提取以及规律变化的正确性。
图7 色林错湖泊变化规律
5 结束语
设计的系统以青藏高原地区遥感影像为基础数据,综合应用支持向量机(SVM)算法以及决策树对青藏高原地区湖泊进行智能提取,能对提取出的青藏高原地区湖泊结果的矢量图进行一系列数据操作、属性查询等。对青藏高原地区的历史遥感数据进行合理科学的处理,并高效、快捷、精确地提取湖泊。在完成湖泊的提取后,能够对湖泊水域面积的动态进行分析,通过湖泊水域面积的动态分析了解湖泊的演变规律,可为分析湖泊动态变化的成因等相关研究提供参考。
研究的系统对影像数据模糊部分的判断还需要进行进一步完善,以提高湖泊提取的精确程度。