基于异构服务的水资源遥感监测平台设计与实现

2021-04-27 07:03徐小迪孟令奎
水利信息化 2021年2期
关键词:监测数据异构水资源

徐小迪,孟令奎,张 文

(武汉大学遥感信息工程学院,湖北 武汉 430072)

0 引言

地表水资源是人类在生产生活中的重要自然要素,随着气候变化及人类社会发展,地表水体呈现出一系列问题,如降雨量变化、水土流失及洪涝灾害等,使湖泊、河流等生态系统出现问题。随着水资源危机的加剧,人类生产生活受到影响,因此统一而行之有效的水资源管理方案十分重要[1]。

水文水资源信息是水资源管理的基础,我国长期重视水文水资源资料的整理工作:1986 年起首批建设完成的国家级数据库群就包含国家水文数据库;2000 年数据库内各主要流域及省级行政区所关联的节点已经基本建设完毕,但存在水资源监测数据标准化程度不一,数据源不完整,跨平台、领域数据共享较难等问题;2013 年,国家发布了第1 次水利普查公报;2018 年,全国水网数据库开始投入使用,发布了包含河流、湖泊、水库等 333 万余个水利实体的数据信息。水文和水网数据库存储的数据多为静态数据,或更新周期较长,在需要较强现势性的数据维护及动态性监测方面的应用中,数据匹配及管理难以满足实际应用需求。遥感手段作为广泛大量获取水资源信息的途径之一,能够全天时、全天候对地表水资源进行大面积监测,而且采集数据手段多样化,相较于传统地表监测手段,具有限制少、更新快、周期短、同步性高、数据准确性好的优点,使用遥感手段对地表进行监测能够为水资源的动态监测及多维度分析提供便利。

同时,在水资源监测管理方面,2016 年国家水资源监控能力建设项目通过验收,能够实现全国范围内的水资源监控,但是水资源遥感数据的整体使用方面存在体量大、结构复杂、种类繁多等特点。且遥感影像处理方面由于算法功能和服务接口的不断换代,存在数据与应用共享不足,顶层架构规划设计、各类数据服务不统一,以及通信协议不一等特点,导致数据存储、管理及信息提取等相应服务的集成存在困难[2]。因此在实际生产中,如何统一访问遥感数据,并有效集成异构遥感算法服务,提高用户使用效率,成为一个重要的问题。在“互联网 +”、大数据和网络强国战略的新时代背景下,随着水利部“以水利信息化带动水利现代化”指导思想的提出,水利信息化面临新的机遇与挑战[3]。为弥补水资源遥感监测方面的不足,推动水利信息化建设,有效进行水资源监测数据的管理,建立一个面向大数据的,能够提供多源异构数据及对应服务融合功能的水资源遥感监测平台(以下简称监测平台)是十分必要的。面向异构服务的监测平台的研究与建设能够解决多个系统之间的信息共享及服务应用的问题,避免水资源遥感监测信息孤岛问题的产生。

1 监测平台总体架构设计

随着遥感数据体系的不断发展和完善,水资源遥感数据呈现多源化的发展趋势,对于相应数据的处理方法也有所不同,而现阶段水利信息化建设也对水资源遥感数据处理与业务应用算法提出新的要求。面对多源异构的水资源遥感监测数据及算法服务,构建一个能够对水资源数据进行高效存储、整合、处理、分析及应用的监测平台是必然的需求。监测平台的总体架构如图1 所示。

图1 监测平台总体架构

监测平台主要有以下 4 层构成:

1)基础设施层。基础设施层主要包含支持系统运行的各类软硬件设备,硬件设备主要包括存储、网络等设备,软件主要包含底层的支撑软件(如操作系统、数据库及各类存储管理软件等)、中间件,以及各类遥感及数据处理专业软件(如 ArcGIS,ENVI,ERDAS 等)。基础设施层为整个平台提供网络及软硬件的保障。

2)数据层。数据层主要实现对遥感、地面实测、平台生成各类产品等数据的存储及管理,同时通过各种接口向用户提供数据或产品服务。

3)应用层。应用层主要包括组件和子系统,组件面向用户及数据库中的数据,提供基础的影像及数据处理业务,包括但不限于影像处理、管理及基础产品(如 DEM 和 DOM 等中间产品)制作。业务模块在共性组建的基础之上,进行各类水资源要素专题产品的生产及使用,主要包括地表水体产品生产、地下水监测、水循环要素反演等功能,通过中间件进行各组件的调用与组合,向各子系统传递数据及产品。

4)用户层。在数据层及应用层之上为用户层,通过权限控制及登录验证,可使系统管理用户、开发者及应用用户,在手机、笔记本电脑和其他设备上实现对水资源数据及相应产品的访问和使用,通过统一入口向各类用户提供相应的信息交互功能,满足不同用户的个性化使用需求。

2 监测平台关键技术分析

2.1 虚拟化技术

