爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
楼主: Aires

[源程序] 分享SEOF程序

  [复制链接]

新浪微博达人勋

发表于 2015-6-13 21:39:46 | 显示全部楼层
这几天正在眼机会这个,雪中送炭
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-6-13 22:46:41 | 显示全部楼层
谢谢LZ分享~~~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-6-15 22:45:54 | 显示全部楼层
感谢楼主分享这么好的程序,非常感谢,不过原程序:test-SEOF.m中的“weight=sqrt(cos(lat(b)*pi/180))”有误,应该为:weight=sqrt(cos(lat*pi/180))。不知我的理解是否正确,麻烦楼主检查。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-6-16 19:05:01 | 显示全部楼层
denghaijun 发表于 2015-6-15 22:45
感谢楼主分享这么好的程序,非常感谢,不过原程序:test-SEOF.m中的“weight=sqrt(cos(lat(b)*pi/180))”有 ...

I think the code is no problem because I have selected the SST domain, so the weighted should be performed only the latitudes of SST domain.
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-6-16 22:25:42 | 显示全部楼层
Aires 发表于 2015-6-16 19:05
I think the code is no problem because I have selected the SST domain, so the weighted should be p ...

楼主,程序中提示了“weighted for each latitude of sst, weight = sqrt(cos(lat))”,
  1. ......
  2. a=lon;
  3. b=lat;
  4. lon_num=length(a);
  5. lat_num=length(b);
  6. sst=xlsread('D:precip.xlsx');
  7. sst=double(sst);
  8. sst(sst<-1000)=NaN;

  9. % weighted for each latitude of sst, weight = sqrt(cos(lat))
  10. weight=sqrt(cos(lat(b)*pi/180));
  11. ......
复制代码
其中,weight=sqrt(cos(lat(b)*pi/180));运行时出错了,错误提示:
Index exceeds matrix dimensions.
Error in test_SEOF (line 24)
weight=sqrt(cos(lat(b)*pi/180));

再根据后面程序:
for i=1:lat_num
    seof1(:,i,:)=seof1(:,i,:)/weight(i);
    seof2(:,i,:)=seof2(:,i,:)/weight(i);
end

修改成:
weight=sqrt(cos(lat*pi/180));
可以运行了,
麻烦楼主再次检查下。谢谢。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-6-16 22:39:30 | 显示全部楼层
denghaijun 发表于 2015-6-16 22:25
楼主,程序中提示了“weighted for each latitude of sst, weight = sqrt(cos(lat))”,其中,weight=sqr ...

Please note that in your program, a and b refer to the lon and lat. But in my test program, a and b refer to the index of lon and lat.
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-6-16 22:48:33 | 显示全部楼层
Aires 发表于 2015-6-16 22:39
Please note that in your program, a and b refer to the lon and lat. But in my test program, a and  ...

明白了,我把程序改错了,谢谢。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-6-24 12:49:47 | 显示全部楼层
谢谢分享~~就是不知道哪里可以找到SEOF更具体的方法。。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-6-24 14:14:55 | 显示全部楼层
幸福YOUKNOW 发表于 2015-6-24 12:49
谢谢分享~~就是不知道哪里可以找到SEOF更具体的方法。。。

你可以参考Bin Wang (2005)年的那篇文献
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-6-24 14:53:27 | 显示全部楼层
感谢楼主分享。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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