爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 7937|回复: 11

[程序设计] 纬向分场u的的纬度-高度的EOF的第一模态

[复制链接]

新浪微博达人勋

发表于 2015-2-10 17:17:04 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
想要做出文献中的纬向分场u的的纬度-高度的EOF的第一模态,但做出来差别较大(左图是文献中的图),不知道为什么,各位大神能帮我看看哪的错误吗?EOF代码是网上下载的写好的。
代码:path='E:\uwnd.nc';
ncinf=netcdf.open(path,'NOWRITE');
lon=ncread(path,'longitude');
lat=ncread(path,'latitude');
lev=ncread(path,'level');
time=ncread(path,'time');
scale=netcdf.getAtt(ncinf,4,'scale_factor');
offset=netcdf.getAtt(ncinf,4,'add_offset');
n1=length(lon);
latnum1=find(lat==10);
latnum2=find(lat==-80);
n2=latnum2-latnum1+1;
n3=length(lev);
n4=length(time);
j=1;
num=n4/12;
for i=1:num
    x=[];
    x=double(netcdf.getVar(ncinf,4,[0 latnum1-1 0 (i-1)*12],[n1 n2 n3 12])).*scale+offset;
    x=squeeze(mean(x,4));
    var(:,:,:,j)=x;
    j=j+1;
end
var=squeeze(mean(var,1));
varmean=squeeze(mean(var,3));
for i=1:n2
    for j=1:n3
        for k=1:num
            var(i,j,k)=var(i,j,k)-varmean(i,j);
        end
    end
end
[V_eof,PC,per,lamd]=EOF(var,1);
latnew=ncread(path,'latitude',[latnum1],[n2]);
h=contourf(latnew,lev,V_eof(:,:,1)');
colorbar;
set(gca,'YDir','reverse');

文献中的

文献中的

自己画的

自己画的

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

新浪微博达人勋

 楼主| 发表于 2015-2-10 22:25:03 | 显示全部楼层
没人
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2015-2-11 08:29:02 | 显示全部楼层
可能是原始数据有问题了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-2-11 08:57:43 | 显示全部楼层
我也不明白,望懂的人帮忙看看
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-2-12 12:18:45 | 显示全部楼层
蔚蓝情怀 发表于 2015-2-11 08:29
可能是原始数据有问题了

应该没有,欧洲中心下的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-2-13 09:49:33 | 显示全部楼层
你换个别的资料分析一下 看看结果合理吗 从而判断程序是否有问题
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-2-17 11:57:49 | 显示全部楼层
把100hpa上的数据去掉试试呢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-2-17 19:01:07 | 显示全部楼层
一水天下 发表于 2015-2-17 11:57
把100hpa上的数据去掉试试呢

不行,还是和文献上的图不一样
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-2-20 06:24:33 | 显示全部楼层
"[V_eof,PC,per,lamd]=EOF(var,1);"

你的EOF.m之前用时有问题吗?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-2-20 10:42:38 | 显示全部楼层
沙颖凯 发表于 2015-2-20 06:24
"[V_eof,PC,per,lamd]=EOF(var,1);"

你的EOF.m之前用时有问题吗?

没有,用了其它的EOF程序画出来也是这样,不知道拿出了问题
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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