锡林郭勒盟气象局 郭立志
为进一步完善锡林郭勒盟激光雨滴谱观测站网布局,近年来陆续建设八个激光雨滴谱观测站,初步组成锡林郭勒盟激光雨滴谱观测站网,实现对各种类型的降水粒子的自动组网监测,降水粒子监测资料实时上传服务器,采集的降水粒子信息可以实时共享。经过业务试运行,服务器收集存储大量.csv格式文件,为数据管理应用分析造成很大问题。
为加强激光雨滴谱站网数据管理业务分析应用,针对目前锡林郭勒盟激光雨滴谱观测站网现状,结合业务需求,决定设计研制锡林郭勒盟激光雨滴谱站网数据业务管理系统,对锡林郭勒盟激光雨滴谱观测站网数据加强管理与应用,评估人工影响天气作业效果,制作监测降水粒子服务产品,更好地为农、牧业服务。
设计实现激光雨滴谱站网数据业务管理系统,系统将强化数据管理,定期形成电子档案资料,统一存储,方便以后科研、管理、应用。系统全面管理雨滴谱观测站网建站信息、设备信息、业务运行信息、质量考核信息,实现业务运行与质量考核一体化运行,保证雨滴谱观测站网业务化运行。依据雨滴谱站网观测数据支撑,经过分析研究雨滴数据,可形成pdf、doc、Excel文件格式初级服务产品。系统集成SURFER制图功能,充分利用雨滴谱站网空间分布特性,分析降水粒子分布形成图形服务产品。系统可收集每次人工影响天气作业前后降水粒子数据、全盟站点降水量等信息,综合评估分析作业效果,形成图片、表格等作业评估初级服务产品,为决策者提供服务。激光雨滴谱站网数据业务管理系统设计研究,填补了这一领域的空白。系统设计实现后,可加强雨滴数据管理,通过综合其他气象资料,结合全盟站点降水资料,加强对降水粒子分析评估,可有力支撑雨滴谱站网数据在人工影响业务方面的应用。
使用EnterpriseLibary做数据库访问底层,它除了其能兼容多种数据库,还可以使用其进行数据库访问,编写一次操作代码,基本在各种数据库都适用。
首先BLL层,通过BLL Fact ory对象,根据配置信息,实例化不同的业务访问对象,转换为数据访问层接口进行调用,BLLFactory通过反射间接方式,构建出不同数据库对象的数据访问层,而数据访问对象,他们都集成了基类BaseDAL,这个基类封装了增删改查等基础性操作,并通过高度抽象,只需要继承该基类的子类重载部分函数即可完成较为丰富的操作实现。
用户操作数据访问对象ItemDetail,它继承BaseDAL,具有操作数据库对应基本操作,还继承另一个接口IitemDetail,它可定义用户需要的特殊接口,以便使数据访问功能更强。
为提高系统运行效率,系统设计为客户端/服务器(C/S)结构,使用.NET Framework 4.6为目标框架,基于C#编程语言编写“激光雨滴谱站网数据业务管理系统”运行处理显示程序。系统采用通用三层开发框架开发,将整个系统研制划分为业务表示层、业务逻辑层和数据访问层。利于系统的开发、维护、部署和以后系统的扩展。分层也是为了实现程序开发“高内聚,低耦合”,符合程序设计开发标准化要求。把业务问题与程序设计高度契合,划分问题,各个解决,易于控制程序开发,便于解决问题。数据层可以解决将雨滴谱站网原始数据文件处理并保存到数据库,用户可根据业务需求,通过业务逻辑,访问数据库,数据访问层根据指令,按照用户要求将数据加工处理为表格图片等形式反馈给用户。系统可以管理站网基本、业务日常运行考核等信息,实现业务运行与质量考核一体化。系统采用三层架构分层设计,分别是表现层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。如图1三层设计架构。三层架构中主要功能与业务逻辑一般要在业务逻辑层进行信息处理和实现,其中三层体系架构中的客户端和数据库要预设中间层,成为组建层。三层架构中的三层具有一定的逻辑性,即是将三层设置到同一个计算机系统中,把业务协议、合法校验以及数据访问等程序归置到中间层进行信息处理,一般客户端无法和数据库进行数据传输,主要是利用COM/DCOM通讯和中间层构建衔接通道,实现中间层与数据库的数据传输,进而实现客户端与数据库的交互。
图1 三层设计系统架构
1.表示层
表示层又称表现层‘简称UI’,位于三层构架的最上层,与用户直接接触,主要是C/S信息系统中的用户浏览操作窗体。作为Winform窗体浏览操作页面,表示层的主要功能是实现系统数据的输入与输出,在此过程中不需要借助逻辑判断操作就可以将数据传送到业务逻辑层BLL层中进行数据处理,处理后会将处理结果反馈到表示层。换句话说,表示层就是实现用户界面功能,将用户的需求传达和反馈,保证用户体验流畅,操作友好。
2.业务逻辑层
业务逻辑层BLL的功能是对具体问题进行逻辑判断与执行操作,接收到UI层的用户指令后,会连接数据访问层DAL,访问层在三层构架中位于表示层与数据层中间位置,同时也是表示层与数据层的桥梁,实现三层之间的数据连接和指令传达,可以对接收数据进行逻辑处理,实现数据的修改、获取、删除等功能,并将处理结果反馈到UI层中,实现软件功能。
3.数据访问层
数据访问层DAL是数据库的主要操控系统,实现数据的增加、删除、修改、查询等操作,并将操作结果反馈到业务逻辑层BLL。在实际运行的过程中,数据访问层没有逻辑判断能力,为了实现代码编写的严谨性,提高代码阅读限度,系统会在该层中编写Data Access Common,保证数据访问层DAL数据处理功能。
4.实体类库
实体类库是数据库表的映射对象,在信息系统软件实际开发的过程中,要建立对象实例,将关系数据库表采用对象实体化的方式表现出来,辅助软件开发中对各个系统功能的控制与操作执行,把数据库表中的所有字段映射为系统对象,建立实体类库,进而实现各个结构层的参数传输,提高代码的阅读性。从本质上看,实体类库主要服务于表示层、业务逻辑层以及数据访问层,在三层之间进行数据参数传输,强化数据表示的简约性。
针对雨滴站网业务运行情况,结合系统架构设计,将系统功能模块化,按照数据业务应用流程,功能设计划分为五个部分:分别是数据采集存储、数据查询、数据可视化、结合SURFER进行数据空间分析、通过融合多源数据进行人工影响天气作业评估(具体功能设计结构如图2)。
图2 系统功能设计
1.数据存储功能
此功能实现雨滴谱站网数据传输到指定目录,然后将每个数据文件读取并进行解析,最后保存到数据库相应数据表。用户操作软件输入雨滴站、设备、业务运行、质量考核信息后保存,完成数据存储功能。
2.数据查询统计功能
此功能实现用户操作软件,通过查询选项操作,把用户数据需求,在数据库中查询,以表格形成呈现。用户可以以旬、月、季、年等进行统计并以表格呈现。
3.数据可视化功能
此功能利用ScottPlot控件进行数据绘制为图形。表现为折线图、条形图、饼图、散点图等。ScottPlot是一个免费的开源交互式绘图库,适用于.NET。它具有适用于Windows窗体的用户控件,它可快速将数据绘图生成为图像文件。ScottPlot的接口模仿Python的Matplotlib,大多数绘图都可以用一行代码创建(使用可选参数来自定义样式)。用户可复制数据可视化图像文件,添加到气象服务产品中,为各类用户服务。
4.空间分析功能
此功能利用Surfer数据文件网格化、数据网格点插值、叠加底图等功能,且在.NET实现了特定范围内等值线色斑图的绘制,可将雨滴数据绘制呈现等值线色斑图,并与锡盟地理地图叠加,表现出雨滴、降雨量等气象要素值地理分布与强度变化。用户可以将此图添加到气象预报、服务产品中,为更多用户提供参考服务。
5.效果评估功能
人工影响天气作业后,对作业效果进行评估是重要环节,评估主要是作业目标区与对比区降水量等气象要素值数学模型计算后再进行效果评估。作业目标区与对比区降雨量正态分布检验过程,估算作业影响区降雨绝对增加量、相对增加量、折合水量、社会生态经济效果等。
为了降低系统具备高效的数据查询效率,保持良好的扩展性,系统数据存储设计,充分利用Access关系型数据库功能,存储雨滴谱站网数据。系统功能模块可以收集分析雨滴谱站形成的数据文件,重点分析数据文件结构,技术攻关雨滴谱站网数据文件结构解析,并研究其存储表结构,最终形成数据库存储数据表,实现激光雨滴谱站网数据统一管理,形成存储电子日志资料,定期安全检查,数据文件统一存储,方便以后科研应用。针对系统处理存储数据实际需求将雨滴谱站网数据,设计为Access数据库四个存储表:分别为雨滴谱建站信息数据表、雨滴谱设备信息数据表、雨滴谱业务运行信息数据表、雨滴谱业务质量考核信息数据表,存储在Access数据库,为提供系统运行必要的数据支撑,便于用户分析研究业务运行信息、质量考核信息,实现业务运行与质量考核一体化,统一监督考核。
建立业务运行工作日志数据管理中心,设置用户职责权限与操作系统数据对应管理中心。利用C#程序设计研究分析统计处理模型,研究业务运行信息、质量考核信息有机统一,才能实现站网数据管理系统一体化、信息化运行。
雨滴谱建站信息数据表可以存储站网建站基本信息。其主要字段有记录唯一标记、自治区名称、盟市名称、旗县名称、站点名称、站点代码、经度、纬度、海拔高度、站点建设日期、分页控件专用字段,根据需要设计好表的字段、备注、约束、索引等信息。
雨滴谱设备信息数据表可以存储雨滴设备基本信息。其主要字段有记录唯一标记、设备名称、设备型号、生产厂家、生产日期、合格证代码、检定日期、分页控件专用字段。
雨滴谱业务运行信息数据表可以存储雨滴数据文件业务运行基本信息。其主要字段有记录唯一标记、年份、月份、站点代码、应发报数、及时报、及时率、逾限报、逾限率、缺报、缺报率、分页控件专用字段。
雨滴谱业务质量考核信息数据表可以存储雨滴站网业务运行质量考核基本信息。其主要字段有记录唯一标记、年份、月份、站点代码、质量考核错误、错误率、分页控件专用字段。
分析雨滴数据文件结构,系统解析数据文件,并与数据库相应表对应,通过系统数据逻辑层指令,通过数据访问层将数据存储于数据库,便于用户操作数据。针对雨滴谱站网运行现状,梳理业务数据需求,研究归纳业务运行信息存储结构,建立存储数据表,分析研究业务运行信息、业务考核信息统一监督,实现业务运行与考核一体化运行。依据系统运行需求,建立日志记录根据用户操作数据存储表,记录用户操作信息,保障系统安全可控运行。系统集成SURFER制图功能,充分利用雨滴谱站网空间分布特性,设计数据处理模式,分析雨滴谱站网降水粒子数据在锡林郭勒盟辖区内空间分布,形成可应用降水粒子信息细化分布图像,形成服务应用产品。系统收集每次人工影响天气作业前后降水粒子数据、锡林郭勒盟辖区站点降水量等数据,通过现有评估模式,综合评估分析作业效果,形成评估报告呈现给用户。
此系统是针对目前锡林郭勒盟激光雨滴谱观测站网现状,结合业务需求,设计并实现了一种基于客户端/服务器(C/S)模式的激光雨滴谱站网数据业务管理系统,可实现雨滴数据管理,通过融合其他气象资料,结合相关站点降水资料,制作降水粒子分析、人工影响天气评估等服务产品,可有力支撑人工影响业务向信息化发展。