1. 引言
近年来,青海省气象服务存在系统之间互不相通、数据源不统一、发布渠道不规范等问题,“业务系统普遍低小散、功能不完善、有效衔接不够、集约化程度低、运转效率不高” [1] [2]。随着信息时代的发展,气象服务产品制作和发布面临的难题就是如何高效、快速实现产品的自动发布,为此,很多省份都开发了一体化气象服务平台 [3] [4] [5]。由于气象服务产品的设计大都来源于不同课题或项目,缺乏统一规划,造成产品分散、没有统一的产品命名规则和存放地址,导致众多产品难以实现共享 [6] [7]。青海省气象部门为有效改变这种局面,规划建设集数据采集、产品初级加工、人机交互制作、统一发布的一体化气象服务业务平台(简称一体化平台)。为提高气象服务产品自动化制作水平和效率,使气象服务产品内容能够灵活定制,并在业务人员不改动程序的情况下方便对模板进行修改,提高平台的灵活性、可推广性和可拓展性,在一体化平台中设计了书签的概念,定义了一种气象服务产品模板与气象数据自动传递的标准和规范。书签概念借用了Office软件中Word文档环境中的书签(Book)概念,并将其涵义进行扩展、丰富和具体化。
2. 书签设计
2.1. 书签设计原理
一体化平台根据书签自动制作服务产品原理图(图1),设计书签定制标准和规范,将综合信息库中的天气实况、天气预报、指数预报、图片产品等数据按照定制规范自动取出,生成多样化的书签。气象服务产品根据实际需要将所需书签内嵌于产品模板中,通过人机交互制作子平台调用产品模板,制作各类气象服务产品,从而形成覆盖公众、决策、专业、影视等领域的气象服务产品。书签支持的数据源为综合信息库,数据类型包括天气实况数据接口、精细化报文、数据库表和图片文件。
2.2. 书签设计原则
为保证书签的实用性,规范设计书签的合理性和科学性,制定如下原则:1) 命名的规范性。由于书签是气象服务产品模板中自动化读取数据的元素,各用户产品千差万别、丰富多样,预计书签的数量将

