python 赤道温度距平剖面图==赤道海温剖面揭秘 2023/24 厄尔尼诺的强烈信号
python 赤道温度距平剖面图==赤道海温剖面揭秘 2023/24 厄尔尼诺的强烈信号
python 赤道温度距平剖面图
图片
2023/24年赤道太平洋的异常变暖情况
赤道太平洋温度距平剖面图,展示了**2023年1–3月(JFM)**期间,赤道海洋从表层到底部(250米)不同深度的温度异常变化。
横轴:经度,从西太平洋的120°E(印尼附近)到东太平洋的80°W(南美附近)
纵轴:海水深度,从表层(5米)到250米
颜色:表示温度异常(单位:°C)
红色 → 比正常年份偏暖
蓝色 → 比正常年份偏冷
图中看点
赤道中东太平洋的异常暖层(红色)十分显著
从160°W 到 100°W,在表层到100米深度之间,普遍温度比往年高出 2–4°C
这是**厄尔尼诺(El Niño)**的典型信号
20°C 等温线上移
灰线:多年平均(气候态)20°C 的深度位置
黑线:2023年的20°C等温线
黑线比灰线更“浅” → 说明暖水层抬升,暖水上浮至浅层海域
海温距平对比显著
白色等值线表示细微的温差梯度,有助于判断热量聚集的位置
图例范围是 -5°C 到 +5°C,说明异常十分剧烈
🤔 为什么重要?
这张图告诉我们:
📈 2023年初,赤道太平洋出现了强烈的暖水异常,预示着一次典型的厄尔尼诺事件正在发展。
厄尔尼诺会带来:
全球气候异常(如中国南方湿冷、北美干旱、非洲降水变化等)
海洋生态系统波动
热带风暴路径改变
code start
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap
import cmaps
from matplotlib.ticker import MultipleLocator, FormatStrFormatter
import scipy.io as scio
=====================
1. 读取数据
=====================
mat_contents = scio.loadmat(‘Fig2.mat’)
for var_name, var_value in mat_contents.items():
if not var_name.startswith(“__”):
globals()[var_name] = var_value
构建网格
timemm = np.arange(1, 19.1, 1)
xx3, yy3 = np.meshgrid(loninterp, depthinterp)
=====================
2. 自定义 colormap
=====================
cmap_grey = cmaps.GrayWhiteGray(np.linspace(0, 1, 40))
cmap_main = cmaps.GMT_polar(np.linspace(0, 1, 100))
combined_colors = np.vstack((cmap_main[2:42], cmap_grey[18:24], cmap_main[55:95]))
custom_cmap = ListedColormap(combined_colors)
色阶和归一化
levels = np.arange(-5.0, 5.01, 0.5)
norm = plt.Normalize(vmin=-5.0, vmax=5.0)
=====================
3. 创建图像并绘图
=====================
fig = plt.figure(figsize=(10, 6)) # 可调大小
ax = fig.add_subplot(111)
主图:剖面图 + 等温线
cf = ax.contourf(xx3, yy3, np.transpose(tempeqanom2023JFM), levels=levels,
cmap=custom_cmap, extend=‘both’, norm=norm)
ax.contour(xx3, yy3, np.transpose(tempeqanom2023JFM), levels=levels,
colors=‘white’, linewidths=0.3)
添加 20℃ 等温线(气候平均值和2023)
ax.plot(np.squeeze(loninterp), np.squeeze(isotherm20climeqJFM),
color=‘grey’, linewidth=2.5, label=‘Climatology 20°C’)
ax.plot(np.squeeze(loninterp), np.squeeze(isotherm20eq2023JFM),
color=‘black’, linewidth=2.5, label=‘2023 20°C’)
=====================
4. 图形格式设置
=====================
ax.set_title(‘Eq Temp (JFM)’, loc=‘left’, fontsize=16)
ax.set_title(‘2023/24 El Niño’, loc=‘right’, fontsize=16)
坐标轴范围与标签
ax.set_xlim(120, 280)
ax.set_ylim(250, 5)
ax.set_xticks(np.arange(120, 291, 40))
ax.set_xticklabels([“120E”, “160E”, “160W”, “120W”, “80W”])
ax.set_yticks(np.arange(0, 251, 50))
ax.set_ylabel(‘Depth (m)’, fontsize=16)
ax.tick_params(length=5, width=1.5, labelsize=14)
坐标刻度格式
ax.xaxis.set_minor_locator(MultipleLocator(10))
ax.yaxis.set_minor_locator(MultipleLocator(10))
添加 colorbar
cbar = fig.colorbar(cf, ax=ax, orientation=‘vertical’, shrink=0.85, pad=0.02,
ticks=[-5, 0, 5], extend=‘both’)
cbar.ax.tick_params(labelsize=14)
cbar.set_label(“Temperature Anomaly (°C)”, fontsize=14)
plt.tight_layout()
fig.savefig(r’Fig21.png’,dpi=500, bbox_inches = ‘tight’, pad_inches = 0.03)
plt.show()
参考文献:
Tao Lian, Jie Wang, Dake Chen, Ting Liu, Dazhi Wang.
A Strong 2023/24 El Niño is Staged by Tropical Pacific Ocean Heat Content Buildup. Ocean-Land-Atmos Res. 2023;2:0011.DOI:10.34133/olar.0011

206

被折叠的 条评论
为什么被折叠?



