实习4  利用风场和高度场计算运动特征参量

  • 实习目的

熟悉地转风涡度在气象中的应用,掌握涡度和散度的实际编程计算。

  • 实习内容

已知2020年的6h再分析资料,要素场有温度、高度、相对湿度和水平风场。求各小组负责第二日20时10-60N,60-160E的区域在200hpa和 850hpa上的涡度和散度以及500地转风涡度,并给出相应的图。

  • 实习要求:

根据实习内容和资料说明,编写计算你熟悉的语言程序(如Fortran、c和matlab等),并输出计算结果和绘图(如NCL, Matlab和grads)。实习结果分析。

3.1 计算的程序

%读取.nc资料数据

indir = 'E:\天诊\';%路径

u=ncread(['E:\天诊\','uwnd.2020.nc'],'uwnd');%水平风场u

v=ncread(['E:\天诊\','vwnd.2020.nc'],'vwnd');%水平风场v

% (4维)索引变量-lon,lat,level,time

lon=ncread(['E:\天诊\','air.2020.nc'],'lon');

lat=ncread(['E:\天诊\','air.2020.nc'],'lat');

level=ncread(['E:\天诊\','air.2020.nc'],'level');

time=ncread(['E:\天诊\','air.2020.nc'],'time');

%6月9日北京20时

timez=(datenum(2020,6,9,12,0,0)-datenum('1800-01-01 00:00:0.0'))*24; %将世界12时转化为资料时间

%转换索引下标

%-200hpa

time_z=find(time==timez);

level_z=find(level==200);

minlon=find(lon==60);

maxlon=find(lon==160);

minlat=find(lat==10);

maxlat=find(lat==60);

%取出所需资料(lon,lat,level,time)

uu=u(minlon:maxlon,maxlat:minlat,level_z,time_z);

vv=v(minlon:maxlon,maxlat:minlat,level_z,time_z);

latt=lat(maxlat:minlat)/180*pi;

uu=uu';

vv=vv';

%计算涡度

r=6371*10^3;

a=1/(2*r);

d=2.5/180*pi;%经纬度网格距转为弧度制

for i=2:size(uu,1)-1

    for j=2:size(uu,2)-1

            vor(i,j)=a*((vv(i,j+1)-vv(i,j-1))/cos(latt(i))/d -(uu(i+1,j)-uu(i-1,j))/d+2*uu(i,j)*tan(latt(i)));

    end

end

%计算散度

for i=2:size(uu,1)-1

    for j=2:size(uu,2)-1

              D(i,j)=a*((uu(i,j+1)-uu(i,j-1))/(cos(latt(i))*d) -(vv(i+1,j)-vv(i-1,j))/d-2*vv(i,j)*tan(latt(i)));

    end

end

%对站点数据进行Cubic双立方插值

X=60+2.5:160-2.5;

Y=10+2.5:60-2.5;

lonlon=double(lon(minlon+1:maxlon-1));

latlat=double(lat(minlat-1:-1:maxlat+1));

 

%850hpa

level_z=find(level==850);

uu=u(minlon:maxlon,maxlat:minlat,level_z,time_z);

vv=v(minlon:maxlon,maxlat:minlat,level_z,time_z);

uu=uu';

vv=vv';

%计算涡度

for i=2:size(uu,1)-1

    for j=2:size(uu,2)-1

            vor(i,j)=a*((vv(i,j+1)-vv(i,j-1))/cos(latt(i))/d -(uu(i+1,j)-uu(i-1,j))/d+2*uu(i,j)*tan(latt(i)));

    end

end

%计算散度

for i=2:size(uu,1)-1

    for j=2:size(uu,2)-1

              D(i,j)=a*((uu(i,j+1)-uu(i,j-1))/(cos(latt(i))*d) -(vv(i+1,j)-vv(i-1,j))/d-2*vv(i,j)*tan(latt(i)));

    end

End

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%500hpa

H=ncread(['E:\天诊\','hgt.2020.nc'],'hgt');%高度H

HH=H(minlon:maxlon,maxlat:minlat,level_z,time_z);

level_z=find(level==500);

uu=u(minlon:maxlon,maxlat:minlat,level_z,time_z);

vv=v(minlon:maxlon,maxlat:minlat,level_z,time_z);

uu=uu';

vv=vv';

HH=HH';

%计算地转风涡度

r=6371*10^3;

d=2.5/180*pi;%经纬度网格距转为弧度制

for i=2:size(uu,1)-1

    for j=2:size(uu,2)-1

      a=9.8/(2*(7.292*10^-5)*sin(latt(i))*r^2);

dz_vor(i,j)=a*((HH(i,j+1)+HH(i,j-1)-2*HH(i,j))/cos(latt(i))^2/d^2+(HH(i+1,j)+HH(i-1,j)-2*HH(i,j))/d^2-(H(i+1,j)-H(i-1,j))*tan(latt(i))/(2*d));

    end

end

3.2 计算的绘图程序和描述文件

%200涡度

[X1 Y1 Z1]=griddata(lonlon,latlat,double(vor(2:20,2:40)),X',Y,'cubic');%范围缩小一圈是起点是+

m_proj('miller','lon',[60 160],'lat',[10 60]);

m_grid('linestyle','none','box','fancy','tickdir','out');hold on

m_contourf(X1,Y1,Z1,30,'linestyle','none'); hold on

title('200hpa涡度分布图', 'Rotation', 0, 'FontSize', 16);%显示图标题

colormap(m_colmap('jet',10));%填充颜色搭配

colorbar('Location','eastoutside');%颜色栏

m_coast('color',[0 0 0]);%海岸线-黑色三原色

hold on;

[ulon,ulat]=meshgrid([60:2.5:160],[10:2.5:60]);

m_quiver(ulon,ulat,uu,vv,'k')%风场

hold on

%200散度

[X1 Y1 Z1]=griddata(lonlon,latlat,double(D(2:20,2:40)),X',Y,'cubic');%范围缩小一圈是起点是+

m_proj('miller','lon',[60 160],'lat',[10 60]);

m_grid('linestyle','none','box','fancy','tickdir','out');hold on

m_contourf(X1,Y1,Z1,30,'linestyle','none'); hold on

title('200hpa散度分布图', 'Rotation', 0, 'FontSize', 16);%显示图标题

colormap(m_colmap('jet',10));%填充颜色搭配

colorbar('Location','eastoutside');%颜色栏

m_coast('color',[0 0 0]);%海岸线-黑色三原色

hold on;

[ulon,ulat]=meshgrid([60:2.5:160],[10:2.5:60]);

m_quiver(ulon,ulat,uu,vv,'k')%风场

hold on

%850涡度

figure

[X1 Y1 Z1]=griddata(lonlon,latlat,double(vor(2:20,2:40)),X',Y,'cubic');%范围缩小一圈是起点是+

m_proj('miller','lon',[60 160],'lat',[10 60]);

m_grid('linestyle','none','box','fancy','tickdir','out');hold on

m_contourf(X1,Y1,Z1,30,'linestyle','none'); hold on

title('850hpa涡度分布图', 'Rotation', 0, 'FontSize', 16);%显示图标题

colormap(m_colmap('jet',10));%填充颜色搭配

colorbar('Location','eastoutside');%颜色栏

m_coast('color',[0 0 0]);%海岸线-黑色三原色

hold on;

[ulon,ulat]=meshgrid([60:2.5:160],[10:2.5:60]);

m_quiver(ulon,ulat,uu,vv,'k')%风场

hold on

%850散度

figure

[X1 Y1 Z1]=griddata(lonlon,latlat,double(D(2:20,2:40)),X',Y,'cubic');%范围缩小一圈是起点是+

m_proj('miller','lon',[60 160],'lat',[10 60]);

m_grid('linestyle','none','box','fancy','tickdir','out');hold on

m_contourf(X1,Y1,Z1,30,'linestyle','none'); hold on

title('850hpa散度分布图', 'Rotation', 0, 'FontSize', 16);%显示图标题

colormap(m_colmap('jet',10));%填充颜色搭配

colorbar('Location','eastoutside');%颜色栏

m_coast('color',[0 0 0]);%海岸线-黑色三原色

hold on;

[ulon,ulat]=meshgrid([60:2.5:160],[10:2.5:60]);

m_quiver(ulon,ulat,uu,vv,'k')%风场

hold on

%500地转风涡度

figure

[X1 Y1 Z1]=griddata(lonlon,latlat,double(dz_vor(2:20,2:40)),X',Y,'cubic');%范围缩小一圈是起点是+

m_proj('miller','lon',[60 160],'lat',[10 60]);

m_grid('linestyle','none','box','fancy','tickdir','out');hold on

m_contourf(X1,Y1,Z1,30,'linestyle','none'); hold on

title('500hpa地转风涡度分布图', 'Rotation', 0, 'FontSize', 16);%显示图标题

colormap(m_colmap('jet',10));%填充颜色搭配

colorbar('Location','eastoutside');%颜色栏

m_coast('color',[0 0 0]);%海岸线-黑色三原色

hold on;

[ulon,ulat]=meshgrid([60:2.5:160],[10:2.5:60]);

m_quiver(ulon,ulat,uu,vv,'k')%风场

hold on

3.3 绘制图形、统计表格和相关分析

天气学诊断分析I 实习报告(实习四)相关推荐

  1. 天气学诊断分析I 实习报告(二)

    实习目的 熟悉迭代方法在气象中的应用,掌握稳定度指数的实际编程计算. 实习内容 1.已知2020年的6h再分析资料,要素场有温度.高度.相对湿度和水平风场.用迭代法求某一区域(10ºN-60ºN,60 ...

  2. 天气学诊断分析I 实习报告(三)

    实习目的 熟悉迭代方法在气象中的应用,掌握稳定度指数的实际编程计算. 实习内容 1.已知2020年的6h再分析资料,要素场有温度.高度.相对湿度和水平风场.用迭代法求某一区域(10ºN-60ºN,60 ...

  3. 天气学诊断实习五 计算水汽平流、水汽通量、水汽通量散度

    一.实习目的: 熟悉水汽平流.水汽通量.水汽通量散度的实际编程计算. 二.实习内容: 编制计算水汽平流.水汽通量.水汽通量散度的程序,并且绘制出两个时次25日20时,26日20时的水汽平流.水汽通量. ...

  4. 天气学诊断实习六 计算水汽流函数和水汽势函数

    一.实习目的: 熟悉水汽流函数和水汽势函数程序的实际编程计算. 二.实习内容: 编制计算水汽流函数和水汽势函数的程序,并且绘制出两个时次25日20时,26日20时的水汽流函数和水汽势函数分布(850h ...

  5. 天气学诊断实习四 计算垂直速度

    一.实习目的: 熟悉垂直差分在气象中的应用,掌握垂直速度的实际编程计算. 二.实习内容: 编制计算垂直速度程序,并绘制500hPa垂直速度.用第二种修正方案,其中大气层顶的垂直速度可以直接采用0,也可 ...

  6. 天气学诊断实习三 计算涡度、散度、涡度平流和温度平流

    一.实习目的: 熟悉使用差分方法解决方程中的导数.偏导数,计算涡度.散度.涡度平流和温度平流的程序 二.实习内容: 编制计算涡度.散度.涡度平流和温度平流的程序,并且绘制出两个时次25日20时,26日 ...

  7. 天气学诊断实习一 露点和凝结抬升高度的计算

    一.实习内容   已知南京站某一时次的相对湿度(92.8%).气温(14.1ºC).气压(1017.4, hPa)及站点高度(35.2m),请利用迭代法求出: (1) 该站的露点温度 (2) 凝结高度 ...

  8. 实习报告--实习内容及过程

    转眼已经在xx公司实习快2个月了,之前的兴奋.喜悦如今已经让我熟悉,在这里的每一天都会让我有成为一名真正财富拥有者的冲动.也许对别人来说,一定不能体会为什么在这不到10个月的时间会让一个人有翻天覆地的 ...

  9. java实训答辩ppt_基于JavaSwing的工作考勤管理系统设计与实现毕业论文+开题报告+实习报告+实习日历+答辩PPT+项目源码...

    工作考勤管理系统 摘    要 考勤管理员的考勤的工作不仅工做量大,而且时效性强.在过去,企业多采用签到和报表式进行管理,效率和透明度较差.计算机技术特别是数据库技术的发展为企业建立管理信息系统,对改 ...

最新文章

  1. 逻辑心理测试题:三囚分汤
  2. leetcode算法题--n个骰子的点数
  3. linux vbox 添加串口,如何在VirtualBox中直接使用本机物理串口
  4. python读xml文件
  5. mac nginx加载php 配置,Mac下Nginx安装环境配置详解
  6. java查询数据比Oracle少,java对ORACLE中的于NCHAR数据的处理,查询
  7. Android 7.0(API 24)以上调用系统安装包问题
  8. 初学“Jave”心得
  9. 博客园8月份第3周51Aspx源码发布详情
  10. QThread的用法
  11. 未来10年,最值得投资的40个城市
  12. 计算机桌面任务栏窗口对话框菜单的功能,电脑下方的任务栏不显示怎么办 在任务栏和开始菜单属性对话框...
  13. 為Raspberry Pi 安裝Raspbian系統的詳細步驟 (Mac OS版本)
  14. 日本瑞萨renesas MCU---汽车电子MCU的不二之选
  15. 基于Python的微信好友男女比例,区域排名,签名情感分析
  16. 达梦数据库更换key文件的方法
  17. 代理是如何实现IP伪装的呢?
  18. 【方向盘】启动命令和IDEA如何传递:VM参数、命令行参数、系统参数、环境变量参数、main方法参数
  19. 微信小程序:组件Component接收不到参数id
  20. 人工智能很危险!?开发需谨慎?

热门文章

  1. Educational Codeforces Round 132 (Rated for Div. 2) C. Recover an RBS
  2. 根据ip查询地理位置
  3. 求高手指点,发现98五笔有几个字三级简码和四级简码完全不同,不知道使用98五笔的亲们怎么用的?
  4. 推荐系统评测指标—准确率(Precision)、召回率(Recall)、F值(F-Measure)
  5. MW75蓝牙5.2双模热插拔PCB
  6. 华为云DAYU使用Spark组件开发的学习使用心得
  7. ueditor编辑器复制粘贴图片上传
  8. 口语对话 用英语聊读书
  9. matlab sor解线性方程组,SOR算法解线性方程组的matlab程序
  10. ART世界探险(17) - 中层中间代码MIR