- 积分
- 26296
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2012-6-1
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 kongfeng0824 于 2015-8-9 17:00 编辑
气象家园中已经有很多帖子是做EOF和SVD分析的,但是大都是针对站点数据的。不知道大家对格点数据是如何进行EOF和SVD分析的?
一般的nc数据都是格点的,例如降水的nc数据中有lon,lat,time三维。
针对这三维的矩阵做EOF分析,感觉是要对矩阵进行转置的。
不知道大家在处理格点数据的EOF分析时是如何进行的?
我的解决办法:采用时空转换
clc;
clear;
load('CAPE19792014.mat');
baoyuliang=reshape(SQ19792014,[241*480,36]);
juping=baoyuliang-mean(baoyuliang,2)*ones(1,36);
xdata=juping;
% EOF Analysis
[EOFdata,E]=eig(xdata'*xdata);
EOFdata=fliplr(EOFdata); % 特征向量
E=fliplr(flipud(E)); % 特征根
PC=xdata*EOFdata;
diagonal=diag(E);
sum_d=sum(diagonal); % 总的特征值
EOF1=PC(:,1)/sqrt(E(1,1)); % xdata*xdata’的第一特征向量
EOF1=reshape(EOF1,[241,480]);
e1=(diagonal(1,1)/sum_d)*100 %; %38.2920%
PC1=PC(1,:);
EOF2=PC(:,2)/sqrt(E(2,2)); % xdata*xdata’的第二特征向量
EOF2=reshape(EOF2,[241,480]);
e2=(diagonal(2,1)/sum_d)*100 %; %9.2266%
PC2=PC(2,:);
EOF3=PC(:,3)/sqrt(E(3,3)); % xdata*xdata’的第三特征向量
EOF3=reshape(EOF3,[241,480]);
e3=(diagonal(3,1)/sum_d)*100 %; %9.1010%
PC3=PC(3,:);
来自群组: 北京师范大学地学-气象 |
|