在基础设施层,由于水资源遥感监测数据存在异构性及海量性,因此对于底层存储设备有较高的要求,可采用内核虚拟机(KVM)及虚拟化软件QEMU 对平台的底层硬件资源进行管理。KVM 工作于 Linux 内核之中,可以直接与虚拟化管理程序进行交互,运行效率与稳定性较高[4]。

监测平台采用的 KVM 架构如图2 所示,其中Linux 内核运行在 CPU 上,在操作系统运行时,KVM按需加载 Linux 内核。QEMU 作为虚拟机模拟及监管器,通过调用 libvirt(针对 KVM 进行管理的工具和 API)提供的接口实现底层资源的分配及管理。

图2 KVM 架构图

2.2 一体化管理技术

对于多源异构的水资源遥感监测数据,监测平台建立了统一的管理体系,针对其非结构化、多格式、多投影方式且尺度不一的特点,设计了多源数据的整合方案,实现水资源遥感数据的高效存储及管理。同时构建了多维数据立方体,以满足对水资源遥感监测数据的存储与多维分析的需要,从而实现水资源遥感监测数据的快速查询分析与共享。

在多源数据整合过程中,监测平台根据数据类型及不同的访问方式采用混合存储机制存储数据。对结构化数据,如水资源业务、各类矢量数据,采用分布式关系型数据库集群;对于监测所需的水资源遥感影像等非结构化数据,使用分布式文件系统HDFS 进行管理,从而有效提高遥感影像等大文件的读入效率。

监测平台引入 Kylin 多维数据立方体的概念,对遥感监测数据进行高效集成管理。各类水资源信息被抽象为立方体的多个维度,如卫星、传感器、分辨率、网格、时间(月、旬、年等)、空间(省、市、县等),以及各类水体监测指数(NDVI,VHI等),从而对水资源信息进行特定分析。

2.3 高性能处理技术

监测平台内储存的海量水资源遥感监测数据,在分析前须进行影像预处理、水体指数提取、影像分类等多种业务流程处理,这些流程的处理效率及效果直接影响监测的准确性及时效性。监测平台使用 CPU/GPU 的高性能动态协同处理方式,根据卫星影像数据处理算法及流程的内在并行性,设计相应的动态协同处理模式,处理各类水资源遥感业务流程。

监测平台采用集群系统及多核技术对各类业务流程进行并行处理。根据各类业务流程处理的复杂程度,使用以下 2 类处理方法:1)单流程的遥感影像算法。进行数据划分后,使用整体并行模式进行计算。2)流程较为复杂的水资源遥感数据处理流程。通过流程编排将复杂业务拆分成简单业务,增加算法控制单元实现算法的高效处理。监测平台内部还搭建了基于开源深度学习框架 TensorFlow 的水利对象检测与提取的基本架构,实现基于语义分割模型的高分影像水体提取和基于目标检测的高分影像水利设施要素识别等功能。

2.4 服务一体化封装与调用技术

在异构的水资源遥感监测数据处理过程中,除结果输出外,各种算法的数据输入、实现方式及结构也存在多样化的问题。为使用户能够在监测平台上完成各类异构服务的统一管理及调用,将基础的及用户个性化的业务流程封装为服务,用户通过监测平台提供的统一数据接口,访问多源异构数据及算法,实现数据与用户,用户与用户间的交互。

监测平台采用 B/S 架构搭建,实现各项异构水资源服务的统一注册部署[5]。网站服务集成架构图如图3 所示,主要包含用户端前台、服务器端后台、服务元数据存储数据库及远程调用集群(Hadoop 集群)。

图3 网站服务集成架构图

在监测平台中,用户可以通过浏览器访问平台使用各项服务。图3 中的服务器端后台即为网站后台,作为网站核心,对外向用户前台提供功能支持,对内与服务元数据存储数据库及文件存储和远程过程调用集群进行交互,实现水资源异构服务的发现和调用。注册到平台的各类异构服务及其应用环境,存储于分布式集群中,其元数据存储于MySQL 数据库中,同时使用主从复制实现读写分离,以减小单服务器负载[6]。

3 监测平台功能与业务流程分析

3.1 功能设计

根据水资源遥感监测过程中对于影像数据的处理和各类异构算法的调度等需求,以及各级部门、单位对于平台的管理需求,按监测平台的主要功能分为 4 个功能模块,具体功能设计如图4 所示。

4 个功能模块分析如下:

1)基础模块。面向水资源遥感监测数据的基础处理,基础模块包含影像数据的预处理模块,主要为对影像数据的辐射及几何校正。在处理过程中,主要面向 GF-1/2 卫星产品,通过系统内置的 DEM及 RPC 模型,对原始数据进行校正处理,为后续业务提供基础数据。同时水资源平台针对各类水资源指数计算问题提供专门的计算模块,对于NDVI和NDWI等常用的水体指数,处理过程相似,但数据量及计算密度高,可通过 CUDA 高性能并行计算框架,实现 CPU/GPU 协同处理,以提高生产效率。在水资源监测中,各种水体及水利要素的提取,在监测平台内由影像分类及深度学习等模块完成。结合各种水体指数,先通过 K-Means 及 ISODATA 等分类算法对水体对象进行初步分析,再通过分布式深度学习库 TensorFlow 对各类水体及水利要素进行精细化分析及提取。

