APP下载

互联网海洋气象预报辅助信息系统设计和应用

2013-12-14陆建新车助镁

海洋信息技术与应用 2013年3期
关键词:预报员气象预报海洋

严 俊,陆建新,丁 骏,车助镁

(浙江省海洋监测预报中心 杭州市 310012)

中国是世界上海洋灾害损失最严重的国家之一。据统计,仅1989—2007年的19年间,累计直接经济损失就达2 326 亿元,其中近一半的年份经济损失超过了100 亿元,1997年和2005年甚至高达308 亿元和332 亿元,风暴潮和海浪灾害造成的死亡、失踪人数总计6 274 人[1]。灾害影响的规模空前,对沿海地区人民生命财产安全和经济社会可持续发展构成了严重威胁。但从海洋灾害经济损失系数(灾害经济损失/GDP)来看,中国减轻海洋灾害的工作成效极为显著,接近于世界减轻自然灾害较先进的经济发达国家,这其中除了得益于沿海省、区、市重金投入修复和重建高标准防潮防浪的海塘、海挡等工程性措施外,各级海洋预报机构对历次严重海洋灾害的及时准确预警报(如成功预报了9216、9417 和9711 等特大风暴潮灾)也起到了非常重要的作用,极大地减少了灾害中的人员和财产损失[2]。

随着海洋经济的发展,山东、浙江、广东、福建等省先后成为国家海洋经济发展试点省份,国家对沿海区域的投入越来越大,沿海地区的人口和经济体呈现出越来越密集的态势。在全球气候变化和海平面上升的背景下,沿海地区遭受风暴潮、灾害性海浪、赤潮、重大海上溢油、危险化学品泄漏、核泄漏或辐射、海啸等灾害威胁的潜在风险加剧,对海洋经济发展、海洋生态环境和沿海人民群众生命财产安全构成严重威胁。由此,越来越重的防灾减灾形势对各级海洋预报机构的预报能力也提出了更高的要求。

国家海洋环境预报中心通过VSAT 系统每日下发大量海洋气象实况观测数据和预报产品,对于各级海洋预报机构和预报员而言,除了深入研究分析国家海洋环境预报中心提供的各类信息资料外,借鉴国内外其他技术先进的海洋气象预报部门、研究机构的预报产品、研究成果也不失为一个提高预报能力的有效途径。随着互联网的发展,越来越多的海洋气象部门、研究机构将对海洋、气象分析结果和预报产品等信息资源共享发布到互联网上,供全球的互联网用户查看、下载。这些资源有不少预报准确率较高,预报时效较长,借鉴参考价值较高,如欧洲中期气象预报中心、日本气象厅等机构发布的预报产品。因此开发一套软件系统,整理收集互联网公开发布的数值天气预报产品、实况天气图、卫星云图等信息资源,一方面可以作为VSAT 下发预报信息资料的有益补充,丰富预报员的参考信息量,另一方面作为预报备份系统,在VSAT 数据传输故障无法正常接收数据时,确保预报工作的正常开展,同时可以安装在个人计算机上实现异地或移动办公,开展应急状态下的预报工作。

1 需求分析

1.1 系统定位

系统使用对象为省级及省级以下海洋、气象预报台站的普通预报员,考虑到省级以下海洋、气象预报台站软硬件条件有限,同时有异地或移动状态时开展预报工作的实际需要,因此系统必须是轻量级的,对软硬件环境要求较低,且最好为绿色软件,拷贝到普通台式机和笔记本不用设置或简单设置后就能使用,系统使用必须简单、容易上手。

1.2 目标资源

根据预报员的实际经验,当前具有较高参考价值的海洋和气象预报资源发布网站主要有中央气象台(www.nmc.gov.cn),日本HBC(www.hbc.co.jp,该网站发布的资源比日本气象厅公开发布的更为丰富),韩国气象厅(www.jma.go.jp),欧洲中期气象预报中心(www.ecmwf.int),美国海洋陆地大气研究中心(wxmaps.org)等。对于省级及省级以下海洋、气象预报机构和预报员而言,只需要覆盖东亚、亚洲、北半球等区域的地面、高空、海浪等的各类实况分析图、数值预报图和卫星云图就能满足工作和研究需要,因此不需要全盘下载所有资源。

1.3 系统重要功能

1.3.1 资源管理

目标资源来自不同国家的不同机构,且种类繁多,拿预报信息来说,预报内容有地面、高空(850 hpa、700 hpa、500 hpa、300 hpa 等)、海浪等,预报区域有东亚、亚洲、北半球等,预报时段有3 h、6 h、12 h、24 h、48 h、72 h……240 h等,因此下载后必须按照一定的逻辑关系将这些资源有序组织管理起来,便于存储和预报员的调用查看。

