爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
楼主: kongfeng0824

[讨论] 【已解决】讨论格点数据的EOF和SVD如何做?

[复制链接]

新浪微博达人勋

 楼主| 发表于 2015-8-9 16:58:53 | 显示全部楼层
Aires 发表于 2015-8-9 15:47
这种情况下做时空转换,你给看一下气象统计的教材,这样只用求36*36的矩阵了

恩是的。
我已经解决了:
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,:);
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-8-11 21:14:33 | 显示全部楼层
Aires 发表于 2015-8-8 14:39
把经度纬度合为一维,然后做EOF就行了,就是转成资料矩阵就是了,看一下气象统计的教材就知道了

还有一个问题想请教一下:
单场的EOF已经通过时空转换解决。
现在遇到的问题是我想做降水场和气压场的SVD。这下可能不能时空转换了。
遇到了同样的计算内存不足的问题。
估计还是格点数目太多的缘故。不知道Aires是否遇到过这样的问题?

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-8-11 22:40:32 | 显示全部楼层
kongfeng0824 发表于 2015-8-11 21:14
还有一个问题想请教一下:
单场的EOF已经通过时空转换解决。
现在遇到的问题是我想做降水场和气压场的S ...

暂时还没有。你的SVD是用的matlab自带的svd函数么?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-8-12 11:38:30 | 显示全部楼层
Aires 发表于 2015-8-11 22:40
暂时还没有。你的SVD是用的matlab自带的svd函数么?

恩是的。是matlab自带的SVD。
我估计得换一种方法。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-8-12 12:04:54 | 显示全部楼层
kongfeng0824 发表于 2015-8-12 11:38
恩是的。是matlab自带的SVD。
我估计得换一种方法。

如果用SVD求出来的矩阵太大实在不行的话,你也可以采用多变量EOF试试,这也可以体现两个场的相关情况
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-8-12 13:17:34 | 显示全部楼层
Aires 发表于 2015-8-12 12:04
如果用SVD求出来的矩阵太大实在不行的话,你也可以采用多变量EOF试试,这也可以体现两个场的相关情况

恩是的。我试试。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-4-14 12:53:55 | 显示全部楼层
http://bbs.06climate.com/forum.php?mod=viewthread&tid=34277
上面是我写的一个程序,可以直接使用,里面表明了时间*空间,也可以做时空转换
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-5-14 21:28:58 | 显示全部楼层
新手保存,谢谢分享!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-6-19 17:44:19 | 显示全部楼层
好。学习了。
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2017-6-20 09:31:25 | 显示全部楼层
感谢分享,有收获
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表