1. 引言
水文监测工作中,除了水位、流量,还有一个很重要的要素——泥沙。河流中悬移质泥沙的颗粒级配分析,即不同大小粒径的泥沙的重量或体积在总体样本中占比 [1],反映的是泥沙的母岩性质,表现出泥沙被水流分选的强弱和输移特点。悬移质泥沙的颗粒级配分析是泥沙研究和河床演变计算的基本资料,是研究泥沙运动规律的重要依据,在研究水库淤积、河床演变、港湾整治、给水水质处理等问题中发挥着重要作用。
多年来,一代又一代的水文工作者在泥沙颗粒级配分析方面投入大量的时间和精力,从采集到分析,到计算再到整编,每一个流程都需要投入大量的时间和精力。几代水文人一直奋斗在泥沙自动监测的道路上,新仪器新设备的引进和使用,解决了泥沙水样含沙量和水样分析处理问题,提高了泥沙颗粒级配分析的工作效率。
但是水样处理只是泥沙测验工作的第一步,后期还有大量的工作需要处理。颗粒级配分析计算时,计算全断面平均级配过程复杂,计算方法种类多、计算量大,需要开发软件实现计算。软件研发时,若软件的需求与开发衔接不够,实施方案在开发过程中就容易变更,开发成本核算随之提升,开发的业务系统与实际使用需求会产生差距,业务信息化就会产生“中梗阻”现象 [2] [3]。
本文介绍了悬移质颗粒级配整编系统的研发与应用情况。按照软件工程的定义需求、开发设计两个阶段,本文介绍了系统在这两个阶段中,如何将任务需求转换为软件的系统结构,提炼相应的模块,做好总体的系统设计,如何从水文业务概念出发,在具体模块的详细设计中,设计出良好的数据结构,使系统具有良好的扩展性。该系统的研发应用为水文监测的业务信息化建设提供可参考的案例。
2. 系统的需求分析
一次完整的泥沙颗粒级配分析计算总体上分五个步骤,第一步为实施取样,即外业在具有代表性的垂线位置,依据河流的断面泥沙分布特点的不同,通过调压积时式、横式、瓶式等各类采样器,采用全断面混合法、垂线混合法或分层混法等不同的取样方法获取水样。第二步为水样颗粒级配分析,在泥沙分析室,采用尺量法、筛分法、粒径计法、吸管法、消光法、离心法或激光粒度仪法进行水样粒径级配分析。第三步为计算实测断面平均颗粒级配,由测点级配、垂线级配或同层级配等,通过加权计算得到断面平均颗粒级配。第四步为计算月年平均颗粒级配,采用单断颗关系或断颗过程法,从断面平均颗粒级配通过加权计算推出日平均颗粒级配,再用输沙量加权法计算得到月、年平均颗粒级配。第五步为级配百分比再处理阶段,这一阶段需要绘制测点级配、垂线级配、同层级配、断面级配、月年平均级配,从而得到每级粒径的分配百分数,进而得到中值粒径、平均粒径和平均沉速 [4] [5]。断面泥沙颗粒级配分析计算流程如图1所示。绘制级配曲线的过程如图2所示。
从图1、图2可以看出,悬移质颗粒级配计算信息化的核心,在于将泥沙分析中的多角色、多对象、多目标、多流程、多任务的复杂过程,通过合理的多模块集成,实现实测悬移质颗粒级配的成果输出和日、月、年平均悬移质颗粒级配的成果输出。单颗、断颗关系曲线拟定为日平均颗粒计算的中间过程。颗粒级配曲线是整个成果的直观展示,并且拓展至平均粒径和平均沉速计算。
![](//html.hanspub.org/file/10-2411146x8_hanspub.png?20220908080838528)
Figure 1. Analysis and calculation flow of section suspended load grain-size distribution
图1. 断面泥沙颗粒级配分析计算流程
![](//html.hanspub.org/file/10-2411146x9_hanspub.png?20220908080838528)
Figure 2. Process of drawing grain-size distribution curve
图2. 绘制级配曲线过程
3. 系统的设计
3.1. 设计步骤
按照软件工程系统设计过程,首先对颗分计算需求进行概化处理。根据颗分取样及分析的真实过程,开展概要设计,最终将需求分析转化为软件的系统结构。然后,将颗分计算需求进行分解。由颗分系统定义需要解决的问题和功能需求,将需求分解为多种颗粒级配分类、颗分加权计算整编、绘图、单断颗关系拟合、粒吸结合法人工录入计算、服务器数据读写等几个主要需求。最后,明确各个需求之间的层次结构、相互关系,依据不同角色、对象进行集成调用 [6] [7]。
对照颗粒级配整编计算业务,按设计的需求及实现过程,设计系统的各个模块。第一步,调用服务器数据库数据读写模块,读取原始测验数据。若原始测验数据为粒吸结合法,还需要调用粒吸结合法录入计算模块。第二步调用不同颗粒级配分类模块,将原始测验数据按点、垂、层、断等类型进行分类。第三步对不同的级配调用相应的加权计算整编模块进行实测断面平均、月年平均级配的计算。当日平均颗粒级配加权计算时,还需要调用单断关系拟合模块进行单颗到断颗的转换计算。若需要输出级配曲线成果,还需要调用级配曲线绘制、平均粒径计算模块。第四步调用服务器数据库读写模块将计算后的实测断面平均、月年平均级配成果存入成果库。到此悬移质颗粒级配整编计算流程结束。颗粒级配整编计算系统总体架构见图3。
![](//html.hanspub.org/file/10-2411146x10_hanspub.png?20220908080838528)
Figure 3. Overall architecture of particle grading integration calculation system (relationship between modules)
图3. 颗粒级配整编计算系统总体架构(各模块间关系)
3.2. 详细设计
下面以不同颗粒级配分类模块为例,从程序开发的角度上,用面向对象理念,从真实的物理世界中建立对应的概念化的数据结构,恰当地选择高效的算法,对整个设计过程进行介绍。
级配包括点配、垂配、层配、断配、日月年平均级配等。空间上,从点、线、面之间具有右包含关系,时间上,从瞬时、日、月、年上也具有右包含关系。某时刻实测断面平均颗粒级配即属于空间上面的断配,也属于时间上的瞬时级配,因此以上各种级配的包含关系具有明显的层次,见图4。
各种级配均具有粒径级、与粒径级对应的百分比、取样时间、取样垂线位置、取样水深位置、分析方法等属性,利用取样时间、取样垂线位置、取样水深位置,可区分出不同的级配类型。按空间关系,若在1条垂线、1个取样位置,可判定为点级配;若在1条垂线、多个取样位置,可判定为垂线级配;若在多条垂线、1个取样位置,可判定为同层级配;若在多条垂线、多个取样位置,可判定为断面级配。按时间关系,断面级配的取样年月日定义日均级配,取样的年月定义为月均级配,取样年份定义为年级配,并分别用指定的信息来判断日、月、年均级配。在用面向对象语言进行设计时,可最大限度地与业务逻辑概念联系起来,如用抽象类代表虚拟化级配,在抽象类派生出具体的点、垂线(层)、断面、日均等子类。可将年平均级配作为根,月日断等次序作为节点,建立起不同级配的层次结构。
在模块中可以根据取样时间、取样垂线位置、取样水深位置等来判断级配类型的定义函数,建立具有典型意义的递归函数,高效而清晰地完成级配的分类,完成级配层次关系的建立。级配节点关系递归如图5所示。
![](//html.hanspub.org/file/10-2411146x12_hanspub.png?20220908080838528)
Figure 5. Diagram of recursive function of grading node relation
图5. 级配节点关系递归函数示意图
对所有原始测验级配数据,按照取样属性判断级配类型,然后根据取样空间或取样时间关系找出所在的上一级级配。若上一级级配为垂(层)级配、断面级配、日级配、月级配,递归调用判断(见图5),将所有的级配层次全部找出,并建立如图4中包含关系的级配层次结构。悬移质颗粒级配整编计算系统层次结构用户界面,见图6。
3.3. 输出结果
1) 实测悬移质颗粒级配成果表,即实测河流断面中平均的颗粒级配成果表,包括不同粒径级占总沙样的百分比、中值粒径、平均粒径等。
2) 确定单颗、断颗关系,推求断面平均颗粒级配成果。拟定单颗断颗关系曲线,以单颗为横坐标(%),以断颗为纵坐标(%),点绘单颗断颗点据,通过原点确定关系曲线后,推求出断面平均颗粒级配。
![](//html.hanspub.org/file/10-2411146x13_hanspub.png?20220908080838528)
Figure 6. Hierarchical structure of suspended load grading calculation system
图6. 悬移质颗粒级配整编计算系统层次结构
3) 计算日、月、年平均悬移质颗粒级配成果。日、月平均颗粒级配采用输沙量加权法计算,采用等时距分断两个测次的时间,计算出每个测次所占输沙量从而根据该日总输沙量计算出系数,得出日、月平均颗粒级配。年平均颗粒级配采用每月的输沙量所占年输沙量的比值(系数)作为权重进行计算。
4) 将粒径级,百分比作组成的数据序列,在对数坐标中以百分比为横坐标,粒径级为纵坐标点绘断面月、年平均悬移质颗粒级配曲线。
4. 系统应用
悬移质颗粒级配整编系统适用于粒径计、移液管、仪器法级配分析计算,采用选点法、积深法、垂线混合法、分层混合法、十字线法的垂线或断面平均颗粒级配计算,以及实测单颗过程线法、单断颗关系线法等的月年颗粒级配整编计算。悬移质泥沙粒径范围为0.002~2.0 mm。
4.1. 网络化整编计算
悬移质颗粒级配整编系统采用客户端服务器的软件架构,所有的成果数据、测站信息、配置设置、用户信息等均存放在服务器端,在客户端用户完成交互操作,实现悬移质颗粒级配整编的各个功能。服务器端统一对数据进行维护管理,在水文信息质量控制上,实现了统一的数据源,有利于质量控制。基层测站完成整编计算后,相关技术管理部门通过软件实时地查看整编计算情况,及时介入到数据生产过程中,对存在的质量问题进行纠正。
4.2. 颗粒级配自动识别
颗粒级配分析完成后,系统利用不同颗粒级配分类模块,依据取样方法、取样时间、取样垂线位置、取样水深位置等信息自动识别级配类型,并生成颗粒级配的树形层次结构。用户通过级配系统构建的树形层次结构,可以清晰地分出级配类型,不用再根据分析成果中取样位置、分析号来人工判断级配类别,可以直观快速地完成后续各类平均颗粒级配的计算。
目前该系统已在长江委水文局、湖南省水文水资源勘测中心、山西省水文水资源勘测局等水文部门投入应用,各功能模块成熟完善,操作简便,得到用户的一致好评。
5. 总结及展望
通过详细的需求分析,将真实物理世界中的作业过程,抽象概括并分解为多个模块,设计总体架构,用面向对象设计理念,最大限度地将业务物理概念设计为合适的数据结构,充分地实现了悬移质颗粒级配分析计算整编的程序化、自动化、信息化。该系统操作简洁、步骤少,使用方便,维护简易,可扩展性强,适用范围广,已在长江委、湖南省、山西省、陕西省等水文部门广泛使用。
目前,虽然水文信息化建设已取得明显的进步,但水文监测分支项目业务的信息化过程仍是一项长期而艰巨的任务。从事软件开发的公司应加强水文业务需求分析,尤其要重视软件的系统设计,做好数据结构设计、体系结构设计。开发人员和监测人员通过系统设计的过程,进行深入的沟通,做好真实物理世界与抽象概念间的对应。从事监测业务的人员应能通过开发人员设计的系统架构图,清楚地解读各功能模块应用场景。如此,水文监测细分业务系统需求才能真正地表达出来,信息化建设才能顺利地开展,水文监测才能完全地实现信息化 [8] [9] [10] [11]。
参考文献