APP下载

基于Web方式的地面自动站逐时气象要素共享平台

2012-09-29符凤平吴哲红褚丽君

中低纬山地气象 2012年6期
关键词:复选框气象要素控件

符凤平,吴哲红,褚丽君

(1.贵州省安顺市气象局,贵州 安顺 561000;2.贵州省镇宁县气象局,贵州 镇宁 561200)

1 引言

根据中国气象局《2012年地面气象观测业务改革调整和试点工作方案》(气发[2012]15号)的要求,为了适应地面气象观测业务改革调整工作,中国气象局综合观测司组织制定了新的《地面气象要素数据文件格式(V1.0)》,并于2012年3月31日20时起开始执行。自各级地面自动站执行新的要素数据文件格式以来,由于数据文件格式发生较大变化,文件命名和内容格式均与以前有所不同,导致部分气象业务服务应用软件无法继续使用,使气象业务服务工作受到一定程度的影响。为了解决这一现状,充分发挥地面自动站气象要素数据的使用效率,结合本地气象业务服务需要,对地面自动站气象要素数据中的国家级站单站文件进行了开发与应用,主要实现该数据的自动入库、Web显示与查询、Excel报表输出等功能。入库及补调部分的程序设计采用C/S工作模式,可运行在局域网内任何一台计算机上,要素显示与查询、Excel报表输出等功能的实现基于B/S方式,程序安装在Web服务器端,由于工作模式基于B/S方式,操作简便,维护集中在服务器端。本平台的开发与实现,对于各级气象业务、服务及管理部门,均具有一定的参考意义,可在全省范围内各级气象部门进行推广使用。

2 技术方法

2.1 功能简介

基于省—地—县气象光纤通信网和局域网,以Windows 2003服务器操作系统为开发平台,实现地面自动站逐时气象要素自动入库、按月补调、前端显示、要素查询、Excel报表输出等功能。

2.2 要素入库

基于C/S工作模式,在省—地—县气象光纤通信网保持畅通前提下,使用VB编程语言编制而成。将入库程序运行图标放入任务栏,使其在后台自动运行,定时读取各地面自动站要素入库。为了防止计算机网络或设备故障造成资料缺失,实现资料按月补调功能。

2.3 前端显示、查询及报表输出

以Windows 2003服务器操作系统为工作平台,依托已建成的气象宽带通信网络,采取B/S工作方式,使用ASP编程环境、HTML超文本标识语言、VBScript脚本语言、Dreamweaver网页设计软件、SQL Server数据库等技术开发而成,具有B/S三层逻辑结构,即表示层、应用逻辑层、数据服务层[1]。

其中表示层代表浏览器。其工作流程大概如下:在表示层,只要打开浏览器,输入需要访问的网址,浏览器随即向处于应用逻辑层的Web服务器发出服务请求,Web服务器在对用户身份进行验证完毕后,通过HTTP协议把结果传回浏览器端。

应用逻辑层代表Web服务器。其包含系统的事务处理逻辑,接受用户的请求,执行相应的扩展应用程序与数据库进行连接,通过SQL等方式向数据库提出数据处理申请,待数据库服务器将处理结果提交给Web服务器,再由Web服务器传送回浏览器[2]。这里的 Web服务器采用 Windows Server 2003操作系统。

数据服务层代表数据库服务器,该层接受Web服务器的操作请求,把运行结果提交给Web服务器。本平台采用SQL Server数据库系统,数据库命名为as_aws,库中建有dmxx表格,将要读取的各气象要素如气温、水汽压等设为数据库字段,除了年、月、日、时等字段的数据类型设为smallint外,其它字段的数据类型均设为nvarchar。对于数字开头的数据库字段如2 min风向、2 min风速等,为了避免数字与文本混淆引起系统出错,将此类字段加上中括号,即[字段名]。

3 入库与补调功能的实现

3.1 要素入库

基于省地气象光纤通信网和局域网,自动读取省级服务器上的地面气象要素数据文件,定时将逐时气象要素读取入库。利用VB定时控件,ADODC控件连接SQL Server数据库,在一个固定时刻(这里取每小时正点过10 min或20 min),逐个读取设置站点的气象要素,每读一站,即存入数据库中。资料的读取主要依据地面气象要素数据文件格式(V1.0)具体规定,按照本区域台站级别情况,主要读取国家级站单站文件,其名称为Z_SURF_I_IIiii_yyyyMMddhhmmss_O_AWS_FTM[-CCx].txt。国家级站单站文件内容共分为13段,每段占据文件内容1行,主要有:测站基本信息、气压数据、气温和湿度数据、累计降水和蒸发数据等,每段长度固定。除了第1行测站信息外,其它段都有固定的段标识符,如气压数据段的标识符为“PP”,温度和湿度数据段的标识符为“TH”。定时器读取要素入库流程见图1。

3.2 补调数据

主要实现按月补调功能,设置进度条提示补调进程。事先定义好循环参数,然后使用双层循环,外层循环将每月的天数作为循环参数,即选择从每月的第1天开始直到最后1天,内层循环参数使用0~23,代表每天的24个北京时次。由于地面自动站资料文件是按照世界时间命名的,补调每个时次资料前需要事先将北京时转换为世界时。

图1 要素入库流程

4 Web显示与查询功能的实现

4.1 Web显示

采用密码验证后即可进入显示主界面(见图2)。主界面显示数据库中最新时次的各气象要素,并进行30 s自动刷新。由于要素较多,为了快速浏览到应用较多的气象要素,可将其颜色作特殊标注(如图中蓝色标注)。

