更新完整版,修复了几个小问题,提供了测试数据下载
最新版见此
EOF(经验正交分解)是气候研究中常用的研究变量时空变化特征的分析方法,短期气候课中都学过中国东部夏季降水通过EOF分解可以分为三类雨型,在NCL中,EOF有直接的函数可以调用,而在python中,也有对应的库可以直接使用。
完整的说明见:
https://github.com/ajdawson/eofs
通过
conda install -c conda-forge eofs
可以直接安装。
由于数据以及EOF所选范围原因,可能结果存在一些差异,但是问题不大233333
先上图吧:
图的分析就不献丑了。主要还是分享一下绘制方法。
首先是EOF的计算
print(summer_mean_tmp.shape)
#(55, 82, 142)
print(pre_lat.shape)
#(82,)
print(pre_lon.shape)
#(142,)
这是用来分解的数据,55年夏季降水,纬度和经度。接下来进行EOF分解:
from eofs.standard import Eof
lat = np.array(pre_lat)
coslat = np.cos(np.deg2rad(lat))
wgts = np.sqrt(coslat)[..., np.newaxis]
#计算纬度权重
solver =