Figure 1. Design schematic diagram of bookmark
图1. 书签设计原理图
会很多。为了便于区别、检索和使用,制定了一套规范的命名规范,书签命名包括书签的空间、时间和要素三个维度,以便确定书签的唯一性;2) 数据源的多样性。气象服务产品千差万别,其内容涉及的数据信息也多种多样,包括天气实况、天气预报、形势预报、指数预报、精细化预报、图片产品等,因此书签的数据源必须包括以上类别;3) 分类的丰富性。将产品模板中能够实现自动化的内容拆分成一个一个元素,会发现这些元素类型多种多样,例如一个单独的数值、一段文字组合、一个表格、一个图片、值班人员、日期等等,因此书签必须能够满足以上类别;4) 书签的复用性。为了减少书签配置,必须提高书签的复用性,尽可能多的分析不同产品自动化内容的共性。复用性包括多个方面的涵义,一是同一书签可用于不同单位的产品,如省级和市县都可以共用;二是可用于不同产品模板;三是可用于不同类别的产品模板,例如Word和Txt;5) 配置多样性。为保证书签调用数据的灵活性,必须实现书签配置内容的多样性,需要设定书签的时间(日期)属性、空间(站点)属性、要素属性,还可进一步扩展,例如时间属性包含时间点、时间段、发布时次、预报时效、时间差等,空间属性包含站号、站名、站点组、行政区域等,要素属性包含数据源、资料名称、访问接口、气象要素等;6) 应用普适性。书签具有独立性和普适性,不受应用载体的显示,必须能够适用于多种产品模板场景,例如WORD、TXT、EXCEL、Html、Xml、Json等文件模板;7) 权限可控性。为了保证书签的安全性,不允许任何人随意修改,只向书签管理员设置修改、删除等权限;8) 可定制性。书签可定制性是书签设计的灵魂和生命力所在,书签必须实现在前台页面的灵活定制,而不用修改任何原始程序,只有这样才能保证书签的无限扩展和易用性;9) 书签可统计性。为了进一步扩展书签的功能,设计了书签的二次可统计性,即可对单值类书签进行平均、累计、计数、最大值、最小值的统计。
3. 书签的分类
经过对现有气象服务产品内容进行分析,对自动化内容进行提取和归类,最终确定书签须分为单值类、组合类、表格类、图片类、基本类、比较类和统计类等7大类,才能实现所需要的功能。
3.1. 单值类书签
单值类书签是最基本、最简单的一类书签,其输出结果为一个单纯的数值,或者单纯的文字,前后和中间不带任何单位或修饰词语。其实现原理是通过设置书签的时间、空间和要素属性,保存为书签的各种配置属性。书签调用时通过读取配置属性从相应的数据源中检索数据,并不进行任何加工,直接进行显示。
3.2. 组合类书签
组合类书签是单值类书签的进一步升级,根据配置样式输出文字组合结果,并可对书签输出结果前后进行文字修饰,或者对多个单值类书签按照配置的规则进行组合,输出结果可以是多个数字或文字组合、多个实况要素组合、多个预报要素组合、实况预报混合组合等。因此一个组合类的书签可直接输出需要的文字结果,一段文字定义一个书签即可。缺点是复用性不高,但输出结果比较完整,在配置产品模板时不需要插入太多书签,使用比较方便,内容组合灵活。
3.3. 表格类书签
单纯的单值类书签和组合类书签还不能完全满足文字类产品的需要,例如表格类的文字内容,如果使用单值类的书签来实现,必须定制足够多的书签,配置过程繁琐,费时费力,因此设计了一款直接能生成一个表格的书签。表格类书签定制时需要配置一个表格模板,模板中需要定制表头,表头第一列默认为站名,其他列为气象要素。书签生成时会根据配置规则自动填充表格,其输出结果为一个完整表格,可以代替成千上万个书签,定义方便快捷,配置模板高效易用。
3.4. 图片类书签
图片类书签,在产品中图文并茂是最常见的表达形式,图片书签的实现只需要获取图片的绝对路径即可,因此,不管是一体化平台还是网络上的图片,只要具有规范命名均可定制为图片书签。制作产品时自动获取图片路径生成图片插入到产品模板中,提高了产品制作效率。
3.5. 基本类书签
产品需要注明制作时间、期数、值班人员等,为此设计了基本类书签,共分为三类:时间日期类、值班人员类、其他类。其中,时间日期类灵活多变。通过基本样式“yyyyMMdd HH:mm:ss”(yyyy:年;MM:月;dd:日;HH:时;mm:分;ss:秒),再增加“年月日”的文字,可以实现各种各样日期的书签定制。还可以配置前N天、后N天日期和时间。例如:20190801、2019-08-01、2019年8月1日、0801等等,实现时间自动生成,提高了准确率和工作效率。
3.6. 比较类书签
单值类书签不能满足国家站和区域站混合情况下统计降水中心的需求,因此需要设计一种可以对现有单值类数据进行统计运算的衍生书签,根据实际需要设计了求和、平均、最大值、最小值等统计功能。用来比较的书签只能是单值类的书签,可以任意多选单值类书签。但使用时需要注意只有选择一种要素时才有意义,例如将气温和降水比较没有意义。比较类书签提高了书签的复用性和可用性,多用于挑选多个站的降水中心、最高气温等。
3.7. 统计类书签
每个市县都需要单独统计本行政区域的降水中心、不同降水等级出现的站数及降水详细情况,利用现有的书签可以实现此类功能,但是需要配置大量的书签,容易出错,且当后期增加站点时不易进行维护。因此单独设计了一类降水统计类书签,主要分市(州)县分别进行统计,包括以下三类:降水中心、不同降水等级站数、降水详情。降水统计类书签还可以配置站点类型,例如国家站或所有站,以区别国家站和所有站点的降水中心,满足不同的需求。
4. 书签的实现
4.1. 单值类书签
单值预报书签需要配置如下要素:二级类别、资料名称、要素、时间差、站号(站名)。二级类别包括:

Figure 2. Implementation diagram of single valued bookmark
图2. 单值类书签的实现图
青海城镇精细化预报、全国城镇精细化预报、指数预报、趋势预报、形势预报、专业气象预报、上下班(早中晚)预报、地面温度预报、含氧量信息、燃气增量预报、旅游景点预报、逐小时太阳辐射预报、三天太阳辐射预报、7天定量降水预报、网格城镇精细化预报、网格乡镇精细化预报、网格旅游景点预报、网格专业精细化预报等。资料名称包括上午和下午3~168小时逐3小时选项。要素包括气温、最高温度、最低温度、湿度、3小时天况、12小时天况、12小时风向、12小时风速、风向、风速、总云量、能见度、3小时降水、12小时降水、24小时降水、24小时天况、24小时风向、24小时风速等。其配置界面如图2所示。
4.2. 组合类书签
组合类书签可输出多个数字或文字,数字或文字前后、之前均可加入其它文字、符号等。组合类的书签可以自定义输出文字,使用方便。如“预报_晚间预报_大堡子镇_16”配置项为“${station},${1},${2},${3}”,其中,${station}表示站名,${1}、${2}、${3}分别代表第一、二、三个要素,其输出结果为“大堡子镇,晴,−7℃~10℃,西风2级”。
4.3. 表格类书签
表格类书签可以将批量数据快速生成表格形式的产品。制作表格类书签只需要制定表头,即数据要素属性,并按顺序选择多个要素,即可生成表格书签,输出结果为一个表格。如制作一个“预报_精细化城镇_9镇_08”的表格类书签,可以通过设置数据要素属性:站名、天况、最低气温、最高气温、风向、风速,然后选择数据要素记录即可完成。数据要素记录通过站号指定,如“55866,55867,55882,55869,55871”,输出结果见表1。

