爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 15586|回复: 23

[程序设计] 计算水汽通量的MATLAB程序,几处不明,求讨论?

[复制链接]

新浪微博达人勋

发表于 2015-3-28 21:45:59 | 显示全部楼层 |阅读模式

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

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

x
在网上搜到一段计算水汽通量的matlab程序:(出处http://blog.sina.com.cn/s/blog_4cfb5a620101cesh.html,原程序数据读取有些问题,已稍作改动
程序中有几处不明,下面用红色标识,求指点!

%资料:hgt.mon.mean.nc;uwnd.mon.mean.nc,vwnd.mon.mean.nc;shum.mon.mean.nc(比湿);
%---------------------------------------------------
hgt1 = ncread('hgt.mon.mean.nc','hgt',[9 13 1 1],[65 37 8 806],[1 1 1 1]);
lon = ncread('hgt.mon.mean.nc','lon',9,65,1);
lat = ncread('hgt.mon.mean.nc','lat',13,37,1);
j=1;
for i=6:12:740
    hgt(:,:,:,[j,j+1,j+2])=squeeze(hgt1(:,:,:,[i,i+1,i+2]));
    j=j+1;
end
  logc1=hgt<0;
  hgt(logc1)=0.0;
  sum11=62*3-sum(logc1);
  sum1=sum(hgt);
  [ii]=find(sum11==0);
  sum11(ii)=1;
  hgtm=squeeze(sum1./sum11);
  clear file f hgt hgt1 logc1 sum11 sum1 ii
%----------------------------------------------------
uwnd1 = ncread('uwnd.mon.mean.nc','uwnd',[9 13 1 1],[65 37 8 806],[1 1 1 1])*.01 + 202.65;
j=1;
for i=6:12:740
    uwnd(:,:,:,[j,j+1,j+2])=squeeze(uwnd1(:,:,:,[i,i+1,i+2]));
    j=j+1;
end
  logc1=uwnd>200;
  uwnd(logc1)=0.0;
  sum11=62*3-sum(logc1);
  sum1=sum(uwnd);
  [ii]=find(sum11==0);
  sum11(ii)=1;
  uwm=squeeze(sum1./sum11);
  clear file f uwnd uwnd1 logc1 sum11 sum1 ii j
%----------------------------------------------------
vwnd1 = ncread('vwnd.mon.mean.nc','vwnd',[9 13 1 1],[65 37 8 806],[1 1 1 1])*.01 + 202.65;
j=1;
for i=6:12:740
    vwnd(:,:,:,[j,j+1,j+2])=squeeze(vwnd1(:,:,:,[i,i+1,i+2]));
    j=j+1;
end
  logc1=vwnd>200;
  vwnd(logc1)=0.0;
  sum11=62*3-sum(logc1);
  sum1=sum(vwnd);
  [ii]=find(sum11==0);
  sum11(ii)=1;
  vwm=squeeze(sum1./sum11);
  clear file f vwnd vwnd1 logc1 sum11 sum1 ii j
%----------------------------------------------------
shum1 = ncread('shum.mon.mean.nc','shum',[9 13 1 1],[65 37 8 806],[1 1 1 1])*.001 + 32.665;
j=1;
for i=6:12:740
    shum(:,:,:,[j,j+1,j+2])=squeeze(shum1(:,:,:,[i,i+1,i+2]));
    j=j+1;
end
  logc1=shum>2000;
  shum(logc1)=0.0;
  sum11=62*3-sum(logc1);
  sum1=sum(shum);
  [ii]=find(sum11==0);
  sum11(ii)=1;
  shm=squeeze(sum1./sum11);
  clear file f shum shum1 logc1 sum11 sum1 ii j
%----------------------------------------------------
  g = 9.8;
  qu = squeeze(sum((hgtm(:,1:7,:)-hgtm(:,2:8,:)).*(uwm(:,1:7,:)+uwm(:,2:8,:)).*(shm(:,1:7,:)+shm(:,2:8,:))/4));
  qv = squeeze(sum((hgtm(:,1:7,:)-hgtm(:,2:8,:)).*(vwm(:,1:7,:)+vwm(:,2:8,:)).*(shm(:,1:7,:)+shm(:,2:8,:))/4));
  qu=qu/g;
  qv=qv/g;
  quiver(lon,lat,-qu,-qv)
  hold on
  worldmap2;
  axis([20 180 -30 60])


程序中计算每部分数据时都用到了
  sum11=62*3-sum(logc1); %62指共使用了62年的数据
  sum1=sum(hgt);
  [ii]=find(sum11==0);
  sum11(ii)=1;
  hgtm=squeeze(sum1./sum11);
这样一段算法,不知此段代码是什么意思?


另外,处理风场时加的202.65 和 处理比湿时加的32.665 又作何解释?
望大家指教,谢过了!

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

新浪微博达人勋

发表于 2015-3-28 22:19:07 | 显示全部楼层

回帖奖励 +2 金钱

你看看数据。有没有offset这类的

点评

是不是因为原作者使用的是老数据,会有有偏移量和比例因子? 而现在的新数据都没有了偏移?  发表于 2015-3-29 10:25
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-3-28 22:22:18 | 显示全部楼层
又是那隻貓 发表于 2015-3-28 22:19
你看看数据。有没有offset这类的

我的数据从ncep网站直接下载的,原作者也没有提到数据的问题呀~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-3-29 10:53:15 | 显示全部楼层
lyyjbq 发表于 2015-3-28 22:22
我的数据从ncep网站直接下载的,原作者也没有提到数据的问题呀~

检查原数据到底对不对,再看看订正之后对不对,然后基本就可以分析出原因了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-3-29 11:17:15 | 显示全部楼层
版主说的有道理,应该是原作者用的老数据有比例缩放和偏移吧(关键是没有原数据)。
但这一段
sum11=62*3-sum(logc1);
  sum1=sum(hgt);
  [ii]=find(sum11==0);
  sum11(ii)=1;
  hgtm=squeeze(sum1./sum11);
还是难以理解, QQ截图20150329110538.jpg

hgt本是65*37*8*186的数据阵
经过那一段处理后变成了37*8*64的数据阵,经度从65减了一度,变成了64,怎么回事?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-3-29 14:05:11 | 显示全部楼层

回帖奖励 +2 金钱

谢谢分享
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2015-5-18 19:55:39 | 显示全部楼层

回帖奖励 +2 金钱

谢谢分享哈
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-9-5 16:36:34 | 显示全部楼层

回帖奖励 +2 金钱

先收藏了  我也得用
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-9-14 10:04:55 | 显示全部楼层

回帖奖励 +2 金钱

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

使用道具 举报

新浪微博达人勋

发表于 2015-10-24 21:57:12 | 显示全部楼层

回帖奖励 +2 金钱

楼主的问题解决了吗?我也有同样的疑惑。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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