基于数据库的区域自动站月报制作软件
2014-10-18赵玉娟
赵玉娟,张 辉
(1. 天津市气象信息中心 天津 300074;2. 水利部海河水利委员会 天津 300170)
0 引 言
所谓地面气象观测月数据文件(简称 A文件),是配有自动气象站的地面气象观测站根据自动观测数据和人工录入的观测记录及月报表封面、纪要、天气气候概况、备注等文字说明,经加工整理后形成的数据文件。[1]此类文件是气象部门非常重要的一种数据形式,是许多应用软件的基础。该文件的常规制作方式经值班人员手工操作本地的气象观测软件生成。[2]
对于国家级自动站,值班人员可利用测报软件手工制作,但对于数量众多且无人值守的区域自动站,手工制作方式不太适用。考虑到区域自动站仅有自动观测项目,制作月报文件无需人工录入信息,而且区域自动站的数据都已经进行了数据库存储,因此,笔者开发了一种基于数据库数据批量、远程制作区域自动站月报文件的软件。该软件在天津气象局区域自动站数据整编工作中发挥了重要作用。本文将对该软件的设计及相关使用经验进行介绍。
1 软件功能需求分析
1.1 月报文件构成简介
地面气象观测月数据文件为文本文件,文件名由字母、数字、符号组成,其结构为“AIIiii-YYYYMM.TXT”,文件内容包括台站参数、观测数据、质量控制、附加信息 4部分。台站参数是文件的第1条记录,由12组数据构成,描述了台站位置、台站观测方式、观测项目等信息。观测数据由气压、气温、风、降水等 20个地面要素构成,每个要素由指示码、方式位及该月观测数据组成,各要素对应的数据段内容与测站的实际观测情况对应。质量控制部分位于观测数据之后,根据文件首部的质量控制码生成。附加信息包括“月报封面”、“纪要”、“本月天气气候概况”、“备注”4个数据段。文件的详细格式要求参见文献[3],文中不再赘述。
1.2 软件功能需求分析
区域自动站属于无人值守站点,数量较多,观测项目皆为自动采集形式,各站的台站参数、观测项目存在差异,不同台站月报文件在制作流程上相同,但内容因站而异。此外,各气象部门存储区域自动站数据的数据库难免在命名、存储位置、数据要素存储形式上存在差别。鉴于上述原因,针对此类站点设计的月报制作软件应具备以下功能:①能够根据各区域自动站的不同特点灵活生成月报文件;②能够批量制作月报文件,有效提高制作效率,降低人工操作强度;③数据源应支持灵活配置,便于适应不同气象单位的数据库在存储形式上的差异;④用户能够按需设置制作月报文件的时间、站点条件。
2 软件设计
2.1 软件结构及功能设计
区域站月报制作软件的运行依赖于时间、站点、数据源及观测数据 4类信息,总体包括站点信息维护、数据源信息维护、月报制作条件配置及月报制作4个模块,系统结构如图1所示。
图1 系统结构图Fig.1 System structure
2.1.1 站点信息维护模块
为了按各站特点灵活制作月报,必须有站号、站名、站点地理位置、观测项目等站点描述信息的支持。站点信息维护模块负责站点信息增删改等功能的实现。
2.1.2 数据源信息维护模块
数据源信息维护模块负责数据源连接信息和存储信息增删改等功能的实现。
2.1.3 月报制作条件配置模块
时间和站点是制作月报的两项决定因素,月报制作条件配置模块主要负责时间和站点配置相关功能的实现。
2.1.4 月报制作模块
月报制作是软件的核心功能。月报制作模块根据用户配置的月报制作条件及数据源信息,动态获取站点信息和观测数据,按月报文件格式要求构造各数据段内容,生成月报文件。
2.2 元数据设计
在软件构造领域,元数据被定义为:在程序中不是被加工的对象,而是通过其值的改变来改变程序行为的数据。本软件的元数据包括时间、站点和数据源信息,时间信息为制作月报的年月信息,其他两类元数据相对复杂,具体内容设计如下:
2.2.1 站点元数据信息
站点元数据信息分为观测环境信息、观测项目信息、操作辅助信息 3类。其中,观测环境信息包括站号、经度、纬度、站名、站址环境、海拔高度、气压器高度、风速反应器高度;观测项目信息包括观测方式、要素数;操作辅助信息包括“是否制作月报”、“所属县区”。“要素数”与观测项目有关(比如观测温雨站点的要素数为 2),根据此字段可控制月报文件中的台站参数及观测数据段生成。“是否制作月报”属性用以控制月报制作时站点的选择范围。“所属县区”属性用以支持按县区选定多个台站。
2.2.2 数据源元数据信息
数据源元数据分为数据源连接信息和观测数据存储信息,其中数据源连接信息包括数据库 IP、登录账号、登录密码、库名,观测数据存储信息包括数据表名、观测时间类型、气压相关属性、气温相关属性、相对湿度相关属性、降水量属性、风相关属性、浅层地温属性、深层地温属性。月报文件虽涉及 20个地面要素,但区域站多数只观测常规的压温雨湿风,少数有浅、深层地温观测。因此,观测数据存储信息中仅设计了与其相关的观测项目。此外,为了适应北京时、世界时两种观测时间,设计了“观测时间类型”属性。
2.3 月报制作流程设计
月报文件制作包括获取配置信息和制作 A文件两大环节,其中制作 A文件环节又分为提取观测数据、构造文件名、生成台站参数、生成观测数据段、生成质控及附加信息段 5步,详细流程如图 2所示。A文件中观测数据按要素排列,而非按时间排列,因此每构造一个要素数据段都需筛选一遍相应月份的数据。获取配置信息环节包括获取用户配置的时间、数据源、站点信息,该环节获取的信息是后续步骤正确执行的基础。
图2 月报文件制作流程Fig.2 Flowchart of monthly data file making
3 软件实现及应用经验
3.1 软件实现
软件运行环境为 Windows系统,利用Delphi实现开发,[4]站点及数据源信息采用 Access数据库存储,观测数据源支持 SQL-server数据库,数据库访问利用ADO技术实现。
本软件为用户提供增删改数据源信息和站点信息的操作界面,对于初次生成数据源信息和站点信息提供文件导入和界面录入两种方式。配置月报制作条件时,对于时间信息可利用日历控件选择制作的时段(起始年月-结束年月),站点选择支持按县区选择站点和直接录入站号选择两种方式,直接录入站号支持写入多个站号,每个站号一行。制作完成的月报文件可选择按站号建目录存储和同一目录存储两种方式。
3.2 应用经验
为了一次批量制作多站多月的 A文件,需将多个数据表进行整合,区域自动站数量多,整合后数据量相对较大。以 224个区域自动站为例,一个测站每日有 24条观测记录,整合一年的数据表记录可达1,962,240条。以检索单个站点一日的数据为例,在不建立索引的情况下,检索 SQLServer 2000中的数据表一次耗费将近15 s,而在日期时间上建立非聚集索引之后,仅需对索引进行扫描,执行时间不足 1,s,查询速度提高了将近15倍。
制作 A文件时需要不断从数据库中获取数据,对于数据量较大的数据表,优化数据库查询环节的效率至关重要。鉴于上述查询对比,我们在制作A文件时采取了如下优化手段:①观测数据以年为单位分表存储;②在查询常用的检索列“日期时间”上建立非聚集索引。
4 结 语
本文介绍的区域自动站月报制作软件实现了基于数据库的区域自动站月报文件批量制作,在任何可访问自动站数据库的环境下都可使用,摆脱了原有制作方式对观测软件的依赖,降低了对制作环境的要求,为用户制作区域站月报文件提供了一种更为灵活、便捷的手段。■
[1] 中国气象局. 地面气象观测规范[M]. 北京:气象出版社,2003.
[2] 陈英,王荷平,张彩绯. 区域自动站报表制作方法[J]. 浙江气象,2011,32(1):34-38.
[3] 中国气象局. 地面气象观测数据文件和记录簿表格式[M]. 北京:气象出版社,2005.
[4] 刘瑞新. Delphi数据库程序设计教程[M]. 北京:机械工业出版社,2004.