2021年工作总结

目录

为 2021 年 12 月 21 日召开的业务运行室 2021 年度工作汇报会准备的幻灯片

大家好,我汇报下 2021 年的工作总结。

概述

我的汇报分为三个部分。

业务运行维护

首先介绍业务运行维护方面的工作。 我主要负责维护四个模式的五套业务系统。

在业务系统升级方面,今年我参与三个系统的四次业务化升级工作。

在全球台风报文检索任务中,我去年开发的气象中心台风数据库检索程序今年已应用在业务系统中。 同时还集成了全球台风产品制作模块。

我还完成了区域模式产品整合,使用 MESO 3 公里图片代替 MESO 10 公里图片产品,使用 TYM 数据代替 10 公里下发数据产品。

今年我还完善去年开发的业务系统绘图脚本封装工具库。

业务系统绘制一幅图片需要执行多个步骤,包括

  • 准备运行环境
  • 设置环境变量
  • 运行绘图程序
  • 执行图片图例

这个绘图脚本封装工具库依托于产品科同志编写的标准化绘图脚本,封装并整合所有这些步骤,形成统一的绘图接口,通过用户指定的参数和内置的配置文件绘制不同的图片。

去年已应用在交互分析环境中,今年通过命令行程序的方式应用在高性能计算机的业务系统中,并开展基于 Docker 的容器封装研究,计划明年应用在天擎加工流水线上。

今年主要工作是:

  • 更新软件架构,支持 NCL、Python 绘图脚本
  • 目前已整合 340 多幅图片
  • 已应用在 GFS 和 MESO 业务系统中

今年我还参与气象信息化系统工程项目《数值预报支撑子系统》,参与公开招标、合同签订、需求分析和概要设计等流程,并为开发开展多项准备工作。

通过该项目,我们计划将业务系统流程中的产品制作和产品分发任务迁移到气象大数据云平台中,在 HPC 上仅保留核心流程,简化 HPC 上的运行流程,保障模式稳定运行。

在业务系统备份方面,我参与 CMA-GFS 在北京局 HPC 上的备份工作。 完成运行环境迁移,包括ecFlow 服务和作业调度系统。 完成产品后处理系统的迁移。 目前国家局 HPC 可以直接查看北京局 HPC 上 ecFlow 系统的运行状态。

目前,业务运行室已形成业务系统的多种备份机制。

  • 业务系统可以切换到科研分区运行
  • 我们使用版本库备份源代码
  • 我们还使用单独保存的移动硬盘备份业务系统的程序和脚本

数据分析技术

在数据分析技术开发方面,我主要开发基于 Python 的数据分析方法及工具库,在数据准备、分析计算和可视化展示方面都开展相关工作。

数据准备

我去年开发了一款数据准备工具库,支持将 GRIB 格式数据加载为常见的 Python 数据结构,并在检验诊断工具 GetPy 中得到应用。

今年新增支持 GrADS、NetCDF 和表格等数据格式,并新增站点抽取、区域插值和区域裁剪等数据处理方法,并尝试在产品生成和机器学习方面开展应用。 同时我还撰写了在线文档,并发布在线安装包。

今年我继续开发完善天擎 MUSIC 接口兼容工具库。

MUSIC 资料检索接口种类多,不容易记住。 目前已有开源 Python 项目封装 MUSIC 接口。 我在 2019 年已根据接口协议开发兼容工具库。

今年在兼容工具库基础上开发数据的高层检索 API 接口,将尽可能多的检索接口整合到少量的 Python 函数中。

比如检索站点数据需要使用 14 个接口,工具库利用 Python 动态参数的特性,将所有这些接口都整合到一个 Python 函数中。 这个函数会根据用户给定的不同种类参数,选择合适的检索接口,完成数据检索操作。

分析计算

在分析计算方面,今年我开展基于动态任务调度的分布式数据处理方法研发工作。