1.3.2 自适应下载

目标资源中,一部分资源文件的链接地址相对固定,其不同时间发布的文件链接地址在较长时期内保持固定不变,如美国海洋陆地大气研究中心和HBC 发布的资源,以HBC 发布的东亚地面实况分析图为例,链接地址为“http://www.hbc.co.jp/tecweather/ASAS.jpg”,在不出现网站改版等情况下,这个地址不会变更;另一部分为非固定的,每次更新发布后的文件链接地址都有变化,如中央气象台、韩国气象厅和欧洲中期气象预报中心发布的资源,以韩国气象厅发布的东亚地面实况分析图为例,世界时间2013年3月30日03 时之后发布的文件链接地址为“http://web.kma.go.kr/repositary/image/cht/img/sfc3_201303 3003.png”,2013年3月30日06 时之后发布的为“http://web.kma.go.kr/repositary/image/cht/img/sfc3_2013033006.png”,可以看出,其在文件名称上有变化,导致不同日期不同时次发布的文件链接地址都不同。同时,绝大多数资源文件都没有固定的更新时间。因此,系统必须具备自动判断文件是否已更新,并及时下载的功能,以确保资源的时效性;同时要根据人工找出的链接地址变化规律,自动匹配生成正确链接地址,避免下载失败。

1.3.3 多格式显示

资源文件有png、jpg、gif、pdf 等不同的图像或文档格式,因此系统必须具备正确显示不同格式文件的功能。

1.3.4 资源文件信息修正

为满足不同预报机构不同预报员的需求,需最大化下载资源,文件下载数量可能多达上千个,由于网站改版等原因,即使是链接地址相对固定的资源文件也会变更地址。因此,系统应建立资源文件信息数据库,使数据和程序分离,便于大量资源文件信息的管理维护,并具备自动和人工两种方式的链接地址修正功能,确保资源文件的正确下载。

1.3.5 并行下载

除中央气象台外,其他资源的网站服务器都架设在国外,虽然单个资源文件的数据量很小,多数在几百KB,但由于网络状况差,存在服务器无响应、连接延时等现象,下载速率低,因此大量资源文件全部下载要消耗大量时间。在杭州市区10 M 电信宽带接入的网络条件下,以串行方式下载完1 000 个资源文件需费时3~4 h。为确保预报员在预报关键时间能查看到最新的参考信息,应采取并行下载等技术手段缩短下载时间。

1.3.6 存储备份

资源文件中除了小部分是实况分析图外,大部分是各类数值模式给出的预报图。实况分析图可用作客观分析、预报结果检验和研究工作等,需要长期甚至永久保存;预报图则主要用于预报参考,没有长期保存的价值。考虑到磁盘存储压力,应根据实际工作需要设定存储规则,对不同价值的资源文件设定不同时间长度的存储期,并自动进行定时备份和清理。

2 系统设计

2.1 系统结构

海洋气象预报辅助信息系统由1 个后台资源文件下载管理程序、1 个前端信息集成显示程序、1 个配置文件、1 个基于Access 的mdb 数据库文件和1 个资源文件存储文件夹组成。

后台资源文件下载管理程序常驻系统,读取数据库中的资源信息,自动判断互联网上目标资源文件的更新状态,实时下载已更新资源文件,并存放至指定的位置。该程序有人机交互界面,可以人工新增或修改数据库中资源文件信息,并承担资源文件管理任务,定时备份和清理已下载的资源文件。

前端信息集成显示程序根据配置文件和数据库中资源信息加载显示各类实况和预报图,预报员可以以不同方式同时加载显示多张预报图,如单页多图、单页单图、多页多图等。

配置文件用于存储系统配置信息,如数据库的路径、资源文件存储文件夹的路径、后台资源文件下载管理程序是否随操作系统启动、备份周期等。

Access 数据库建有多个资源文件信息表,分别对应链接地址相对固定的资源文件和不同变化规律的非固定链接地址资源文件,表内建有多个字段,包括所属国家、发布机构、文件类型、文件内容、地址链接、相对存储路径、文件名、更新时间、文件描述等。

资源文件存储文件夹用于存储下载的资源文件,在该文件夹内按照国家、机构、文件类型、文件内容来分层组织存放资源文件,比如韩国气象厅发布的3 h 更新一次的地面实况分析图存放在“资源文件存储文件夹路径韩国韩国气象厅Analysis ChartSurface03”下。

2.2 开发语言

系统开发选用C#,C#是微软公司发布的一种面向对象的、运行于.NET Framework 之上的高级程序设计语言。它是一种安全的、稳定的、简单的、优雅的,由C 和C++衍生出来的编程语言,它在继承C 和C++强大功能的同时去掉了其复杂特性,并综合了VB 简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET 开发的首选语言[3]。

