摘要:随着信息化的不断发展,高效利用气象数据已经成为气象业务工作的重点任务。为了实现对江西省2566个地面气象自动观测站数据质量的监控与分析,本文介绍了一个基于云平台的地面气象自动站数据质量统计分析系统。该系统利用云计算技术,能够进行大规模的自动站数据质量统计分析。此外,该系统的设计还充分利用了数据管道技术,实现了自动化操作。通过实施该系统,显著提升了气象数据的利用水平。
关键词:气象;云计算;云平台;大数据;数据管道
一、引言
随着对气象业务数字化、智能化、网格化的改造和提升,气象数据的规模、复杂度、多样性和实时性也呈现出爆炸式增长的趋势[1,2]。气象观测网络的分层分布和地域分布广泛,气象数据涉及时间、空间、要素、来源等多个维度,因此,气象数据处理面临着数据量大、数据质量不一、数据分散分布和处理复杂度高的挑战[3]。其中,气象地面观测数据作为规模最大、要素最全的基础气象数据,存在数据质量不稳定、数据异常、数据缺失等问题,需要进行质量控制和校验。这对气象数据的管理、分析和利用提出了极大的挑战[4-6]。
近年来云服务发展迅速,云计算服务平台提供了规范化的基础数据支撑框架,实现了从网络、计算到存储等资源集约化的功能,有效提升资源利用率及响应效率[7]。基于云平台技术集中开发互联网气象数据接口服务,可有效地实现数据共享,消除网络壁垒[8]。
本文设计了一个基于云平台的地面气象自动站数据质量统计分析系统(以下简称:统计分析系统),可以有效地对气象自动站观测数据进行质量统计和分析。该系统采用云计算技术,实现了大规模气象数据的自动整合、存储、处理,以提供高度精确的气象数据质量情况报告,支持用户的决策制定。此外,本系统充分利用了数据管道的优势,实现了自动化数据提取、转换、合并和验证等操作的自动化和可视化,确保了系统运行的便利性。通过实施本系统,显著提高了气象数据的质量和服务的水平,为气象预报、观测业务和科学研究提供了有力支撑。本文将详细介绍该系统的设计原理、架构、功能和实现方法,并通过实验验证其有效性和优越性。
二、系统设计
(一)基于云平台的系统架构设计
统计分析系统的所有模块都实现在云平台上,包括数据输入、数据计算和数据输出三部分。其中,数据输入功能主要由参数采集模块负责,数据计算功能由微服务模块执行,数据输出功能使用数据分发模块实现。其中,数据计算模块负责链接数据库、模板库和文件库,并负责这些数据的读取和修改操作。数据输入、数据计算和数据输出之间通过数据管道相互连接。实现了数据的快速和高效处理,并增强了系统的稳健性。总体系统架构图如图1所示。
1.参数采集模块
参数采集模块在统计分析系统的数据输入阶段扮演着关键角色,是整个系统的数据前沿,它负责与各种气象数据源进行接口和通信,从而实现数据的自动或半自动采集。
为了处理多种来源和格式的气象数据,参数采集模块结合了Python的多功能库和工具,如Pandas和Numpy,来实现数据的处理和转换。为了统一处理,需要实现数据的初步清洗、格式化和转换。通过对原始数据的预处理,可以确保后续模块能够顺利地进行数据计算和分析。
2. 微服务模块
微服务上的数据计算模块是统计分析系统核心智能部分的基础,它采用了Python作为主要的开发语言。微服务架构基于Flask框架,将气象数据的处理任务分解成多个独立模块。本系统中的微服务包括数据质量评估、异常检测、数据统计、趋势分析等功能。每个微服务负责一个特定的任务,但又可以相互配合,形成完整的数据处理流程。
每个微服务都被封装为独立的Flask应用,可以通过POST方法与前端或其他微服务交互,实现数据的传输和响应。这些微服务专注于特定的数据处理任务,例如气象数据质量评估、异常检测、趋势分析等。本系统选择Flask作为微服务后端,与其他微服务后端相比,Flask可以很好地满足轻量化快速迭代的需求。
由于每个微服务都独立工作,它们之间可以高度并行,使得多个微服务能够同时处理不同的数据任务,从而提高了系统的响应速度和处理能力。此外,通过设计一个高效的Pipeline,微服务之间可以协作处理数据,数据在多个处理阶段中流动,从而实现复杂的数据处理任务。数据计算模块还负责与核心数据存储资源的连接和管理,确保与数据库、模板库和文件库的稳定和高效连接。
数据库链接通过python的数据库连接库实现,系统可以方便地连接到不同的数据库管理系统,并确保数据的安全存储。模板库链接帮助系统在数据分析和评估时,能够参照预定义的模板和规则,保证数据处理的标准化和一致性。文件库链接则确保系统能够访问所有关键的文件资源,包括配置文件、模型参数文件等。
3.数据分发模块
数据分发模块作为统计分析系统的输出阶段,负责将经过评估和修复的气象数据传递给各级气象部门和其他应用系统。该模块采用了分布式文件分发站点,以确保数据的安全性、可靠性和高效性。数据可以在用户下载前暂存在文件库中,满足不同用户和系统的需求。此外,数据分发模块还支持数据存档和数据备份,以应对意外情况和数据丢失风险,确保数据的可用性和持久性。
(二) 统计分析流程
统计分析流程包括五个主要步骤:处理输入、数据库链接、预处理、数据计算和后处理。这些步骤的协同操作确保了统计分析系统能够高效准确地统计气象数据。这不仅提升了数据的可信度和实用性,并为气象领域的决策制定和研究工作提供了有力的支持。统计分析流程图如图2所示。
系统首先确定要统计的气象数据的时间范围,通过与参数采集模块合作,从各个数据源获取气象数据的时间戳。接着,系统获取最新的气象数据,确保统计基于最新的信息。弃用站点表是一个核心资源,由气象专家维护,用于识别统计时应排除的含问题或不可靠数据的站点。
系统连接数据库以检索历史气象数据,并与最新数据对比,进而检测异常或错误数据。在数据获取过程中,系统采用了多种安全机制以确保数据的安全性和完整性。首先,采用了安全的传输层协议,以加密的方式进行数据传输,防止在数据传输过程中遭受攻击或窃取。其次,系统会对数据库进行定期的备份,确保数据不会因意外而丢失。此外,设置权限和认证机制,进一步提高了数据安全性。
在预处理阶段,系统检测并删除错误的数据点,利用算法来识别异常值。如果系统识别到错误,会尝试更新数据。数据正确性的验证是此步骤的关键,保证了数据的一致性。系统将会从给定的数据结构中提取关键的统计数据,并将其转化为字典形式的集合。该服务将计算数据,并识别出低于特定阈值的站点。在预处理阶段,系统首先会计算平均数据可用率。接着,识别低于阈值的观测站,并从相关表格中提取站名和区站号进行合并。最终,对低于指定阈值的观测站按城市进行分组和计数筛选。
数据计算模块利用微服务调用算法来计算各气象站点的数据质量和准确性。采用远程服务和自动化流程进行数据采集和管理。在对远程监控站点的数据进行质量检查时,系统使用了Python的内部库 Requests,结合HTTP会话管理和数据文件持久化技术,从特定URL获取和导出数据到表文件中。
为了处理不同时间尺度的数据格式,系统构建时间对象。该对象提供了从给定日期回溯特定的月数来生成开始和结束日期的功能。之后使用Requests创建会话,该会话将会自动登录到远程系统,查询和下载数据,同时确保了持续的认证和状态持久性。下载的数据通过二进制形式写入指定的Excel文件中,并存储到文件库中,从而实现数据的持久化。
统计分析的后处理系统生成易于阅读的表格来展示统计结果,报告中包含唯一标识符,方便用户追踪历史任务。系统能生成图表可视化气象数据变化。使用Python-docx库,数据从Python转为Word文档。Plot_df服务将数据帧转为Word表格,Addh、Addp、Addtz为文档添加段落和标题。Change_Str服务基于数字生成描述字符串,Element和Attribute创建XML元素,Add_Page添加页码。Pd_to_doc为主服务,用于创建完整的Word文档。系统结合这些函数生成格式化报告。
三、系统实现与测试
为了确保统计分析系统有效地处理大规模数据集,本文对系统的处理能力进行了详细评估。评估所使用的数据集是基于江西气象实时数据,涵盖了93个国家级自动观测站、287个国家级天气站以及2186个省级自动站的地面小时观测数据。
处理时间测试主要评估方法是计算每个模块从启动到完成的耗时。为了保证评估的准确性,每个模块均进行了100次重复测试,从中获取其响应时间和运行时间。表1展示了时间测试数据。
接口的稳定性是衡量系统可靠性的关键指标。这里随机发起1000次接口调用,以下表格2列出了三种主要接口:数据输入接口、数据计算接口和数据分发接口的成功与失败次数。
四、结束语
本文设计并实施了一种基于云平台的地面气象自动站数据质量统计分析系统。该系统整合了云计算、数据管道技术和微服务架构,有效地处理了气象数据的复杂性、分散性和海量性问题。三个核心模块:参数采集、数据计算和数据分发,确保了从数据获取到最终输出的全过程高效、准确。通过江西省的实际气象数据测试,系统表现出了高效和稳定的性能。总体来说,该系统为气象业务工作提供了强大的气象数据质量统计工具,显著提升了大规模气象数据的处理和利用效率,并为气象决策和科研提供了有力的支持。
作者单位:左羽霄 戴华玲 王迎 周晓香 熊虹华
江西省气象数据中心
参考文献
[1]许竹霞, 张春燕, 徐娟. 甘肃省气象大数据云平台的存储与服务系统设计[J]. 信息技术与信息化, 2022(2): 53-57.
[2]王双双, 杜建华, 王立俊, 等. 基于气象大数据云平台的海南气象数据共享平台设计与实现[J/OL]. 计算机测量与控制, 2022, 30(10): 222-226+232.
[3]尤嘉铖. 基于大数据分析的气象观测数据质量控制算法研究[J/OL]. 电子设计工程, 2022, 30(11): 103-107.
[4]林松, 张华琳. 气象资料业务系统操作平台省级数据质量控制分析[J]. 海峡科学, 2022(8): 94-97+113.
[5]王婧, 李衣长, 叶凌锋. 基于LightGBM的气象数据质量控制方法研究[J]. 海峡科学, 2022(7): 40-45.
[6]段文广, 范飞勇, 刘燕, 等. 智慧气象服务融入智慧城市时空信息云平台的思考与探索[J]. 气象科技进展, 2021, 11(6): 71-73.
[7]韩同欣, 何文春, 吴鹏, 等. 气象基础设施云平台关键设计与实现[J/OL]. 气象科技, 2022, 50(2): 290-296. [8].朱君, 王浩, 蒲晓虎, 等. 重庆气象大数据平台设计[J/OL]. 自动化与仪器仪表, 2021(3): 108-110.