2137 字
11 分钟
Argo海洋观测数据处理分析python库:ArgoPy

海洋占地球面积的71%,为地球提供很多服务,从缓解极端天气到产生我们呼吸的氧气,从生产人类的食物到储存产生的过量二氧化碳,海洋发挥了非常重要的作用。然而,全球海洋已经在经历气候变化及其伴随效应的重大影响。它们包括空气和海水变暖、物种的季节性变化、珊瑚白化、海平面上升、沿海洪水、海岸侵蚀、海水酸化、有害藻类大量繁殖、缺氧(或死亡)区、新的海洋疾病、海洋哺乳动物的消失、降水,渔业减少以及近几年频繁发生的极端天气事件(干旱、洪水、风暴)。

西太平洋热带气旋发生历史情况

通过海洋观测,可以实时监测海洋温度、盐度、酸度等关键参数,从而更好地理解气候变化的影响及其趋势。Argo是一个全球性的海洋观测系统,通过部署数千个自主漂流浮标,实时收集全球海洋温度和盐度等关键参数数据。Argo计划于2000年启动,目前全球30多个国家部署了Argo浮标并处理其数据,并向全球科学家提供。Argo计划已成为海洋观测史上最成功的国际合作项目之一。2018年9月,Argo观测网已收集到200万个剖面。2024年7月,Argo观测网收集到了300万个观测剖面。

Argo观测系统的组成#

Argo观测系统主要由以下几部分组成:

  • 自主漂流浮标:Argo浮标能够自动下潜到2000米深度,测量温度和盐度,并将数据通过卫星传回地面。目前已有超过3000个浮标部署在全球海洋。
  • 数据中心:收集和处理Argo浮标传回的数据,并在24小时内免费开放给全球用户。主要包括美国和法国的全球数据中心以及各国的区域数据中心。
  • 国际合作:Argo计划由30多个国家共同参与,承担浮标部署、数据处理和共享等责任。这种国际合作确保了Argo系统的持续运行和数据的广泛应用。

Argo数据应用#

Argo浮标每10天从2000米的深度进行一次垂直剖面测量。Argo采集的数据使得全球海洋空间覆盖达到了前所未有的水平,在深度超过2000米的全球海洋中,约每3度经纬度就有一个浮标。这些宝贵的数据在海洋和气候研究中发挥着关键作用。监测气候变化:Argo数据可用于分析海洋热含量变化、海平面上升等气候变化指标。改善天气预报:Argo数据有助于改善海洋模式,从而提高天气和气候预报的准确性。支持海洋管理:Argo数据为渔业、海事等领域提供重要的海洋环境信息。促进科学研究:Argo数据已被用于发表超过5000篇学术论文,推动了海洋学、气候学等多个学科的发展。下图显示了自2004年以来通过Argo观测的全球海洋温度异常,深度达到1900米。虽然上层约600米的温度会因厄尔尼诺-南方涛动等短期气候事件而波动,但更深的水域显示出持续的变暖趋势。这种深层信号表明地球气候总体上正在变暖。
除了观测海水温度,Argo盐度数据还可以用于量化与气候变化相关的水文循环变化。温暖的空气能够容纳和运输更多的水分,这意味着随着全球平均温度的上升,现有的蒸发和降水模式将会加剧。这将导致干旱地区干旱风险增加,而湿润地区则面临洪水风险。海洋表面是观察水文循环加剧的一个良好场所,因为海表盐度反映了蒸发(增加盐度)与降水(降低盐度)之间的局部平衡。以下动画展示了自2004年起的每月Argo盐度数据,以及每月的年际异常(当前月份盐度与该月份历史平均盐度之间的差异)。与历史数据相比,Argo观测显示咸水区域的盐度明显增加,而淡水区域的盐度则有所下降。

处理分析Argo数据的python库:argopy#

本文介绍一个支持Argo数据访问、操作和可视化功能的Python库:argopy。argopy可以简化从任何来源获取Argo数据的流程,并为用户提供数据可视化和操作工具。

argopy可以通过conda安装:

conda install -c conda-forge argopy

或者通过pip安装:

pip install argopy

安装最新版本:

pip install git+http://github.com/euroargodev/argopy.git@maste

1. Argo数据获取argopy通过三种方式提供简单的Argo数据获取API:通过空间/时间域(使用区域访问点);针对一个或多个特定浮标(通过浮标访问点提供其唯一的WMO编号);针对一个或多个浮标剖面(使用剖面访问点)。

import argopy

ds = argopy.DataFetcher().region([-75, -45, 20, 30, 0, 10, ‘2011-01’, ‘2011-06’])
ds.plot(‘trajectory’, add_legend=False

2. Argo数据处理

argopy提供丰富的数据过滤和选择功能,可以满足普通用户和专业用户的不同需求,支持对数据进行点、剖面、插值、分箱等操作。

例如,针对剖面观测数据集,可以使用Dataset.argo.interp_std_levels()在标准层上进行插值。

3. Argo数据可视化

argopy提供丰富的可视化功能,支持绘制如轨迹图、地形图、直方图、散点图、剖面图以及创建argo数据仪表板(Dashboard)应用。

  • 浮标轨迹图

from argopy import DataFetcher
from argopy import ArgoIndex
from argopy import ArgoNVSReferenceTables
from argopy import ArgoColors
from argopy.plot import scatter_map, scatter_plot

WMO = 6901773
f = DataFetcher(ds=‘bgc’, mode=‘expert’, params=‘all’).float(WMO).load()

scatter_map(f.index, set_global=False)

  • 时间序列图

ds=f.data
fig, ax = scatter_plot(ds, ‘TEMP’, this_x=‘CYCLE_NUMBER’)
ax.set_title(“%s from Float %i (‘%s’ mission)” % (‘TEMP’, WMO, f.mission), fontdict={‘weight’: ‘bold’, ‘size’: 14})

ds=f.data
fig, ax = scatter_plot(ds, ‘PSAL’, cmap=cmocean.cm.haline, vmin=38.75, vmax=39.5)
ax.set_title(“%s from Float %i (‘%s’ mission)” % (‘PSAL’, WMO, f.mission), fontdict={‘weight’: ‘bold’, ‘size’: 14})

  • 数据应用DashBoard

argopy.dashboard()

传入指定浮标的WMO编号,展示该浮标的数据情况:

argopy.dashboard(5904797)

传入指定浮标的WMO编号和下潜顺序号,展示该浮标获取的剖面数据情况:

argopy.dashboard(6902746, 12)

可视化生物地球化学Argo浮标参数剖面数据情况:

argopy.dashboard(5903248, 3, type=‘bgc’)

argopy使用手册(Cheat Sheet)#

本公众号相关内容推荐#

Argo海洋观测数据处理分析python库:ArgoPy
https://blog.scidatalab.net/posts/argo海洋观测数据处理分析python库-argopy/
作者
Echo
发布于
2024-09-11
许可协议
CC BY-NC-SA 4.0