2.3 数据库

由于海洋气象预报辅助信息系统的定位是能拷贝到普通台式机、笔记本上经简单设置后就能运行使用的轻量级系统,因此选择了同样轻量化的桌面级数据库Access,用于资源文件信息的存储、管理和维护。数据库中主要存储维护两类表,一类是链接地址相对固定的资源文件信息表,另一类是非固定链接地址的资源文件信息表。

链接地址相对固定的资源文件信息表的表结构见表1。

表1 资源文件信息表表结构(链接地址相对固定)

非固定链接地址的资源文件信息表根据链接地址变化规则的不同有多张,其表结构与表1 基本相同,所不同的是Url 字段被拆分成Url1、Url2、Url3……等多个字段,用来存储链接地址中固定不变的部分字符串。如韩国气象厅发布的东亚地面实况分析图链接地址“http://web.kma.go.kr/repositary/image/cht/img/sfc3_2013033006.png”,存储该资源文件的库表中没有Url 字段,但有Url1 和Url2 字段,分别保存“http://web.kma.go.kr/repositary/image/cht/img/sfc3_”和“.png”两段字符串,原地址中如“2013033006”的变化的字符串由后台资源文件下载管理程序在下载时根据设定的规则自动补完。以此类推,中央气象台发布东亚500 hpa高度场数值预报图的链接地址为“http://image.weather.gov.cn/product/2013/201303/20130331/NWPR/medium/SEVP_NMC_NWPR_ST639_EGH_AEA_L50_P9_20130331000000000.JPG”,地址中有两处变化,因此存储该资源文件的库表中要有Url1、Url2 和Url3 字段。

3 关键技术及实现

3.1 资源文件准实时下载

这些互联网资源的更新时间在一天24 h 内呈离散分布,凌晨、上午、中午、下午、晚上、深夜等各个时间段都有大量发布。为及时获取资源,应该尽量缩短从目标资源更新到本地下载的时间,以确保日常预报工作尤其是灾害预报工作中资源信息的时效性。系统开发过程中尝试过多种方法,2002年开发的系统早期版本曾经使用过跟踪排查方法,即按照一定时间间隔(如10 min、20 min、30 min 等)连续下载同一个资源文件,连续下载一个月或更长时期后,整理分析确定该资源文件在该时期内每次更新的最后时间,然后按照这个最后时间定时下载。但这个方法存在明显缺陷:(1)资源文件数量大时,整理分析工作量很大,需投入大量人工成本;(2)有新的资源文件加入时,需要再次整理分析;(3)多数资源文件的更新时间不稳定,按照某个时期内最后更新时间来定时下载很可能产生遗漏,或是下载的资源文件失去时效性;(4)目标资源文件未及时更新时会产生重复下载。

经过多次试验,最终采用预查后下载的方法来实现文件的准实时下载。技术方法简述如下:设定重复下载周期(如间隔20 min 发起一轮下载),每次下载前利用HttpWebRequest 和Http-WebResponse 两个类查询目标资源文件在网站上的最后修改时间LastModified 值,将其和存储在本地数据库中的UploadTime 字段值比对,如果LastModified>UploadTime,则判断资源文件已更新,之后利用WebClient 类的异步下载方法DownloadFileAsync(Uri,String)来下载,同时将LastModified 值更新入库;反之则放弃下载,转入下个资源文件的查询。

这种方法避免了上述跟踪排查法的缺陷,虽然增加了查询时间的消耗,但由于资源文件更新时间离散分布的原因,除了首轮要全部下载文件导致费时更长外,之后每轮实际下载的文件量较少,费时也相应少很多。在和文中1.3.5 部分的相同网络条件下进行下载测试,采用该技术串行下载1 000 个资源文件,首轮之后的每轮下载耗时在30~70 min 之间。

3.2 链接地址变化自适应

对于链接地址变化的资源文件,每次下载前要根据变化规律预判资源文件下个时次更新后的正确地址。经分析,不同网站的资源文件其变化规律不同,但都只是在日期时间上有变化。韩国气象厅和欧洲中期气象预报中心发布的各类资源,其链接地址通常为“string1+‘yyyymmddhh’+string2”的形式;我国中央气象台发布资源文件的链接地址则较为复杂,其形式通常为“string1+‘yyyy/yyyymm/yyyymmdd’+ string2 +‘yyyymmddhh00’+string3”。其中“yyyy”为年份,“mm”为月份,“dd”为日期,“hh”为发布时次,组成的“yyyymmddhh”代表了该资源文件的世界时发布时次,“hh”通常为“00”、“12”,部分产品如韩国实况分析图加密发布,其时次为“03”、“06”等3 的倍数,卫星云图则每个时次都有发布;string1、string2、string3 为链接地址中相对固定的字符串,存储在数据库中。

