王雨婷
(赤峰市气象局 内蒙古 赤峰 024000)
随着社会经济及科技的日益发展,社会对电视节目的认可度不断增强。 人们的生活方式亦在不断丰富,受到天气限制的活动逐渐变多,因此气象类影视节目的受欢迎程度随之增加。 以天气预报为代表的影视节目根据社会的变化在逐渐改版翻新,收视率一直居高不下。 在制作天气预报影视节目中,撰写播报稿件是节目中的重要环节。 稿件编辑需在较短的时间内完成大量的气象信息收集及稿件撰写任务。 为实现原始数据从人工提取到全自动提取的转化,人们开始研发并应用业务辅助的读取生成调用程序。 此程序的运用不但可以提高预报信息的准确性,还可以实现编辑的手动操作到自动处理的转换,极大地提高了工作效率。 本文基于Python 语言,对气象类稿件自动生成系统的开发及应用进行了一系列的研究,以期解决气象类稿件撰写工作繁杂低效及稿件质量难以保证的问题,为气象节目的正向发展提供动力。
随着人们对气象类节目质量要求的不断提高,气象类稿件编辑工作对气象信息的需求量越来越大,对节目输出信息的时效性、准确性及丰富性要求越来越高,气象播报稿件中的内容及播报形式亦需趋于多样化。 准确丰富的节目播报内容能够满足人们丰富多彩的生产生活需要。天气预报稿件编写的数据主要来源于全国综合气象信息共享平台 ( China Integrated Meteorological Information Service System,CIMISS)、城镇预报、公众预报、预警信息、雨雪情报等气象服务信息平台,气象服务信息平台的数据一般分为两类:一类数据被称为“实况数据”,另一类被称为“模式数据”。
实况数据是气象学科中相对原始的数据,实况数据的采集工作主要借助气象站来完成。 通过卫星遥感技术、气象站气象数据自动采集与收集系统或简单的人工观测等多种方法来实现气象站点观测数据的收集。 收集来的数据需要通过设定好的机器程序编码为二进制,将编码好的数据传输到数据库中储存,再通过特定的传输协议进行传输,将本省观测站点的全部实时相关数据打包上传到国家气象信息中心的通信台[1]。 据中国气象局2022 年9 月14日发布的统计数据显示,截至2021 年底,我国拥有国家级地面气象观测站10 930 个,省级常规气象观测站55 719个,加上其他类型的地面观测站点,已建成7 万余个地面气象观测站,全国近4 万个乡镇实现自动气象观测站全覆盖[2]。
模式数据是由高性能计算机以当天的天气实况数据为源头通过物理方程计算得出的。 通过已知的天气现象,推测计算出之后的天气情况。 将推测出的结果用经纬度网格来呈现,经纬度网格中的每个点就表明了该经纬度地区未来某个时刻的气象状况,包括了降水、气温、日照等气象因素,进行推测计算的计算机程序被称为模式系统。
要想将收集到的数据在气象类节目中进行实际运用,需要通过一套特定流程将处理好的数据最终传输到预报员的手中。 收集来的不同数据在到达通信台后会被分为两种路径处理:一是实况数据的路径,实况数据先通过计算机对数据中包含的BUFR 解码,在提取到需要的物理量信息后,将其写入到一个关系型数据库中进行缓存,后续定时进行重复工作,直到将全部站点同一个时刻的物理量信息提取出来,传输到预报员客户端软件访问的高速存储服务器中;二是处理模式数据的路径,此类数据相比实况数据在处理上要简单便捷许多。 模式数据前期无须进行一系列的解码工作,通信台可以直接将数据传送到一个高速解析服务器中,然后通过解码、卫星通道拆分等操作,直接写入到高速存储服务器中,供预报员客户端软件访问,便完成了气象类影视节目所需数据的监测、获取、传输、运用、播报等全部流程。 如图1 所示。
图1 数据传输流程图
实况数据及模式数据被称为天气预报之源,是气象类稿件撰写的直接依据。 在撰写气象类稿件时,需要在收集到的数据中查找可用的信息,筛选的数据量极为庞大,此项工作如果仅仅通过人工来完成,难度很高。 因此,智能化及自动化是一个明显的发展趋势,亦是一个重要的发展需求。
近年来,赤峰市各旗县区天气预报节目数量不断增加,不少节目前后都经历了多次的改版更新,导致气象类稿件撰写工作中所需的气象预报数据及产品需求都随之增加,气象数据的采集及整理难度逐渐升高,使稿件的撰写工作变得更加复杂烦琐。 目前我市气象类影视节目稿件编写主要由采编人工编写来完成,需要人工手动在CIMISS 查找各旗县区每日最高温度及天气现象等其他各种气象要素,再与24 h、48 h 城镇预报中提取到的温度、风向、风速、天气现象等气象数据进行对比分析,以上工作仅仅只是完成稿件编写所需数据查询的准备工作,为了保证气象播报节目的综合质量,气象稿件的内容还需要更加丰富、及时、准确。 因此,工作人员需要围绕气象类稿件的撰写开展大量的工作,其中包括对气象原始数据进行校对、对比及结论分析,还有提取气象服务产品有效信息等项目,将最终分析研究的结果与通俗简洁、逻辑清晰的语言文字相结合,最终进行统一的文本编辑,一套完整的流程下来将是一个非常庞大工程。 据统计,每天各旗县区撰写气象类的稿件7 篇,进行数据查询与对比工作120 多次,耗时30~50 min,庞大的工作量给工作人员增加了巨大负担。 每天都是如此的工作强度,除了挑战工作人员的技术能力,也是对心理素质的考验。 数据信息的准确率、数值区间范围、文本语言规范亦难以保障[3]。 由于电视天气预报节目制作及具体的气象数据具有很强的时效性,气象类稿件的撰写及播报工作都必须在规定时间节点之内完成,需要对各种气象数据进行准确快速的筛选[4]。 因而工作人员要在短时间内进行大量的气象数据比对及数据分析,不仅要消耗大量的时间,同时数据的准确性亦很难得到保证。
气象类节目是气象部门为公众防灾减灾及生产生活服务的重要窗口,亦是公众获取气象信息的重要渠道,气象稿件的撰写作为气象类影视节目中尤为重要的环节,保证其质量是提高天气预报节目质量、丰富节目内容的重要前提,只有通俗简洁、层次清晰的稿件,才能让播报在达到准确标准的前提下更加具有条理。 在撰写稿件的过程中需要提前搜集大量的气象资料,挑选并提取出相关的数据进行加工。 气象类稿件自动生成系统能够进行数据读取处理及预报产品信息分析工作,且都是通过系统自动完成的,相对人工进行数据处理所花费的时间减少许多,工作效率得到了极大的提升,很大程度上减少了工作人员每天重复烦琐工作的压力。
撰写气象类稿件需要及时、快捷地提取有效资料信息,亦是提高撰写效率的第一步[5]。 除了要确保稿件撰写的效率之外,相比于其他影视节目,准确性是气象类稿件撰写的首要基本准则,气象部门将提高预报准确率作为重中之重。 要想保证气象类影视播报的质量,气象类影视节目的个性化、多样性、时效性、准确性以及完整性都极为重要。 气象影视节目制作的时间有限,要求在短时间内完成节目稿件撰写、数据生成、录制、后期制作、传送等多个复杂烦琐的工作环节[6]。 因此,本文所研究的气象类稿件自动生成系统的开发及后续的应用具有重要意义及重大价值。 气象类稿件自动生成系统能够自动整合信息资料,完成气象类稿件的撰写,通过设定好的固定流程更好地保证稿件的综合质量。
气象类稿件自动生成系统设计主要是通过对系统配置文件的编辑定义来实现一键生成气象类稿件的自动化处理。 处理操作主要包括获取本地时间、自动读取数据、自动提取产品有效信息、自动调整稿件长度及自动添加素材等项目。
目前,气象类稿件主要数据是来源于地面实时观测数据及各类气象预报产品,在数据读取及处理、预报产品信息分析、稿件编写方面,采编人员很难在规定时间内同时进行。 因此,想要更加高效地完成气象类稿件的撰写,就需要将数量较多的气象数据及产品,按照实际业务流程需求进行有条理、有目的的自动处理[7]。
例如:通过固定路径报文来获取对应每个旗县的天气、风向、风速,通过输入当日天气,可以自动对比之前24 h 与48 h 的温度上升下降的趋势与范围来输出对应词条,再通过获取的数据信息键入模板,来生成每日气象播报时所需要的稿件。 处理后,所有数据将自动转变,不需要再通过人工进行复杂烦琐的处理,系统运行后,“自动化”特点给实际业务工作带来最大的效益就是提高了工作效率。
气象类稿件自动生成系统设计中包含数据采集的步骤,当涉及数据采集部分时,使用Python 的文件处理功能及数据结构(如字典及列表)来读取文件内容、分析数据并提取所需的信息[8-9]。
以下是系统采集部分所用的技术实现方法:
(1)数据路径设置。 使用open()函数打开指定路径下的文件,以只读模式读取文件内容,并使用file 变量引用该文件对象。
(2)文件读取。 是通过readlines()方法,逐行读取文件的内容,并将每一行的数据存储在列表lines 中。
(3)数据采集处理。 是对于每一行数据,使用空格进行分割,去除空格后的元素存储在列表例如:data_10 中。其次,将第一个元素作为键(城市名称),将整个列表例如:target_10 作为值,构建一个键值对,并存储在字典tempDict_10 中。
(4) 数据分组。 是通过特定字符串, 例如(′24~48″48~72′)来标识数据的不同时间段。 当遇'24 ~48'时,将当前的tempDict_10 存储在res_10 字典中,并重新创建一个空tempDict_10 字典。 当遇到'48 ~72'时,表示数据采集已完成,跳出循环。
(5)数据提取。 例如:从res_10 字典中提取特定城市的数据,并存储在不同的变量中,以供后续处理及使用。
该方法展示了数据采集的一般流程,包括文件操作、数据解析及组织,以及数据提取及存储。 通过此方法,可以有效地从给定的文件中采集及处理数据,为后续的数据分析及应用提供准备。 设置预报数据读取节点,达到简单而快速的效果,同时也可以有效地避免数据混读错误。
获取各数据的处理,需要针对每个城镇的所获取的各要素数据,通过判断类型的不同,将其进行分类并存储在相应的变量中。
以风要素为例:使用条件语句(if 语句)对每个城镇的风力数据进行判断。
风力级别分类:根据风力级别的不同,将风力数据进行分类,并将分类结果存储在相应的变量中,写入到指定路径生成的文件中。
不同风力级别的判断:根据不同的风力级别,将变量赋予相应的描述,如“风力不大”“风力适中”“风力稍大”“风力偏大”及“有大风阵风7 级以上”。 通过代码,可以对风力数据进行分类及处理,根据不同的要素获取相应的描述结果。 可以根据分类结果进一步使用及分析各类要素数据,数据处理方法可以帮助更好地理解及利用各要素数据。 在自动生成气象类稿件时再使用一系列的if⁃elif⁃else 条件语句,根据各要素的范围判断应该选择哪个描述文字,将对应的描述文字赋值给对应的变量。 然后通过write()方法向文件中写入文本内容:各个地区的天气预报信息。 最后通过字符串拼接将变量中的值与固定文本连接起来形成完整的描述。
气象类稿件自动生成系统主要采用了一种基于Python 语言代码的实现方法,进行构建程序结构、设计数组、调用数据文件、编辑对话框等一系列操作,并结合CIMISS 气象服务系统原始数据开发自动、录入处理程序。
综上所述,我国经济一直在不断发展,社会和谐进步及生态环境的可持续发展越来越与气象条件变化息息相关。 随着气象科技的快速发展,在计算机系统的支持下,气象类稿件编写资料越来越多,信息量亦越来越大,稿件编写所需的数据读取及结论分析方式发生了重大改变,整体过程减少了人工操作,实现信息数据自动化转变,提高了制作的工作效率。 本系统不仅可以简化制作业务流程,还可以避免由于人工编写气象类稿件时出现效率低下、数据错误、数值区间不统一、文本编写差异等问题,使节目在数据量快速增加的同时,保证了业务效率及节目质量的同步提高及发展。