当前位置:   article > 正文

Python绘制Nino3.4指数年际变化图-学习笔记

nino3.4指数

第一部分:数据下载

文件地址:https://psl.noaa.gov/data/gridded/data.noaa.ersst.v4.html

第二部分:数据处理并绘图

  1. # 导入库
  2. import numpy as np
  3. import matplotlib.pyplot as plt
  4. import netCDF4 as nc
  5. # 设置中英文字体
  6. from matplotlib import rcParams
  7. config = {
  8. "font.family":'serif',
  9. "font.size": 14,
  10. "mathtext.fontset":'stix',
  11. "font.serif": ['Times New Roman']}
  12. rcParams.update(config)
  13. #读取nc文件
  14. f= nc.Dataset(path)
  15. # time<1994> 1994/12=166,即每月测量的平均气温,总共有1994个月,精度为2°
  16. nsst=f.variables['sst'][1512:-1,42:47,95:121]#1980-2020
  17. nsst1 = f.variables['sst'][1512:1884,42:47,95:121]#1980-2010平均海温
  18. '''
  19. 厄尔尼诺/拉尼娜事件的主要监测关键区,包括NINO1+2区(90°W-80°W,10°S-0°)、
  20. NINO3区(150°W-90°W,5°S-5°N)、NINO4区(160°E-150°W,5°S-5°N)
  21. 和NINO3.4区(170°W-120°W,5°S-5°N)。
  22. '''
  23. #计算参考https://northfar.net/nino-intro/
  24. #计算多年每个月的平均海温
  25. list=[]
  26. for i in range(0,12):
  27. a = np.mean(nsst1[i:-1:12,:,:],axis=0)
  28. list.append(a)
  29. #将每个月的平均海温取出,在nsst中减去
  30. # 将每个月的平均海温从nsst中减去
  31. anomalies = nsst.copy()
  32. for i in range(0, 12):
  33. anomalies[i:-1:12, :, :] -= l[i]
  34. #计算区域平均nino3.4指数
  35. a = np.mean(anomalies, axis=(1, 2))
  36. a = a[:-1]
  37. time = np.arange(1980 , 2020, 1/12) # 修改这里,确保与数据的时间范围一致
  38. #绘图
  39. plt.figure(figsize=(20, 9))
  40. plt.plot(time, a, 'black', alpha=1, linewidth=2)
  41. plt.fill_between(time, 0, a, a > 0,
  42. color='red', alpha=0.75)
  43. plt.fill_between(time, 0, a, a < 0,
  44. color='blue', alpha=0.75)
  45. plt.xlabel('Years')
  46. plt.ylabel('Nino3.4 sst Anomaly[$^oC$]')
  47. plt.title('Historical Nino3.4 SSTA 40-year (1980-2020)', fontsize=17)
  48. # 设置 y 轴范围和刻度间隔
  49. plt.ylim(-2.5, 3)
  50. plt.yticks(np.arange(-2.5, 3.5, 0.5))
  51. plt.axhline(y=0.5,c='k',lw=0.8,ls='--')
  52. plt.axhline(y=-0.5,c='k',lw=0.8,ls='--')
  53. plt.show()

结果如下

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/889004
推荐阅读
相关标签
  

闽ICP备14008679号