在利用经验正交分解(EOF)进行某一个研究区域分析时,我们需要将研究区域转换成N*M的矩阵,其中N为空间维度,M为时间维度,这意味着我们之前的数据加上时间维度是三维的,即(lon,lat,rg)。因此,我们需要将下图中的空间的(lon,lat)reshape 成(N,1)。
如果是全球1度的数据进行EOF分解,月份有225个月,那么得到输入的数据矩阵是(64800,225)。但是往往我们需要进行小区域的应用研究,比如中国大陆地区,因此我们需要提取中国大陆地区的数据。下面的代码是用于提取中国大陆地区范围内的GRACE信号【70/140/15/55】。
A1 = zeros(360*720,227);
A1(:,1) = reshape(mascon_gsfc.lon,360*720,1);
A1(:,2) = reshape(mascon_gsfc.lat,360*720,1);
for i = 1:length(mascon_gsfc.tt)
A1(:,i+2) = reshape(mascon_gsfc.rg(:,:,i),360*720,1);
disp(i)
end
ind_ = find(A1(:,1)>=70&A1(:,1)<=140&A1(:,2)>=15&A1(:,2)<=55);
g = A1(:,3);rg = g(ind_);
aus_mass = A1(ind_,:); aus_mm = aus_mass(:,2:end);
llon = A1(:,1);llon_ = llon(ind_);llat = A1(:,2);llat_ = llat(ind_);
O.lon = reshape(llon_,80,140);O.lat = reshape(llat_,80,140);
O.rg = reshape(rg,80,140);
rg_plot(O),caxis([-50,50])
其中最关键的是find函数,提取在研究区域内的数据。运行可以得到以下的结果:
其中结果的前两列为经纬度:
之后再进行EOF分解即可,下图展示了其中的前4个主成分。
♥欢迎点赞收藏,交流学习!2024-2-23 22:52♥