Table 1. Implementation results of table bookmarks
表1. 表格类书签的实现结果
表格实况书签需要配置如下要素:资料名称、访问接口、要素、统计函数、时间、时间差、站号、样式表格,表格预报书签需要配置如下要素:二级类别、资料名称、要素、时间差、站号(站名)、样式表格。
4.4. 图片类书签
图片类书签通过指定一体化平台或网络平台上的图片路径,在产品制作时自动插入图片到产品模板。图片路径可以为静态的固定路径,如“E://1.jpg”、http://site/2.png,也可以是具有规范命名的指定格式图片路径,如通过指定符号在图片路径中动态引用时间要素。如“青海省交通沿线未来24小时降水量预报”的图片类书签图片路径为:http://10.180.21.93/product/rain_24h/Rain_24h_lwzx${yyyy}${mm}${dd}17.jpg,其中“${yyyy}${mm}${dd}”表示时间,插入图片时,系统将根据当前日期确定图片路径,获取对应的图片。若当前时间是2022年4月1日,则生成结果或插入到模板时,获取的图片实际上为: http://10.180.21.93/product/rain_24h/Rain_24h_lwzx2022040117.jpg。
4.5. 基本类书签
用于将元数据或非气象信息生成书签。如可将日期、时间、星期和值班人员等信息定制为书签。也可将当前日期或n天以前/后的日期生成书签,通过指定日期格式和相对于当前时间向前/向后偏移的量定制时间书签,从而在使用时自动生成相应的时间,提高了工作效率。如制作一个两天后的基本类书签,需要设置指定类书签的类型为“日期”,指定日期格式为“YYYYMMDD”,设置偏移量为“+2天”。如果当前时间为2019年8月1日,则此时用该书签生成的结果为“20190803”。基本类书签可以高效地生成常用基本数据要素,同时可以灵活组合应用到复杂的气象产品中。
4.6. 比较类书签
比较类书签用于对多个单值类书签进行比较,提高了书签的可用性和复用性,便于多气象数据进行综合分析。比较类书签通过指定比较方法和单值书签要素来生成。如“专业预报_24小时最高气温_兰青线_08”,可以通过指定比较方法为“最大值”,然后选择多个已经制作好的单值书签“预报_温度_西宁_08”、“预报_温度_平安_08”生成,其返回结果为气温最高的站点和温度,如“平安28”。
4.7. 统计类书签
统计类书签通过指定统计区域、统计方法、统计要素类型,对某一个指定区域的同类型气象数据(降水或气温等)进行统计。如可以通过邮政编码指定统计区域,分市(州)县分别进行统计。1) 降水中心类书签。统计内容选择“降水中心”,另外填写行政编码,选择时次时段、站点级别;时次包括07、08、20时,时段包括24、48、72小时;站点级别包括国家站和所有站两个选项。2) 不同降水等级站数书签。统计内容选择“降水站数”,行政编码、时次时段、站点级别配置同上,填写降水区间。降水值区间用(a,b]表示。其中:(a,)表示大于a,[a,)表示大于等于a,(,a)表示小于a,(a,b]表示大于a且小于等于b,由此实现任意值区间的统计;统计所有出现降水站点设置为(0,)即可。3) 降水详情类书签。统计内容选择“降水详情”;行政编码、时次时段、站点级别配置同上,显示站点数为从大到小排列前边的站点数;是否换行选择能够满足微信不换行和短信换行的双重要求。
5. 结语
通过分析气象服务产品的内容需求,设置了多样化的书签类型,实现了书签的灵活定制,以及在Word和Txt两种编辑环境下的应用,实现了气象服务产品内容的自动化生成,减少了业务人员的工作量,提高了工作效率,同时也提高了气象信息的准确性和及时性。为气象服务领域的拓展和新产品研发提供了有力支撑。该设计成果已在“青海省市县一体化气象服务业务平台”实现,并广泛应用于省市县三级公众、决策、专业、影视气象服务业务中,提高了产品制作的工作效率。书签设计思路的最大亮点如下:
1) 多样化的书签为产品内容最大化实现自动生成提供了可能。根据业务实际设计了7大类书签类别,不同的类别适用于不同的产品模板,不同类别均有其各自的优点。
2) 灵活性的书签为业务拓展提供了无限可能。本文设计了丰富的书签,并规定了详细的定制规范和标准,为书签的定制、使用和管理提供了方便,并为业务的无限拓展提供了有力支撑。
3) 复用性的书签提高了多场景普适性。本文中实现了书签在Word和Txt两种模板产品中的应用,但经过扩展开发,可以广泛应用到Excel、PHP、XML、Html、Json等文件模板中,无需重复定义,提高书签的复用性。