目前数据处理任务大部分为串行作业,无法随模式分辨率提高而扩展,需要提高并发度。 去年已使用 Python 初步实现动态任务调度的数据计算方法。 今年针对业务后处理数据产品制作中的耗时任务开展技术开发,并申请了数值预报中心的青年基金课题。

目前该成果已应用在 CMA-MESO 1KM 后处理系统中。 在多个数据片数据中抽取要素场生成单要素的时序数据任务中,需要从 25 个文件中抽取要素,生成 53 个文件。 原方案需要 11 分钟,新方案仅需要 5 分钟,节省一半时间。

我对 CMA-GFS 生成东北半球数据任务开展实验性质的开发工作。 这个任务需要对单个 GRIB2 文件中的所有要素场,也就是 837 个要素进行区域裁剪,输出文件中的要素场要保持原有的顺序不变。

GRIB 2 数据处理中最耗时的部分是 GRIB 2 消息的编解码操作,为此我在计算节点中并发执行要素场的编解码操作,而在输出文件时仍然使用串行方式,保证输出文件中要素场的顺序不变。 原方案耗时 6 分钟,新方案耗时仅 1 分半,节省四分之三的时间。

对于制作站点预报产品任务我也开展实验性质开发工作。 这个任务需要从 1228 个文件中的每个文件中抽取 8 个要素场,并使用最近邻插值提取站点数据。

原方案分成两步进行:

  • 第一步使用 wgrib2 工具从 GRIB 2 文件中抽取要素场生成二进制文件
  • 第二步运行可执行程序生成最终的预报产品

原方案涉及较多的磁盘 IO,因此需要运行 30 分钟。

新方案直接在内存中抽取站点数据,减少磁盘 IO 耗时,同时在计算节点中并发执行这些操作,仅需要 3 分钟,节省近九成的时间。

可视化展示

在可视化展示方面,现有绘图脚本虽然能满足业务需求,但很难扩展数据接口对接新的数据平台。 使用 Python 绘图可以充分利用 Python 科学计算领域庞大的开源资源和用户群体。

为此,今年我尝试开发 Python 绘图解决方案,集成标准地图底图,并尝试仿制部分业务图片。

Python 绘图方案包括数据处理和图形绘制两个部分,我开发了两个开源项目,这两个项目都是基于 Python 科学计算社区成熟的软件包开发。

这是 CMA-GFS 模式的绘图示例,左边是业务系统 NCL 脚本的绘图结果,右边是 Python 绘图结果。 可以看到两张图片大体一致,但 Python 绘图等值线标签与 NCL 不同。

这是北半球投影的图片,Python 绘图的经度标签位置有些问题。

这是欧亚大陆的图片,Python 绘图还没有实现等值线标签。 从今年已开展的工作来看,Python 绘图可以基本实现 NCL 绘图的效果,但想要达到完全一致还需要更多时间来调整细节。

其他工作

其他工作方面主要介绍系统集成技术科的一些工作。

今年 1 月 1 日运行科正式启用新版运维值班网站,运行科全体同志持续对网站进行优化,包括优化自动报警功能,改善网站故障信息展示和交互体验。

我也参与了下一版运维平台开发,增加对产品生成情况、硬件环境的监控。

业务室也开展一系列培训活动。 今年上半年运行科开展 GRAPES 数值预报业务系统技术交流系列培训,共 4 期,我个人做了《GRAPES TYM 业务系统运行介绍》报告。 业务室也联合信息中心和清华大学开展机器学习技术培训系列讲座。

下一步工作计划

最后介绍下一步工作计划。

  • 在业务运行方面,计划引入第三方力量更深入参与运维,同时将部分产品后处理系统迁移到天擎加工流水线上
  • 在业务集成方面,计划改进产品加工任务的数据输入接口,推动数据平台开发成果进入业务流程
  • 在数据分析方面,继续研究分布式计算技术;完善数据准备和绘图包,支撑机器学习研究

结语

感谢大家一年来对我的帮助和支持,谢谢大家!