将系统读到的要素最新时间作为参数,经过一定转换后,分别计算出前一时次和后一时次的具体时间,然后使用参数传递命令Request.QueryString即可获取前后时次,实现气象要素信息的自动浏览。为了简略程序代码,主页显示、前后时次要素的调用等3个ASP文件中的显示表格均使用“#include file”语句调用同一个文件。

由于地面气象要素数据文件经过一定的格式转换后存放,所以在读取资料入库或进行Web网页显示前,需要进行一定的格式转换。当气象要素缺测时,文件内容被记录为默认字符串如“////”或“,,,,”,为避免在数值换算或格式转换过程中出现问题,入库前首先使用Isnumeric函数对其类型是否为数值进行判断,然后在Web网页显示前使用Formatnumber函数进行格式输出。如气温,入库前首先判断读出的数据是否为数值,若为数值,则将读出的数据用1 000减去该值后再入库,否则,将读出的数据直接添加到数据库中。进行网页显示前,首先判断检索数据库得出的结果是否为数值,若为数值,则将读出的数据乘以0.1后再使用Formatnumber((rs.Fields.Item("气温").Value)*0.1,1,-1)命令进行格式输出,否则将该值直接显示。

图2 Web显示主界面

4.2 数据查询

在主页显示界面的下方嵌入文本域和列表2个控件,文本域控件实现日期选择,使用JavaScript脚本语言编制而成,列表控件主要实现时次选择。同时,将2个控件加入一个表单中,表单提交使用post方式,使用Request.Form命令分别获取表单中的控件值,如获取日期使用命令Request.Form("select_date"),其中select_date为日期控件名称。然后,使用Dateserial函数对获取的日期文本域表单值进行转换,即可取得具体的日期。由于数据入库时间采取世界时,所以在实现网页显示前,需要事先进行北京时与世界时的转换。

5 Excel表格输出功能的实现

主要实现对各气象要素的自动选择性输出,可全选或少选,输出格式为Excel文件类型,对话框提示是否保存或是否打开。

5.1 全选功能的实现

为实现Excel输出选择界面中全选功能,首先将所有checkbox复选框及button选择按钮加入同一个表单,然后使用按钮的onclick属性调用一个由JavaScript脚本语言编制而成的自定义函数,函数代码如下:

5.2 数据库查询字段变量的生成

实现Excel文件输出时,为了获取用户随机选择要素形成的数据库查询字段变量,首先将所有checkbox复选框的 name属性设为 checkbox,value属性设置为相应的数据库字段(不能有误,否则会造成读取数据库失败),如输出实时气温,则复选框的value值设为数据库中的“气温”字段。

利用表单Form进行提交参数传递,除使用Request.QueryString获取日期参数外,还使用Request("checkbox")命令获取复选框控件值。默认获取的复选框控件值是由一组逗号隔开的字符串,为了提取到具体的数据库查询字段变量,首先使用split函数取出由逗号隔开的各复选框值,形成数组变量ar,在取出的复选框值后面加上逗号,去除最右边的逗号后,形成数据库查询字段变量sql2,然后使用"select"+sql2+"from dmxx where…”语句检索出选择的气象要素资料,其主要代码如下[3]:

5.3 Excel文件输出

写入Excel文件前,首先定义好表格格式,再先后写入经过复选框选择后检索的数据库字段名和对应值。表格格式主要作以下定义:定义页面使用字符集为国标汉字码gb2312,网页输出类型为Excel表格,输出的Excel表格文件名,Excel表格的单元格类型为文本。

向Excel单元格填入检索后的气象要素时,对于不需作格式转换的字段,直接将其值填入Excel单元格。需作格式转换的字段,使用Select Case语句对字段名作出判断后再进行转换。如对时间类型的字段,数据库存放采用的是世界时,输出到Excel文件时,将其转换为北京时。

对于其它数据库字段,格式转换方法与网页显示时的方法相似,分别使用Isnumeric函数和formatnumber函数判断其内容类型和格式化输出。

6 结语

系统结合C/S和B/S两种工作模式,分别实现了地面自动站逐时气象要素的入库、显示、查询与Excel表格输出等功能。地面自动站资料的Web共享实现,由于操作简便、客户端无需任何软硬件安装的特点,使其面向的用户范围较广,在天气预报业务、气象服务、业务管理或其它领域,均有一定的应用价值。正是因为这一点,系统在数据库结构设计、功能规划、安全稳定等方面,需要作重点考虑。

通过基于B/S模式的地面自动站气象要素共享平台,可实现的功能比较丰富,如可添加统计、图形、地图等功能,还可采用WEBGIS(万维网地理信息系统)技术,将地面自动站气象要素的各种功能通过使用Web地理信息系统来实现,使地面自动站气象要素的应用更加深入。本文仅以部分功能为例,阐述其相关技术与实现方法。

[1]邓文渊,陈惠贞,陈俊荣.ASP与网页数据库设计[M].北京:中国铁道出版社,2004.

[2]罗锐韧.ASP网页程序设计[M].北京:清华大学出版社,2005.

[3]何薇,舒后.网络数据库技术与应用[M].北京:清华大学出版社,2009.

猜你喜欢

复选框气象要素控件
成都电网夏季最大电力负荷变化特征及其与气象要素的关系
用好复选框 Excel条件求和更简单
制作具有自动计算功能的选购单
Excel中突显对比图表数据
沈阳市1951—2013年气候变化特征及其区域蒸发的响应分析
关于.net控件数组的探讨
一表显示多表动态对比图
北京市朝阳区大气污染物时空分布特征及与气象要素的关系研究
探测环境变化对临沭站气象要素的影响
就这样玩会VBA中常见的自定义控件