BS结构融雪洪水预警模型库系统关键问题研究与实现.docx
《BS结构融雪洪水预警模型库系统关键问题研究与实现.docx》由会员分享,可在线阅读,更多相关《BS结构融雪洪水预警模型库系统关键问题研究与实现.docx(12页珍藏版)》请在冰豆网上搜索。
![BS结构融雪洪水预警模型库系统关键问题研究与实现.docx](https://file1.bdocx.com/fileroot1/2023-4/17/cba0c843-d109-4b3a-a880-e34c7a86cfc0/cba0c843-d109-4b3a-a880-e34c7a86cfc01.gif)
BS结构融雪洪水预警模型库系统关键问题研究与实现
BS结构融雪洪水预警模型库系统关键问题研究与实现
摘要:
通过对模型库系统的研究,建立并实现了B/S结构的基于Web的新疆融雪洪水预警模型库系统。
该系统将成熟的关系型数据库系统技术与模型库理论集成在一起,结合参数元理论,并充分利用面向对象技术,从根本上解决了模型的表示、模型的管理、模型的组合运行、模型数据的共享和交换及模型的复用等关键性问题。
关键词:
融雪洪水;模型库系统;参数元;面向对象
中图分类号:
TP311.13文献标志码:
A
文章编号:
1001-3695(2008)03-0803-04
0引言
融雪洪水预警模型库系统包括模型库和模型库管理系统。
模型库强调模型的存储与表示、组织与应用,而模型库管理系统则提供对模型的检索、存取、更新、组合、运行等操作。
目前模型库系统主要研究领域仍然是有关模型表示和模型操纵的研究。
在表现形式上,模型库是各种模型的集合;在软件内容上,模型库则由许多面向对象的关系型数据库组成。
国外模型管理理论的研究始于20世纪80年代。
Blanning[1]首次提出了模型库的概念,并设计了类似于数据库查询语言的模型库查询语言(modelquerylanguage,MQL)来管理模型;Dolk等人[2]提出了基于框架和知识表达的模型抽象技术;Geoffrion[3]设计了一套结构化模型构造语言SML,首次将结构化程序设计思路植入模型生成问题;Muhana等人[4]又将系统论的概念用于模型库管理系统;LiangTingpeng[5]将推理知识学习方法融进了模型库管理系统。
国内自20世纪90年代以来,在GIS模型库系统平台、模型的标准化、模型的集成以及面向对象的模型库等方面都进行了深入的研究。
例如,李京等人[6]设计的基于C/S模式的模型库管理系统,能够较好地支持C/S模式的决策支持系统的开发和运行;黄跃进等人[7]采用框架来进行模型库的构建和管理,便于模型的重建和组合;毕建涛等人[8]提出了模型方法元数据的概念;LIChaofeng[9]从数学角度讨论了使用元图表示模型库的方式,它是对基于图形的表示方式的扩充与改进;薛安等人[10]研究并提出了元模型的结构和实现算法。
目前,国内开发的模型库系统多是基于C/S结构或单机系统的,而且模型的粒度较大,模型间的通信往往是通过数据文件或公用通信区的形式进行的,因此模型的运行效率较低,模型的组合也很困难。
而一些基于静态函数库的系统往往可扩充性较差[6]。
国内也有部分B/S结构的模型库系统的运用[11~13],但不很成熟,未能解决模型标准化问题、模型库与数据库之间的数据交换等关键问题。
到目前为止,还没有关于模型库系统的统一标准,也尚未出现成熟的商品软件,模型库系统的开发均由研制者自行完成的。
为了充分高效地利用已有的模型库知识和融雪洪水模型,开发必要的新模型,以下几点是必须考虑的:
a)减少模型的重复构建几率;b)有利于现有模型的充分利用和不同专业用户的交流;c)有利于不同模型集成时模型的选择;d)有利于不同数学表达的模型间的比较选择;e)有利于用户在使用时不必接触大量的编程操作与了解模型参数作用机理;f)有利于发现与改进概念表达内涵已经发生变化的模型;g)最终有利于自然地理的定量化表达。
笔者在对基于3S技术的新疆融雪洪水预警决策支持系统课题的研究中建立并实现了B/S结构的新疆融雪洪水预警模型库系统。
该模型库系统的设计充分利用关系型数据库技术和面向对象技术,采用完全模块化结构,实现模块与系统完全独立,规范化和标准化模型的输入、输出数据格式,同时也做到了数据输入/输出既可以是数据库方式,也可以是文件方式;模型库不仅包含融雪洪水预警模型和方法,还可以增加其他常用的洪水预报模型和方法;模型可被任意选择、组合用于构建融雪洪水预警方案。
1模型库系统发展过程
自20世纪70年代后期模型库思想问世以来,对于模型的管理经历了模型、模型软件包和模型库管理系统三个发展阶段[14]。
第一阶段的模型彼此独立,缺乏对模型的管理,各专业之间几乎全无了解;第二阶段缺乏对大批模型的有效管理,几乎是对模型的全数学方法处理,各模型间没有任何关系也没有任何约束,不利于选择需要的模型;第三阶段初步实现了基于模型库的模型管理,可以提供模型存储和表示模式及模型运行的计算机系统。
将众多的预报模型按固定的、公开的结构形式组织起来,通过模型库管理系统对各个模型进行有效的管理和使用。
各模型之间的区别在于其理论结构,而共同的组织形式可使其成为一个共享的整体,任何技术人员均可利用模型库开发洪水预警系统。
从软件角度来说,模型库中各模型均是一个模型构件,可被重复使用并组装成应用系统。
它是决策支持系统的共享资源。
根据数据库系统发展的经验和前人对模型库管理系统的研究表明,新一代模型库管理系统应具有如下主要特征:
模型要有比较统一的逻辑表示形式、有独立于模型的求解方法、可以表示模型有关辅助信息,以便从模型库中快速选取模型;具有组合运行能力,模型能够与数据库自由交换信息,可以快速增加和更新模型。
从软件技术和生产应用上,模型库应具备复用性、独立性、统一性和扩充性。
随着Web技术的发展,B/S结构的系统优势越来越被接受和广泛地运用,开发B/S结构的模型库系统无疑是对传统的基于C/S结构的模型库系统的扩展。
2基于参数元的融雪洪水预警模型库系统
2.1模型与数据的集成
模型库管理系统类似于关系型数据库管理系统,是随着决策支持系统的需要而发展起来的。
在模型库系统管理下,可以有效地对模型及其数据进行各种操作。
从实践上实现这样一个系统有几个关键问题需要研究,如模型的存储形式、模型的选择、模型数据规范格式、模型数据的共享和交换、模型的集成、模型与方法库的接口、模型与数据库的连接等。
融雪洪水预警模型库系统的思想来源于数据库的理论。
数据库是存储在计算机内相关数据的有规则的集合,它们有结构地组织在数据库内,具有较小的数据冗余度和较高的数据独立性。
对于数据库,需要建立数据模型和考虑数据物理存储方法,并建立其对应关系,使用户能够通过数据库管理系统找到所要访问的数据,而不必关心数据具体的存储过程,也不必担心存储结构的改变而影响数据的访问。
模型库与数据库的区别是模型库中存储的并不是模型本身,它以参数元形式与其他元数据形式在数据库中存在;模型库是构架在数据库之上的系统,具有方便操作的界面,通过建立索引与模型的各部分建立联系。
因此本文使用了数学上参数元的概念。
模型库在系统中是一种逻辑存在关系,以参数元进行传递,达到从数据库中存取信息的目的。
所谓参数元方法,是在模型库中,模型的参数不具有有效的数学意义和物理意义,模型被表示成模型外部变量参数(不包括常数与数学运算符)的符号化表示。
符合条件的参数称之为参数元,但它不等同于元数据。
元数据是描述数据的数据,而参数元只是为描述模型在模型库中存放的一种符号,它与模型参数在表现形式上一致。
对模型库的操作其实是对这些参数元的操作,但这是一种虚操作,元模型不以实际形式而存在,而以参数元的集合形式存在。
在模型结构表中,每一条记录都是一个元模型的虚拟表达形式,这样在运行模型库管理系统时,展现在用户面前的模型是模型文本方式或其他方式。
参数元本身不具有实际意义,但它可以通过表与表间字段的联系,与参数数据库或空间数据库建立连接关系,以达到调用数据的目的。
因此,参数元是关于模型库的数据库,参数数据库是关于参数元的数据库。
与数据库不同的是,这些参数元之间存在一种函数的依赖关系,模型的运行是在原模型基础上,由程序调用参数元的索引,通过方法库,调用空间数据库对模型参数进行赋值,或者由用户直接进行初始赋值,并在后台运行模型得到结果。
由模型库管理系统对模型库进行操作,每个元模型以多对多的关系与参数元建立联系,而每个参数元以一对一的关系与数据库保持联系。
这样就可以保证模型库与数据库或者空间数据库保持相对独立,在模型运行时又可以与数据库或者空间数据库进行数据交换,从而有效地解决了模型与数据集成的问题。
2.2模型库系统中的表及其关系
融雪洪水预警模型库系统的开发完全代之于全关系型系统,几乎包括模型库系统应用具有的所有操作。
其主要表结构与关系具体如下:
a)模型信息表(元模型表)。
它是模型库中最为关键的表,包括模型名称信息、模型功能描述;模型分类信息,将模型按照项目规划进行详细的分类,便于利用模型库进行类别查询,也便于其他用户清楚模型的使用范围;模型管理信息,如模型开发者、模型程序编制者信息,每个模型入库时间、适用条件等。
b)模型参数表(元数据表)。
可以再细分成两类表:
(a)模型参数类型表,它规定模型之间、模型与外界之间进行信息交换的数据种类和格式定义,包括类型名称、类型含义、该类型包含的参数名称、参数格式定义、参数性质(输入、输出、输入或输出)等;(b)模型数据表,它规定每个模型用到哪些参数类型,建立与第一类表之间一对多的映射,同时对模型类型的参数格式的定义更详细和具体。
c)模型运行表(实例数据表)。
它是元模型表和元数据表的具体化,包括两类实例表,即对模型信息表进行实例化和对模型参数表进行实例化。
这样不同的模型或者模型组合赋予不同的输入、输出参数值,就形成不同的模型实例。
d)参数词典表。
不同的模型需要不同的参数数据、参数名称的规范和统一,每种参数所代表精确的物理意义,是保证模型数据接口统一、数据共享的基础,也是用户准确理解模型参数意义的前提。
对于国内用户,更为关键的一点是对获得容易混淆的物理概念参数时显得极为有利,如汉语中入渗、下渗、渗流、渗透与英文中leaching、penetrate、infiltration、seepage、sink、ooze等概念,在常用工具词典中界限不清,而参数词典则起到了一部专业辞海的作用。
系统的模型参数借鉴了美国的SWAT[15](soilandwaterassessmenttool)模型的参数表。
2.3模型库系统的表结构设计
根据实际,由模型库中五类不同用途的表在融雪洪水预警模型库中建立了九个关系型表。
a)模型信息表:
存储模型英文简称、中文名称、模型功能描述信息、模型适用条件范围、模型作者、模型类型等。
b)模型数据接口类型文件表:
存储接口类型文件名、接口类型文件的扩展名、接口类型文件的含义、接口类型文件数据格式、接口类型文件性质等。
c)模型数据接口类型文件表:
存储模型的英文简称、接口类型文件的扩展名、模型数据接口文件名称、模型数据接口数据格式、模型数据接口文件性质等。
d)模型计算管理表:
存储模型计算管理流水号、模型计算管理名称等。
e)模型计算过程表:
存储模型计算管理流水号、模型计算过程次序编号、模型英文简称、数据站点编号、模型计算过程所需的数据接口文件等。
f)模型计算过程数据接口文件表:
存储模型计算过程标志、模型计算管理流水号、模型计算过程的数据接口文件名称、数据接口文件的详细数据、详细数据的数据行数等。
该表既提供模型计算的参数数据来源,也保存模型计算的结果,而计算结果又可以作为下一个模型计算的参数数据来源。
g)模型参数词典表:
存储参数的英文简称、类型、英文全称、中文全称、含义、物理单位、默认值、参考来源等。
h)站点名称编号表:
该表存储站点名称、编号、位置、信息等。
i)数据文件上传表:
存储数据文件名称、类型、数据保存的文件夹、数据文件上传时间等。
其中:
表a)属于元模型表;b)c)属于元数据表;d)~f)属于实例数据表;g)属于元参数词典表;h)i)属于相关辅助表。
3融雪洪水预警模型库参数格式定义
融雪洪水预警模型库系统的输入/输出参数类型经分析可以归纳成两类:
a)参数格式(模型起始状态参数和运算结果参数)。
每一行参数分为两部分:
第一部分为参数中文含义和物理量单位,再加冒号;第二部分为参数名称和参数值,参数名称必须在参数词典中有定义,在参数词典中能够查询到该参数的详细信息。
参数值可以是数值、字符,甚至是栅格图像文件,后跟分号表示一个参数定义结束。
例如:
积雪稳定下渗率(mm/s)=0.3;
融雪初始温度(℃):
SMTMP=0.50;
单元栅格平均海拔高度(m):
HAHRU=2321.0;
单元栅格水流流向:
FDM=FDM.TIF;
……
b)模型时间间隔参数格式(等时段连续间隔参数数据)。
参数数据分成两块,第一块是对参数的说明,占单独的一行。
此行又分为四部分:
第一部分为参数中文含义和物理量单位,后面跟冒号;从第二部分开始依次是参数名称、记录行数、记录列数,最后加分号表示一行结束。
第二块是详细的数据值,有多少记录数就有多少行数值。
每行数值的列数由记录列数决定,但是第一列数据必须是时间,每行结束后加分号。
例如:
流域出口断面总流量(m?
?
2/s):
RTW62;
JTH002200503121230268;
JTH002200503121430272;
JTH002200503121630270;
……
对上述两类参数格式,无论是输入还是输出参数都将保存在一起,而不必分成输入和输出两部分。
目前许多系统是将其分开的,这给数据共享带来诸多不便。
系统通过模型参数操作类来访问读写参数数据,用户需要按规范格式书写参数数据,系统将模型运行的结果按规范格式写入参数数据中,供其他模型调用,很好地解决了模型库和数据库的数据交换问题。
不仅如此,用户还可以根据需求将模型参数导出到惟一的参数文件中,参数文件名称由模型运行表记录中的字段惟一决定,并将此参数文件通过HTTP协议下载到客户端;反之亦成立,极大地方便用户使用。
4融雪洪水预警模型库系统的类设计
面向对象技术利用抽象来降低系统的复杂性[16],是一种有效解决问题的方法。
在全面分析融雪洪水预警模型库系统后,归纳出系统需求的六个基本类:
模型类、方法类、模型参数操作类、GIS栅格图像操作类、数据文件传输类、系统维护类,它们共同组成一个模型包。
在此思想的指导下,开发B/S结构的融雪洪水预警模型库系统变得容易了。
1)模型类它是系统中最重要的设计,关键要做到模型类的标准化,即封装在模型类的数据成员值和模型处理后的结果值由模型参数操作类来处理,模型处理过程放入模型类的方法成员中。
这使开发人员摆脱了繁琐的数据存取和更多的细节问题,系统的实现仅仅是如何实行实例化类的问题。
系统的每一个模型对应一个模型类,模型类名称要与模型信息表中的模型名称完全一致,在模型库系统中运行实例化的模型就变成运行名称相同的由模型类产生的对象,由此建立模型与模型库的联系。
2)方法类包含洪水预报模型常用的方法,供其他类尤其是模型类使用。
它不与模型参数关联。
3)模型参数操作类它用来解决模型与模型参数之间的数据交换问题,实际上也解决了模型库与数据库之间数据交换的难题。
因此模型库和数据库可以相互独立,带来模型数据共享、模型任意组合、模型扩充、模型与其他GIS软件集成等诸多便利。
4)GIS栅格图像操作类在融雪洪水预警模型库系统中有一类非常特殊的参数数据与众不同,它是GIS栅格图像数据。
GIS软件多用GeoTIFF图像文件存储栅格图像的属性数据,已成为模型必不可少的参数。
在GIS软件中处理和显示图像文件易如反掌,在基于C/S结构的系统中也可以利用GIS软件的控件对其进行操作。
然而,B/S结构下的Web方式很难利用GIS软件的控件操作栅格图像数据,所以,系统开发出对图像数据的提取、修改、保存、产生含有新属性数据的栅格图像文件、图像格式转换(如TIFF格式与JPEG格式的转换等)等一系列操作方法,将这些方法封装在GIS图像数据操作类中。
5)数据文件传输类客户端的用户希望将本地参数数据交给服务端的模型库系统作为模型的输入参数,或者将服务端模型库系统运行后的输出参数数据导出为参数文件保存到本地,均离不开数据文件的上传和下载,利用HTTP协议开发数据文件传输和导入、导出数据库方法并封装成类。
6)系统维护类主要从加密、功能控制、用户权限等来保证系统的安全性,提高融雪洪水预警模型库系统的安全性。
类的开发采用跨平台并且有生产力的Java语言,其优点众所周知,不再详述。
5模型库管理机制
由于模型库往往比较庞大,并且要求可动态生成对象,另外还要求支持分布式环境中决策支持模型的远程调用,或者是基于Web方式下的运行。
不能将模型直接组合作为独立存在的类打包在模型库下,通过生成特定的对象直接来使用,必须采用一定的策略对模型库进行管理。
这里,采用OOP思想中的工厂模式来管理和生成模型,称为模型工厂(modelfactory)。
通过模型工厂方法,可以将模型对象的创建和使用分离[17,18]。
将模型工厂的思想应用到模型库管理上,首先要定义一个模型接口(ModelInterface)和一个模型工厂类(ModelFactory)。
模型库中的所有模型必须是模型接口ModelInterface的实现,即Java语法规定的所有模型必须实现ModelInterface接口中定义的一系列方法。
当调用ModelFactory来产生模型时,生成的不是一个具体模型对象,而是产生一个ModelInterface的对象,通过这个接口对象当中的方法来操纵模型。
因此,对不同模型的调用是一种动态管理过程,所执行的操作是不一样的。
其模型调用的过程如图1所示。
6融雪洪水预警模型库系统的结构
融雪洪水预警模型是洪水预报模型的一种。
洪水预报模型是随着计算机技术应用和发展而产生的一种对流域上发生的水文过程进行模拟的技术。
融雪洪水预警模型库系统中的融雪洪水径流模型根据其模拟对象主要分为以下几种,每一种类模型又有许多不同的子模型:
栅格融雪模型,分布式计算单元栅格融雪量;栅格产流模型,分布式计算单元栅格产流量;栅格汇流模型,在各单元栅格产流量的基础上计算区域(子流域)融雪水量在出口断面形成的地面径流流量,完全采用分布式空间水文分析技术实现。
整个融雪洪水预警模型的计算基于水量平衡,由栅格融雪到栅格产流再到栅格汇流。
融雪洪水预警模型库系统的实现完全采用B/S结构和跨平台技术,服务端采用Oracle9i关系型数据库对模型库系统进行管理,系统开发采用JSP与JavaBean相结合的技术,系统对模型库和数据库的操作利用JDBC技术,Web服务由Tomcat支持。
模型库系统的结构图如图2所示。
7结束语
总之,融雪洪水预警模型库系统不再是一个单纯的提供选择模型的系统,也不再仅是一个描述性系统而变成了容易实现的全关系型的系统。
它可以将工作细化到参数元级,通过已经封装的类,调用参数对应的数据库文件或按系统要求格式制订的参数数据,并将模型运行结果展示在用户面前,以验证用户模型选择的正确性或应用于项目的使用。
同时,Web新技术的出现,为模型库系统的设计和实现提供了新的思路。
系统从根本上解决了模型的表示、管理、组合运行,模型数据的共享和交换,模型的重用等关键性问题,并给出了实现方法。
与传统模型库系统最大的不同是该模型库系统实现了B/S结构下的管理和运行。
参考文献:
[1]BLANNINGRW.Issuesinthedesignofrelationalmodelmanagementsystems[C]//ProcofNationalComputerConference.1983:
395-401.
[2]DOLKDK,KOTTEMANNJE.Modelintegrationandatheoryofmodels[J].DecisionSupportSystem,1993,9
(1):
51-63.
[3]GEOFFRIONAE.Theformalaspectsofstructuredmodeling[J].OperationResearch,
1989,37
(1):
36-421.
[4]MUHANAWA,PICKRA.CompositemodelsinSYMMS[J].IEEEComputerSociety,1988,3
(843):
418-427.
[5]LIANGTingpeng.Analogicalreasoningandcasebasedlearninginmodelmanagementsystems[J].DesisionSupportSystems,1993(10):
137160.
[6]李京,孙颖博,刘智深,等.模型库管理系统的设计和实现[J].软件学报,1998,9(8):
613-618.
[7]黄跃进,反伟胜,朱云龙.空间决策支持系统模型库系统研究[J].信息与控制,2000,29(3):
219-225.
[8]毕建涛,吴洪桥,曹彦荣,等.资源与环境信息系统中模型方法元数据及其集成[J].地球信息科学,200
2,4
(2):
1116.
[9]LIChaofeng.ANewrepresentationofmodelbase[J].JournalofSouthCentralUniversityforNationalities,2002,21
(1):
56-59.
[10]薛安,马蔼乃,倪晋仁.模型与GIS集成理论初步研究[J].应用基础与工程科学学报,2002,10
(2):
134142.
[11]余志文,刘申,柯锐鹏.基于Web的面向对象模型库系统[J].地球信息科学,2003,3
(1):
7377.
[12]周公乐,工锦地,唐世浩,等.基于Web的遥感模型库建设中的关键技术研究[J].遥感信息,2004,1:
38-41.
[13]张振兴,王翠茄,刘建峰,等.基于Web服务的模型库系统的研究与实现[J].华北电力大学学报,2003,30(4):
78-81.
[14]陈文伟.决策支持系统及其开发[M].北京:
清华大学出版社,1994.
[15]NEITSCHSL,AMOIDJG,KINITYJR,etal.Soilandwaterassessmenttooltheoreticaldocumentation[R].Texas:
AgriculturalResearchService,2001:
467-490.
[16]TIMOTHYCL.面向对象软件工程[M].张红光,温遇华,徐巧丽,等译.北京:
机械工业出版社,2003.
[17]王冰,琚春华.面向对象DSS模型库设计[J].计算机时代,2005(6):
1517.
[18]邹小天.基于J2EE的模型库系统开发研究[J].武汉理工大学学报,2005,27(12):
115117.
“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文”