由于资源文件的实际更新时间通常晚于其标示的发布时次,因此可以根据这个特性来推测资源文件可能的链接地址。步骤如下:先将本地计算机时间转换成世界时间,取其中年份、月份、日期和小时部分作为“yyyy”、“mm”、“dd”和“hh”,按照上述不同形式和string1、string2、string3 等组成目标文件链接地址,查询该链接地址是否有效——即判断目标文件在互联网上是否存在,如果文件存在,则按照文中3.1 部分的方法判断是否需要下载;如果地址无效即目标文件不存在,则将“yyyymmddhh”时次值减去1 h,再次组成地址查询,如此轮询24 次,即从当前世界时间向后轮询24 个时次,如果24 个地址全都无效,则判断该网络或网站服务故障导致目标资源文件暂时无法获取,该文件此轮下载中止,等待下一轮。

3.3 多线程并行下载

由于资源文件数量及网络状况等因素的影响,以串行方式逐个下载资源文件会消耗大量时间,无法满足日常预报特别是灾害预报的时效性要求。本文采用多线程技术并行下载多个资源文件,C#中使用Thread 类来生成和处理线程,关于多线程技术的详情见参考文献4。

在文中和1.3.5 部分的相同网络条件下进行下载测试,结合采用预查后下载和多线程技术并行下载1 000 个资源文件,启动下载线程15 个,首轮下载耗时约40 min,之后每轮下载耗时基本在5~15 min 之间,可以满足预报的时效性要求。

3.4 资源信息组织显示

预报过程中,预报员时常需要打开显示多个不同类型的资源文件进行对比分析。由于下载的资源文件量很大,因此需要采用技术手段实现目标资源文件的快速定位和多个文件内容的同时显示。

本文以节点树形式来组织资源文件,并实现快速定位,其主要思路是将资源文件信息表中Country、Organization、Type、Content 的4 个 字段值依次逐层来建立节点树,并将LocalPath 字段值赋给叶节点(Content)的Name 属性,预报员在选择某个叶节点时,获取Name 属性,加上配置文件中资源文件存储文件夹路径,得到该叶节点所代表资源文件的绝对路径,调用相应方法打开该文件。这种国家、机构、类型、内容的树状结构实现了资源文件的有效组织,其结构层次清晰易懂,方便预报员的查找,使用过程中最多只需点击5 次就可以打开所需文件,见图1。当然也可以根据不同预报员的习惯,通过预设配置等方式一键显示所有常用的资源文件。以上功能主要使用了DataSet、TreeNode、TreeView 等类和控件。

图1 资源文件树形组织及多图显示

当前的显示器多为大屏幕宽屏显示器,可以完整地并排显示2 个文件的图像信息,也可以“田”字型方式压缩显示4 个文件。为便于预报员对比分析,以单页多图、单页单图、多页多图等方式显示不同格式文件的功能是必须的,由于实现原理并不复杂,将Visual Studio 2003 及后续版本中的现成控件如Panel、SplitContainer、PictureBox、TabControl、WebBrowser 等加以组合就可以实现,因此不再赘述。

4 结 语

针对互联网上共享发布的各类海洋气象参考信息资源,各级海洋气象预报机构,特别是参考信息资源相对较少的省级以下预报台站,如何有效挖掘利用这些资源,提高专业技术水平和预报质量,是一个值得深入研究的课题。本文作者在2002年利用VB 开发了系统的第一个版本,应用到浙江省海洋预报实际工作中,几年来根据一线预报员的使用反馈不断更新完善,当前利用C#开发的是第4 个版本,已成为预报员日常工作的重要辅助工具,对于提高预报员的工作效率和预报信息资源的存储备份有积极的作用和意义,值得进一步完善和推广。

[1] 左书华,李蓓.近20年中国海洋灾害特征、危害及防治对策[J].气象与减灾研究,2008,31(4):28-33.

[2] 杨华庭.近十年来的海洋灾害与减灾[J].海洋预报,2002,19(1):2-7.

[3] Simon Robinson,Christian Nagel.C#高级编程(第3 版)[M].北京:清华大学出版社,2005.

[4] Tobin Titus,Fabio Claudio Ferracchiati.C# 线程参考手册[M].北京:清华大学出版社,2003.

猜你喜欢

预报员气象预报海洋
龙江气象预报服务团队助力北京2022冬奥会
江西省天气预报员现状调查分析与对策建议
预报员培训的“复盘”方法
爱的海洋
第一章 向海洋出发
航空气象预报人为因素的分析初探
浅析广播气象预报节目主持人的语言特点及角色定位
黔东南州预报员队伍建设的实践与思考
当前气象预报服务的特点与改进策略探索
云南省山洪地质灾害气象预报预警方法研究