2005年,随着《全国气象雷达资料传输系统》(以下简称宽带传输系统)在全国各省级安装运行,山东省作为宽带传输系统建设的一期工程,至2005年5月底,该系统在5个雷达站已经全部安装完毕,并在6月1日开始上传雷达资料。到年底,全国七十多个雷达站的资料将全部上传国家气象信息中心。怎样利用这些雷达资料来组建省级雷达应用服务器,让多普勒雷达资料及时为气象预报提供服务,是急需解决的问题。雷达应用服务器组建的主要内容是资料的来源,由于雷达资料数据量非常大,国家气象信息中心不负责资料的广播,为此,开发出一套基于Linux平台的,适合省级系统的宽带雷达资料下载系统。各省可根据自己的需要,从主站下载有关台站的雷达资料,组建省级雷达资料应用服务器,供全省共享。下面,将简要介绍雷达应用服务器的组建,并详细介绍这套基于Linux平台的宽带雷达资料下载系统。
1 雷达应用服务器按主站要求,各省宽带网传输系统结构如图 1所示。由图 1可见,各雷达站的资料都是通过省级通信节点机上传国家气象信息中心服务器。为了实现全国新一代天气雷达资料为各级气象部门所共享,各省需要从国家气象信息中心服务器下载其它省雷达站的资料,结合本省雷达站的资料来组建省级雷达应用服务器。目前,各省级只有省级通信节点机可以访问该服务器,而且,各省所有雷达站上传资料在省级通信节点机的/qxdata/radar目录下都有留底,所以,选择在省级通信节点机上开发下载软件,下载资料的本地存放目录也为/qxdata/radar; 并充分利用省级通信节点机的“局域网分发”功能,将/qxdata/radar下所有的资料分发到局域网雷达应用服务器目录。由于转发到雷达应用服务器上的雷达资料文件是按通信传输规则命名的,这些资料不能直接应用,需要利用PUPD和PUP软件来实现文件名的格式转换和产品目录的分发。所以,在雷达应用服务器上必须安装PUPD和PUP软件,完成雷达应用服务器的建设,最终实现雷达资料的全省共享。
宽带网省级通信节点机是个基于limix操作系统的双机热备系统,选用linux环境下的shell脚本语言来编写程序。根据国家气象信息中心服务器上雷达资料的存放结构(/radar/年月日/雷达区站号/产品与基数据)和其数据量较大的特点,本系统将不采用常规的定制节目表的方式。在ftp的命令中有个mls子命令,它可以列出远程目录文件列表写入本地一文件名中。利用这一功能,可以在两个不同的时间,获得两个文件列表(可能不同),比较这两个文件列表的差,就是第一个时间到第二个时间之间需要下载的资料列表。而在linux操作系统下,对两个同类型文件进行列比较,有个很好的应用程序paste,(到目前为止,很少见到对paste的应用)它有许多运行方式,它可以按列比较两个文件,并输出比较的差列。这些都为我们的编程提供了方便。
2.2 雷达资料下载系统数据流程图由于主站雷达资料的存放目录为/radar/年月日/雷达区站号,其中“年月日”是个可变参数。下载系统设定在每日的00: 10时间内更新该参数,也就是说在每日的00: 10后,程序将从新的目录中获取当日的雷达资料。程序流程图见图 2。
该系统是运行在省级通信节点机上。根据定时作业的设定,它可以每隔5分钟(或更短)从国家气象信息中心服务器下载某雷达站的最新资料(包括产品或基数据)存人本地/qxdata/radar目录。资料的时效可以保证在10分钟左右,也就是说,在某雷达站上传的资料,大概10分钟左右后就可以下载到本地的雷达应用服务器。对于获取不同雷达站的资料,只需修改软件中的IP地址就可以实现。在省级通信节点机上,可以运行该下载软件的多个程序实例,也就是说可以获取多个雷达站的资料,具体需要,根据每个省的情况而定。
2.4 雷达资料下载系统运行环境配置(A、B机都做)(1) 程序运行:为了利用宽带传输系统的一些维护功能,程序安装在ccccmos帐户下。在$HOME下创建work目录,程序放置在$HOME/word目录下,修改执行属性,再将下面一行添加在ccccmos的定时作业中即可:
(2) 与系统FTP服务绑定:为了保障在机器重新启动时或服务切换到另一台机器时,做到该程序的自动切换和运行,也将该定时作业添加在$ HOME/bin/comcron.dat。
(3) 日志维护:$HOME/work/log目录的维护可以与宽带传输系统绑定,在$HOME/bin/comarch.sh文件中添加下面内容即可:
(4) 局域网分发:为了将这些下载资料从/qxdata/radar目录转发到局域网雷达应用服务器,需要编辑省级通信节点机的局域网分发配置文件$HOME/cfg/localservice.cfg。配置的内容根据自己局域网服务器的FTP的设置而定。下面是山东省的配置实例:
[LocalService]
160
#IP..为局域网雷达应用服务器的IP地址、用户名、口令
product/qxdata/radar IP用户名口令600 0 1
[product]
# Max number of files per sned
60 0 0 0 1 /radar
#file send sequentially and trans type (0 binary default,1 ascii)
Z_*_P_*0
3 雷达资料下载系统程序代码全部采用Linux下的Shell脚本编程。程序只包含一个执行程序getmdar。为了大家读起来清晰,代码中增加了#号打头的汉字说明。
getradar程序完全代码:
CC=Z9xxx #被获取资料的雷达站号,大写
USER=xxxx #远程ftp用户及口令,需修改
#如果$HOME/work/CC目录不存在则创建该临时目录
#为取远程目录文件列表生成ftp脚本get
#如果是第一次运行或每天的00点10分钟以前,重新生成get文件
#获取远程列表文件temp
##如果是第一次运行,生成上一次列表文件temp1
#使用paste比较temp与temp1,获取差异列表temp—1
# 为下载资料生成FTP脚本文件
#下载资料并写日志
该雷达资料下载系统已于2005年7月在山东省的宽带业务中应用。根据山东省气象预报与雷达拼图的需要,山东省已开通了天津、徐州、石家庄彳阜阳、连云港、盐城等六个雷达站的雷达资料下载,到目前为止,系统运行良好,没有出现任何故障。资料及时情况一般在10分钟内(这些雷达站PUPC软件的上行传输时间间隔应保证在1 ~2分钟),这些雷达资料已经在山东省的汛期预报工作中发挥了积极的作用。