爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 5170|回复: 5

[程序设计] MATLAB计算假相当位温的程序,请大神帮忙检查一下有没有错误。谢谢!

[复制链接]

新浪微博达人勋

发表于 2015-6-20 18:25:43 | 显示全部楼层 |阅读模式

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

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

x
利用坛子里面计算假相当位温的GS文件,自己修改了一下,绘制东经103-109°,北纬26-30°区域的平均假相当位温剖面图,不知有错否,请大神指点。资料为1°*1°的fnl资料,直接下载netcdf格式。


  1. % function [ output_args ] = eqtdraw( input_args )
  2. %EQTDRAW Summary of this function goes here
  3. %   Detailed explanation goes here
  4. %   计算假相当位温并画图
复制代码





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

新浪微博达人勋

 楼主| 发表于 2015-6-20 18:27:08 | 显示全部楼层

  1. % function [ output_args ] = eqtdraw( input_args )
  2. %EQTDRAW Summary of this function goes here
  3. %   Detailed explanation goes here
  4. %   计算假相当位温并画图

  5. clc;clear all
  6. ncdisp('D:\fnl\fnl_20150418_12_00.grib2.nc');
  7. prs=(ncread('D:\fnl\fnl_20150418_00_00.grib2.nc','lv_ISBL0'))/100
  8. t1=ncread('D:\fnl\fnl_20150418_00_00.grib2.nc','TMP_P0_L100_GLL0');
  9. rh1=ncread('D:\fnl\fnl_20150418_00_00.grib2.nc','RH_P0_L100_GLL0');


  10. lon=ncread('D:\fnl\fnl_20150418_12_00.grib2.nc','lon_0');
  11. lat=ncread('D:\fnl\fnl_20150418_12_00.grib2.nc','lat_0');
  12. S2=shaperead('D:\国家基础地理信息系统数据\国界与省界\bou2_4p.shp');
  13. bou1x=[S2(:).X];
  14. bou1y=[S2(:).Y];

  15. for j=1:26
  16.    lev(1:360,1:181,j)=prs(j);
  17. end

  18. es1=(6.112.*exp(17.67.*(t1-273.15)./(t1-29.65)));
  19. q1=rh1.*(0.62197.*es1./(lev-es1))/100;
  20. e1=lev.*q1./(0.62197+q1)+1e-10;
  21. tlcl1=55.0+2840./(3.5.*log(t1)-log(e1)-4.805);
  22. theta1=t1.*(1000./lev).^(0.2854.*(1.0-0.28.*q1));
  23. eqt1=theta1.*exp(((3376./tlcl1)-2.54).*q1.*(1.0+0.81.*q1))-273.5;
  24. tt1=eqt1(103:109,61:65,:);
  25. gg1=mean(mean(tt1));
  26. gp1=squeeze(squeeze(gg1));
  27. plot(flipud(gp1(6:end)),flipud(prs(6:end)),'-k*')
  28. set(gca,'YDir','reverse')
  29. axis([50 120 100 1000])
  30. % print('-dpng','D:\7.png','-r300')
复制代码
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-12-5 15:57:11 | 显示全部楼层
看了一下基本没错的,楼主所用公式是否摘自Bolton,1980?还有,e1=lev.*q1./(0.62197+q1)+1e-10;这一条+1e-10是什么意思?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-11-28 11:36:32 | 显示全部楼层
e1=lev.*q1./(0.62197+q1)+1e-10;中最后的1e-10是什么意思?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2019-11-28 11:42:46 | 显示全部楼层
yuppieflu 发表于 2016-12-5 15:57
看了一下基本没错的,楼主所用公式是否摘自Bolton,1980?还有,e1=lev.*q1./(0.62197+q1)+1e-10;这一条+1e ...

同有这个疑问,请问解决了吗?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-4-13 15:41:10 | 显示全部楼层
25行这里q1=rh1.*(0.62197.*es1./(lev-es1))/100;  
为什么不是q1=rh1.*(0.62197.*es1./(lev-0.378*es1))/100;  
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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