最近,一些气象公众号讨论了气象领域的云计算和数据平台的问题,具体可以参考 美国气象行业如何应用云计算?气象业务该不该在线?
受到 观天者说 和 编外气象人 的启发,我们来看一下国外地球科学领域在数据平台和云计算方面的探索。以笔者目前了解到的目前国外在数值模式上云方面做了很多尝试,比如 Vulcan 气候模式组基于Google云平台构建了FV3GFS气候模式工具,以方便科研人员利用云平台运行气候模式,以及近日在BAMS上发表的WRF模式云计算文章。
此外,还有很多机构在数据平台和云计算方面的探索,本文以笔者接触最多的 Pangeo 为例,探讨一下科学和技术究竟能碰撞出什么样的火花?最后,从气象数据、技术工具和开源方面简单讨论一下目前国内气象领域存在的一些问题。
Pangeo是一个地球科学大数据社区平台,旨在利用可协作的开源工具生态系统帮助地球科学社区在云上分析数据,从而帮助科学家减少下载和管理数据的时间。
Pangeo开源生态系统
基于 Jupyter、Xarray、Dask 工具套装的云数据分析和可视化
Pangeo发展历程
Pangeo始于2016年哥大的一次研讨会,这次研讨会是科学和技术的碰撞。Pangeo项目是纯粹的草根组织,并不是由任何资助机构、大机构或大学通过资金资助自上而下发展,是完全通过一群科学家汇聚一堂,努力解决科学问题中所涉及的数据密集型相关的挑战。从始至终,社区精神都是Pangeo的核心。
不断发展壮大的Pangeo
目前与Pangeo合作的部分机构
目前Pangeo在大力发展云计算项目。起初云计算并不在 Pangeo 的考虑范围,而是由于购买服务器的预算不够才意外上云,可谓无心插柳柳成荫。
NASA与Pangeo已经达成合作,科学家可以通过Pangeo的协作工具通过商业云服务更方便的获取、处理和分析NASA的数据。此外,用户可以通过 Jupyter 项目开源的 notebooks 创建和分享交互式工作流。
Pangeo开发过程
通过云平台访问数据并进行计算极大的提高了工作效率,超出了Pangeo成员的预期。后续Pangeo开始不断开拓相关的云项目。但受限于预算,目前pangeo的云项目仍处于测试阶段,而且资源需要提出申请才能够使用。
基于云开发的气候数据分析达到了前所未有的成效。这有效促进了实践科学家、基础架构师、开源软件开发者间的交流,极大改善了基于云的工作流程和产品迭代。
在此期间产生了一系列对气候数据科学(其它领域)具有深远影响的技术创新:
- The evolution of file formats and tools for storing climate-style data in cloud object storage 在云对象存储中存储气候类型数据的文件格式和工具的升级。为了更有效的在云中读取 netCDF/HDF 数据,改善了相关的数据加载工具,包括 fsspec、intake、intake-stac、intake-esm等。
- Dramatic improvements to the Dask experience in the cloud (and on HPC) 极大改善了云中Dask的使用。Pangeo协同多方共同简化了Dask在不同的集群上进行部署和管理,从而使Data+Xarray在数据处理和分析方面更加便捷。
- Contribution to the development of interactive visualization tools 交互式可视化工具开发,包括Holoviz,可以结合Datashader和Bokeh进行大量数据的可视化。
- Development of a rich ecosystem of software packages 丰富的软件包生态系统的开发。利用Dask+Xarray提供的生态为海洋、天气和气候提供更高级的分析能力。
- Innovation around the sharing and publication of reproducible, real-world Jupyter notebooks Jupyter notebooks促进了可再现和分享的革新。目前Jupyter notebooks已经成为个人和机构用于数据分析和教程分享的主要工具。
- The operation of a sophisticated CI system 复杂环境系统的业务化,即可以通过Docker等方式在不同的设备上构建Pangeo环境。
- Dozens of educational / training events around the world 在世界各地所举办的丰富的教育/培训活动。
除了这些多样化的活动外,Pangeo目前在大力发展基于Google Cloud和AWS的JupyterHubs,构建基于云的Jupyter基础架构。此项目非常的成功,以至于已经超出了Pangeo目前的能力。
此项目消耗了Pangeo大量的资源和精力,Pangeo不能为此项目提供企业级的服务。因此,Pangeo正致力于寻找一种可持续的替代方式,但JupyterHubs并不会消失。目前已经出现了多个类似云服务的供应商,比如Coiled和Saturn Cloud。
Dask for everyone, for everywhere
Coiled make it easy to scale on the cloud
以上两个都是风投项目,都有Pangeo目前及之前的合作者参与。英国气象局也一直在和微软Azure项目组合作致力于构建此类服务。
除了上述选择外,另一个提供类似服务的是 International Interactive Computing Collaboration(2i2c),这是一个非盈利性组织,由Jupyter和Pangeo的核心成员建立,致力于 to accelerate research and discovery, and to empower education to be more accessible, intuitive, and enjoyable。
2i2c 交互式计算基础架构
Pangeo未来的JupyterHubs和Binders服务将由2i2c负责,得益于NSF EarthCube的资助,这项服务将免费开放。
JupyerHub基础设施建设的转移让Pangeo能够专注于:cultivating the development of innovative open-source tools for solving challenging scientific problems。
Pangeo未来计划
为了更好的利用Pangeo当前所营造的生态,未来Pangeo将在以下方面集中发力。
- Project Pythia: Education and Training Pangeo在过去几年极大的推动了Python在地球科学领域的发展。但是这些工具需要在科学家掌握了的基础上才能更好的发挥它们的作用,需要高质量的培训。 Pythia项目旨在为地球科学家提供Python相关的教育内容和示例,以帮助他们在快速发展的Python科学生态中更快的寻找合适的库,构建工作环境。 Pythia项目将覆盖Python语言基础到高级课程,适用于不同的开发阶段。
- Pangeo Forge: A Cloud Native Data Repository Pangeo开发了一种原生云的地球科学数据处理方式。原生云的方式可以避免数据下载,而是使用按需扩展计算直接处理大量基于云的数据集。原生云有潜力改变科学研究,使科学家更多产、更有创造力和更灵活。 Pangeo Forge参考了Conda Forge项目,目前正处于构建阶段。
- Pangeo for Earth System Machine Learning 近两年,Pangeo的机器学习工作组在讨论地球科学大数据机器学习所面临的挑战和解决方案,并致力于如何利用Pangeo的软件和基础设施生态系统,利用地球科学高维数据集加速机器学习。
从而催生了Pangeo-ML项目,Pangeo-ML项目旨在使使用相同的软件工具进行交互数据探索和机器学习模型开发变得更加容易。
基于Pangeo-ML的工作流
数据托管在云平台,提供提取、转换和加载
探索性数据分析和可视化
快速进行模型设计、训练和验证
为了实现这一目标,项目组在改善多个库的集成,比如Xarray和Pyresample,开发Xarray和深度学习库(比如Tensorflow和PyTorch)的高级接口以弥补Xarray和机器学习库之间的鸿沟。
后话
Pangeo通过其构建的开源的可协作生态系统可能改变了地球科学领域数据处理、分析和可视化的方式。就气象领域而言,气象卫星、天气雷达、地面观测站等每天会产生大量的数据,Pangeo主要聚焦在大数据集的处理,其所营造出的生态系统将为气象领域研究者的工作流带来极大的便利。尤其是Xarray作为Pangeo生态系统中的主要角色使我们更容易处理地球科学领域的多维标签数据。
最后,我们简单的讨论一下目前气象领域的数据获取和应用、技术工具和开源问题。
关于数据获取及应用,国外的气象领域数据获取门槛较低,其管理相对成熟,基本都有专门的数据中心处理数据获取问题,且一般都会给出非常详细的数据获取说明和API下载方式。
相比之下,国内数据获取限制较多,而且抬高了门槛,当然这与国内的相关政策有关,不便多说。此外,据业内人士透露,由于预算等问题,国内相关数据中心服务器老旧,性能不佳,导致数据获取速度很不理想。
也有用户曾提到,从国内某数据网站获取雷达拼图数据,数据处理速度极慢,通常要十几小时才能处理几天的图像数据,且图像叠加了很多干扰信息,比如很多不必要的地名等,而下载NASA GPM时,NASA服务器进行数据裁剪仅半小时就处理了几年的数据。
从以上两点可以看出,抛开数据硬件问题,国内相关气象机构的个别工作人员在处理气象数据产品方面显得有些不“专业”。随着国内新一代气象卫星和天气雷达的发展,数据量在迅速增加。我们目前需要的可能不仅仅是开发新设备,收集大量的数据,同时需要做的是探索如何更好的利用这些数据,发挥其真正的价值。如果无法更好的利用这些数据,那么设备再好数据量再多可能没有太大意义,这需要我们不断的去探索,但毋庸置疑的是,一定需要更多的“专业”气象人才。
目前,国内已经在推动气象大数据平台的发展,比如“天擎”,标榜气象事业走向未来的数据引擎,于2020年开始部署并测试运行,尚未对外开放。测试情况可以参考 测试:从天擎读取EC数据
天擎-数算一体气象大数据云平台
总的来说,希望随着国内数据平台的发展,能够一定程度上解决国内数据获取方面的相关问题,但是数据能否真正放开还不好说。
关于技术工具和开源,目前气象领域所使用的数据处理、分析和可视化工具大多是由国外相关机构开发。当然,近年来国内也涌现出一批较为优秀的开源工具,比如天气雷达库PyCINRAD、pycwr以及国家局数值天气预报中心开源的部分工具。目前国内也在逐渐拥抱开源,一些研究者也在发表论文的同时公开源代码。
相比于科学问题而言,技术工具仅是作为辅助,但相信这个辅助也是必不可少的。希望国内气象领域在国际气象科学领域绽放光芒的同时,也能为气象领域的技术生态贡献一份力量,也能够涌现出Pangeo式的开源机构,引领国内气象领域技术生态的发展,为国际气象领域技术生态贡献更多的力量,扩大科研和技术影响力。
构建更好的科学和技术生态系统需要多方参与,且必然会消耗大量的资源,但这种生态系统一旦构建完成将为科学领域带来极大的便利。希望相关社区能够进一步促进科学和技术的碰撞,迸发出更多的火花。
参考连接:
- https://pangeo.io
- https://medium.com/pangeo
- https://discourse.pangeo.io
- https://gallery.pangeo.io
- https://github.com/pangeo-data
- https://earthdata.nasa.gov/learn/articles/pangeo-project
- https://medium.com/pangeo/pangeo-2-0-2bedf099582d
- https://data.cma.cn/site/article/id/40253.html
- https://github.com/VulcanClimateModeling/fv3gfs-wrapper
- https://journals.ametsoc.org/view/journals/bams/aop/BAMS-D-20-0219.1/BAMS-D-20-0219.1.xml?rskey=fTPnrv&result=4
—END—