图4 监测平台功能设计图

2)业务模块。业务模块主要提供用户向监测平台注册的服务,目前主要有天然水循环要素反演、水功能区监测、用水效率分析等服务。通过统一的封装与管理,监测平台使用者及用户本身可以通过统一的数据接口对这些服务进行调用,同时也可根据用户个人需求,进行不同服务间的组合与编排,通过控制服务输入、输出及中间产品的产生实现个性化水资源遥感监测信息提取。

3)服务流程与编排模块。服务流程与编排模块主要基于 Activiti 工作流引擎与 GeoJModelBuilder 建立面向 SOA 的服务接口封装方法,对于注册到监测平台内部的服务,经封装后,成为 Activiti Engine 可以调用的服务,并可通过流程编排及部署等,实现水资源遥感监测业务的组合,进行服务的按需使用。

4)运维模块。运维模块主要实现用户及日志的管理,包含用户注册,权限及操作管理等功能。

3.2 业务流程分析

监测平台通过虚拟化技术、数据高效存储及高性能处理机制、服务一体化封装机制,向各类水利行业用户提供现势性较强的水资源遥感监测业务产品。总体业务流程覆盖数据提取、影像预处理、水资源信息提取、专题产品反演、分析服务等多个步骤,监测平台提供基于工作流引擎的任务编排功能,支持用户自主设计水资源遥感数据分析流程,可以满足不同用户对于多服务协同处理及多任务并行的需求。在流程部署后,通过遥感并行算法、CPU/GPU 协同等并行处理方式,在底层虚拟资源池的支持下实现兼顾空间和时间覆盖的海量影像快速计算分析,进而得到水资源遥感监测业务产品,用于生产实践。总体业务流程图如图5 所示。

图5 水资源遥感监测平台业务流程图

4 监测平台系统实现与展示

监测用户可通过浏览器访问平台网站使用相关服务。当前监测平台集成了数据、服务、用户等模块,建立了用户与水资源遥感监测产品的业务交互,添加了服务接口,支持用户进行服务的部署和调用,可实现服务注册、查询、调用、修改、审核、文件下载及用户管理等功能操作。同时监测平台提供数据服务接口,初步支持地理要素元数据和专题产品的查询及可视化展示功能,其中影像及矢量数据的界面展示主要使用 WebGIS 框架进行开发[7],使用影像校正及NDWI指数计算服务对监测平台整体功能进行展示。

4.1 数据管理

数据管理模块是实现监测平台功能的主要支撑部分,监测平台的众多服务都是基于水资源遥感监测数据提供的。

数据查询主要通过 GoogleS2 空间查询层进行[8]。用户可以通过影像的产品号、获取时间、传感器、云量等描述性信息,对遥感数据进行查询并访问,通过查询所得的遥感影像可以进行水体提取及各类水体指数计算。

4.2 服务管理

服务管理模块主要实现服务的注册、编排、查询及调用功能,用户可以对与水资源相关的具体服务进行管理与应用。监测平台将影像几何校正及NDWI指数计算串联形成业务流程,实现服务的注册、查询及流程的编排。在服务流程编排后,将服务部署到监测平台上,通过数据库及硬件资源的支撑,运行整个NDWI指数计算流程,最终获得产品,处理结果如图6 所示。产品图中呈现白色的部分即为水体,监测平台将影像正射校正及NDWI指数计算转化为一体化流程,得到产品,从而进行水体分布情况分析。

5 结语

研究与实现的监测平台可以与国家水资源系统进行有效的对接,解决国家水资源监测方面国家主要部门与各级单位之间的数据交换与对接的问题。同时,监测平台能够对结构不一的各类水资源监测数据处理算法进行一体化的封装及调用,最终实现水资源监测数据与各类产品的统一、及时发布。面向实时水利业务监测,在满足时效性及精确性的前提下,从水资源监测数据的管理层面,面向异构服务的业务化运行监测平台实现了不同尺度水资源遥感监测数据管理及应用,面向多级用户发布多维、宏观、统一的水资源监测产品,能够满足各业务单位对水资源遥感监测数据的共享及交换需求。目前,各个层级的水资源实时监测及统计数据的共享机制还处于初步探索阶段,不够完善,因此监测平台能够实现的数据共享及服务调用还处于初级阶段。今后,随着水资源遥感监测数据共享体系及服务的完善,监测平台的性能将会有更大的提升空间。

图6 业务流程处理结果

猜你喜欢
监测数据异构水资源
ETC拓展应用场景下的多源异构交易系统
水资源(部级优课)
试论同课异构之“同”与“异”
《水资源开发与管理》征订启事
秦皇岛河口湿地环境在线监测数据应用研究
2019年河南省水资源公报(摘录)
多源异构数据整合系统在医疗大数据中的研究
吴健:多元异构的数字敦煌
水资源配置的现状及对策初探
基于小波函数对GNSS监测数据降噪的应用研究