- 积分
- 9946
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2014-11-17
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
最近感觉GrADS计算日数据的水汽通量时数据量太大,计算十分漫长,想着能否用MATLAB计算这样应该处理数据上更加方便,但是在家园中搜索MATLAB中水汽通量的计算只有几个帖子中介绍到了,其中
MATLAB计算水汽通量和水汽通量散度程序的讨论
http://bbs.06climate.com/forum.p ... 5&fromuid=44552
(出处: 气象家园)
matlab计算水汽通量积分
http://bbs.06climate.com/forum.p ... 1&fromuid=44552
(出处: 气象家园)
但是没有和GrADS的结果进行对比是否一致,因此自己开始计算了。
测试数据:NCEP1 1948年日数据比湿、风速和表面气压数据
比湿单位:kg/kg;
风速:m/s;
气压:Pa = kg/(m/s^2);
水汽通量单位理解看这个帖子:
整层水汽通量散度计算及其单位
http://bbs.06climate.com/forum.p ... 0&fromuid=44552
(出处: 气象家园)
根据这个帖子中的整层水汽通量单位推导,我的结果单位应该为kg/(m*s),量级应该在1e2
程序 : 只给一个例子
g = 9.8 % 单位m/s^2
shum = double(ncread('pres.sfc.1948.nc','shum'));
uwnd = double(ncread('uwnd.1948.nc','uwnd'));
pres = double(ncread('pres.sfc.1948.nc','pres')); % 数据都放在当前目录下
deltaPP = pres/100-1000; % 地面气压
ss1 = squeeze(shum(:,:,1,:).*uwnd(:,:,1,:)).*deltaPP/g*100; % 计算最底层
sz = size(squeeze(shum(:,:,1,:)));
ss = zeros(sz);
for ii = 2:8
ss = ss + squeeze(shum(:,:,ii,:).*uwnd(:,:,ii,:))*deltaP(ii-1)/g*100; % 计算其它层
end
ss = ss + ss1; % 结果累加
结果上来看对应的还挺好的,但是量上好像差了些,希望大家也能看看有没有问题!!!
画图结果:
|
-
-
GrADS结果
|