面向水文数据综合应用的编码管理系统
2019-02-14杜蓓蓓
王 颖 ,罗 艺 ,李 珏 ,许 洁 ,杜蓓蓓
(1.宁波市水文站,浙江 宁波 315020;2.长江水利委员会水文局,湖北 武汉 430010)
1 问题的提出
近年来,水文信息化[1]发展迅速,各地区各部门都针对具体的业务要求,开发众多的信息化系统[2-4],部分系统结合GIS[2]等先进技术,为水文工作提供更快捷、高效的方式。然而,由于水文数据分散、管理方式各异以及信息孤岛、业务割据等问题[5],严重制约水文信息化发展。为在“十三五”期间解决好水文信息化资源整合共享的问题[6],一些学者对数据库设计、数据交换、信息发布等诸多方面的标准进行探讨[7-9]。然而,由于历史原因,各级管理部门对各类水文信息分别制定了不同的编码标准,造成同一水文站的不同类水文数据之间一站多码、站码混乱等情况普遍存在,水文数据存储、交换、整合标准难以得到很好的贯彻,为水文数据综合应用等信息化进程的推进造成一定困难。因此,基于统一的编码规则,为水文数据建立统一的编码关系势在必行。
本文以宁波地区测站为例,针对存在“一站多码(信道)”的情况,根据水文数据综合应用的需求,对测站的基本信息,基础水文数据库、实时雨水情数据库、遥测数据库的站码进行管理,为测站制定统一的信息化编码规则,设计开发宁波地区水文编码管理系统,从而实现一站一码,水文基础数据与实时数据无缝对接,为水文数据在线整编奠定基础,该系统的编码管理规则可进一步推广至浙江省乃至全国。
2 测站编码现状分析
宁波地区水文测站数据类型较多,关系较为复杂,一直以来,不同类型的数据都是分开保存管理,各自利用不同的编码作为唯一标识。主要有基础水文站码、遥测信道码2种编码形式。其中,宁波市水文站的基础水文站码根据水利部制定的SL 502 — 2010《水文测站代码编制导则》进行编码,遥测信道码根据浙江省遥测信道码规则编写。
2.1 测站基本信息
宁波市水文站涉及801个测站的数据管理,其中153个雨量站,32个水库水文站,212个水库水位站,55个潮位站,22个河道水文站,327个河道水位站。这些测站的名称、经纬度、地址、测站类型、施测项目等信息,对于测站管理、数据整理、整编等方面都具有重要作用,各类水文数据库都单独建表进行管理,导致测站信息发生变化时,需在多个数据库中,对相同数据进行多次修改。为实现一数一源,一点更新,需要对这些数据统一进行管理。行政区划、管理单位等基本信息较为固定,但在实际中,由于录入习惯不同和管理不规范,导致相同内容存储的信息不一致。同一测站的站名在不同数据库中存在名称不一致的情况,需要在管理中统一站名。
2.2 基础水文站码
基础水文站码为8位数字编码,是对整编成果数据进行管理的一种编码,用于指向整编成果数据库中相应测站的水文数据,常用的有水文水位站码、降水站码、水质站码。目前,宁波市水文站只有国家基本站和大中型水库站需要整编,因此只有部分测站拥有此编码。其中,拥有水文水位站码的测站有69个,拥有雨量站码的测站有140个,部分测站包含分断面信息,这些信息需要用于水文整编中,因此也编制了8位码,分断面共136个。在拥有基础水文站码的测站中,一些测站同时包含水文水位站码和雨量站码,一些只有其中一种,同时包含水文水位站码和雨量站码的测站,2种码可能相同,也可能不同。由于基础水文站码的复杂状况,决定了在测站编码和信息管理过程中,无法用基础水文码作为唯一标识。
2.3 遥测信道码
遥测信道码是各测站利用GPRS、雷达、短波等方式接收实时数据的信道号码,为4 ~ 5位。测站的信道类型多样,施测项目也不同。目前,接收的各施测项目数据有一个首选的信道,当首选信道出现临时故障时,需选择其他信道接收数据。因此,每个测站可能存在一个或多个遥测信道码,而一个遥测信道码也可能在不同的数据接收方式里对应多个施测项目,因此,无法使用遥测信道码作为测站编码和信息管理过程的唯一标识。
3 系统关键技术
3.1 水文数据对象化组织
水文数据对象化组织的主要目标是,将分散、分布、异构的各类水文信息,通过对象化信息组织形式进行信息组织,实现基于水文对象的信息组织存储模式和基于水文对象的信息应用体系。具体来说,就是整合多类水文数据库,实现水文信息的关联,并在信息整合的基础上实现基于水文对象的信息查询和应用。
本系统将宁波市的单个测站作为一个对象,将该测站的基本信息、基础水文码和遥测信道码,通过一个唯一的信息化标识进行联系,当需要获取该测站的任何类型水文数据时,只需通过这个唯一的信息化标识获取。
3.2 编码规则设计
将各部分数据的编码,利用一个唯一的信息化标识来建立各部分数据的统一关系。本文针对宁波市的实际情况,设计一种信息化码,具有可读性、唯一性、可扩展性。形式如下:
AABB.CCCC.DD
其中,AA为2位,表示市级行政区划,宁波市为01,当推广至整个浙江省的地区时,可继续编号。BB为2位,表示区县级行政区划,如海曙区为01,江北区为02,如果测站直接由宁波市管辖,则为00。CCCC为4位,表示测站在区县级行政区划下的具体编号,没有具体含义,每新增一个站,编号加1。DD为断面号,若无分断面,则直接为00。
利用该编码能确定唯一测站,将测站的基础水文码的水文水位站码、雨量站码、水质站码统一起来。由于单一测站可能存在多个施测项目和多个数据接收信道,因此,必须利用信息化码组合施测项目和信道类型,才可以唯一定位到该测站的某类遥测实时数据。测站关联关系可通过2个信息化码确定唯一一组关联关系。由此得到的信息化码与基础水文码、遥测信道码的对应关系,可在日后水文数据综合处理与应用相关系统的开发中,进一步获得信息化码与基础水文数据、遥测数据的对应关系。
3.3 数据库设计
本系统数据库主要依据SL 324 — 1005《基础水文数据库表结构及标识符标准》的库表结构构建,由于工作业务需要,需进行单独设计的表,字段标识符也尽可能与标准保持一致。库表主要包括:
(1)测站基本信息表:按SL 324 — 1005《基础水文数据库表结构及标识符标准》的库表结构的测站一览表结构建表,主键为信息化码。
(2)基础水文码对应关系表:建立信息化码与基础水文码的对应关系,主键为信息化码,水文水位站码、雨量站码、水质站码单独作为属性字段进行存储。
(3)遥测信道码对应关系表:建立信息化码与遥测信道码的对应关系,信息化码、信道类型、施测项目联合作为主键,遥测信道码单独作为属性字段进行存储。
(4)测站属性字典表:将上述表中涉及到的属性码字段各自建立字典表,解释各个属性码的含义,如施测项目码、行政区划码等,主键为属性码,对应其属性名称。
3.4 系统功能模块设计
本系统主要用于对宁波测站的基本信息、基础水文码、遥测信道码、测站关联关系进行查看、管理,各功能模块之间,通过唯一的信息化标识进行连接,其中基础水文码包括该测站的基础水文码和分断面的水文码。为方便对系统的管理,向部分用户提供字典管理和用户权限管理的功能。功能模块设计见图1。为实现多种站码的一站式管理,方便用户使用,提供对站码管理的统一入口。
图1 系统功能模块图
3.5 站码一站式管理流程设计
为方便用户对站码进行管理,本系统设计了站码一站式管理流程(见图2)。首先新建测站,录入测站的关键基本信息,生成信息化码,接着录入基础水文码和遥测信道码,建立多种站码与信息化码的对应关系。基础水文码要求一站一码,因此当录入站码与已有站码重复时,退回重新录入站码,反之,则保存成功,结束流程。遥测信道码要求单站、单个施测项目、单个信道类型的信道码唯一,若与测站、施测项目、信道类型完全重复,则退回重新录入,反之,则保存成功,结束流程。
图2 站码一站式管理流程图
3.6 系统框架
基于上述功能模块设计,本系统的数据库使用SqlServer,底层开发语言使用Java,前端使用JavaScript,采用MVC[10]框架(见图3)。MVC框架的模型(Model)、视图(View)、控制器(Controller)间划分清晰,各层间耦合较低。
图3 MVC架构图
利用该框架时,只需分别实现上述3部分的功能,即可完成系统设计。模型(Model)负责在数据库中存取数据,即根据数据库中各个表的结构建立类,类中的变量对应表中字段,并定义对表进行查询、修改、新增数据的函数。视图(View)依据模型数据创建,通过实现用户可理解的可视化界面,显示数据并发送请求。控制器(Controller)负责从视图读取用户输入,并调用相应模型中的函数,从而实现完成用户的操作。通过实现控制器接口中的方法,可实现用户的业务逻辑控制。本系统采用Spring MVC框架进行编程,有较强的灵活性和扩展性。
用户提取数据时,若数据量较大或网络状况不理想,系统会消耗较长时间进行一项任务,在视图部分,利用AJAX异步处理机制[11-12],在不刷新整个页面的前提下,向Web服务器请求数据。当服务器在客户端发来命令时,不会影响系统页面响应,客户端将提醒用户等待,并允许进行其他操作。服务器处理完成后,将结果返回给客户端。由此,可避免页面重复刷新,减少等待时间,这一机制极大地提高了系统用户的操作体验。AJAX异步处理机制见图4。本系统前端采用Ext框架,该框架可通过调用.Ajax实现异步处理机制。
图4 AJAX异步处理机制图
4 系统实现
为实现所有测站统一管理,在明确编码规则基础上,设计开发编码管理系统。该系统中存储每个测站的基本信息,包括名称、经纬度、地址、测站类型、施测项目、地址、管理单位等。在系统中,可以更改测站信息,当有站点增加备份设备时,可以添加相应设备的信息,以便其他数据库读取对应设备的数据,当有站点增加施测项目时,也可以进行设置,以便开展新项目的整编。总体而言,站点信息的变动都可以在系统中体现,是其他应用系统读取站点信息的基础。
4.1 测站基本信息
本系统提供对水文测站基本信息的数据维护,数据以表格方式展示(见图5)。
图5 宁波市水文测站基本信息图
4.2 基础水文站码对应关系
提供对基础水文码的映射关系管理,包括水文水位站码、雨量站码、水质站码,同时提供测站分断面站码管理。所有数据以表格的形式展现(见图6、图7)。
图6 基础水文站码对应关系图
图7 测站分断面站码管理图
4.3 遥测信道码对应关系
遥测信道码对应关系管理提供测站与其码类型、施测项目、站码、首选项以及启用日期的对应关系。所有数据以表格的形式展现(见图8)。
图8 遥测信道码对应关系图
4.4 数据字典维护
数据字典维护提供测站基础数据中相关显示内容的配置表信息管理功能(见图9)。其中数据字典包括流域基本信息、河流信息、管理单位信息、水系信息、测站等级信息、测站类型信息、测站分类信息、实施项目信息、行政区划信息、遥测信道码信息。
图9 数据字典维护界面图
5 结 语
针对数据整合过程中,遇到的多类水文数据之间一站多码、站名混乱的问题,以宁波地区测站为例,应用水文数据对象化组织技术,制定编码规则,并设计宁波信息化编码系统,利用统一规则的信息化码,对测站的基础水文码、遥测信道码进行统一管理,利用字典管理,将测站的基本信息和站码基本信息进行规范化统一管理。为后续水文数据的综合处理与应用提供依据,为水文资料在线系统的开发奠定基础。从目前系统的使用情况看,系统运行稳定,操作方便,有较高的安全性。