- 实习目的
熟悉迭代方法在气象中的应用,掌握稳定度指数的实际编程计算。
- 实习内容
1.已知2020年的6h再分析资料,要素场有温度、高度、相对湿度和水平风场。用迭代法求某一区域(10ºN-60ºN,60ºE-140ºE) 各层各日(各小组负责日期的第2日)20时的假相当位温,并给出在850和500hPa上相应的图及其此两层之差。
2.已知2020年的6h再分析资料,要素场有温度、高度、相对湿度和水平风场。求各层各日(各小组负责日期的第2日)20时区域平均(70ºE-100ºE) 、(100ºE-110ºE)和(110ºE-120ºE)在(10ºN-60ºN,1000-300hPa)面上的假相当位温和位温,并给出相应的图。
- 实习结果分析
3.1 计算的程序
(1)计算850hpa假相当位温、500hpa假相当位温、两层之差
(2)计算1000-300hPa的北京20时的区域平均(70ºE-100ºE) 、(100ºE-110ºE)、(110ºE-120ºE)、(10ºN-60ºN)上的假相当位温和位温
3.2 计算的绘图程序和描述文件
(1)程序代码——计算7班A组负责日期6月9日(第二日)世界12时,1000-300hPa的北京20时的区域平均(70ºE-100ºE) 、(100ºE-110ºE)、(110ºE-120ºE)、(10ºN-60ºN)上的假相当位温和位温
%读取.nc资料数据
%路径
indir = 'E:\天诊\';
ncdisp([indir,'air.2020.nc']);
ncdisp([indir,'hgt.2020.nc']);
ncdisp([indir,'rhum.2020.nc']);
ncdisp([indir,'uwnd.2020.nc']);
ncdisp([indir,'vwnd.2020.nc']);
%变量
T=ncread(['E:\天诊\','air.2020.nc'],'air');%温度T
H=ncread(['E:\天诊\','hgt.2020.nc'],'hgt');%高度H
RH=ncread(['E:\天诊\','rhum.2020.nc'],'rhum');%相对湿度RH
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');
%10?N-60?N,100?E-140?E——925hPa气压上——6月9日——北京20时为——露点温度、凝结高度和凝结温度与时间
timez=(datenum(2020,6,9,12,0,0)-datenum('1800-01-01 00:00:0.0'))*24; %将世界12时转化为资料时间
%转换索引下标
time_z=find(time==timez);
level_z=find(level==850);
minlon=find(lon==100);
maxlon=find(lon==140);
minlat=find(lat==10);
maxlat=find(lat==60);
%取出所需资料(lon,lat,level,time)
TT=T(minlon:maxlon,maxlat:minlat,level_z,time_z);
HH=H(minlon:maxlon,maxlat:minlat,level_z,time_z);
RHRH=RH(minlon:maxlon,maxlat:minlat,level_z,time_z);
uu=u(minlon:maxlon,maxlat:minlat,level_z,time_z);
vv=v(minlon:maxlon,maxlat:minlat,level_z,time_z);
%计算露点——之前编程用的是摄氏度公式
RH=RHRH;tz=TT-273.15;e0=6.1078;a=17.269;b=35.86;
es=e0.*exp((a.*tz)./(273.16+tz-b));
ez=RH./100.*es;
for i=1:maxlon-minlon+1
for j=1:minlat-maxlat+1
while ez(i,j)-es(i,j)<0
tz(i,j)=tz(i,j)-0.01;
es(i,j)=e0.*exp((a.*tz(i,j))./(273.15+tz(i,j)-b));
end
td(i,j)=tz(i,j);
end
end
%计算假相当位温
RH=RHRH;Tz=TT;Td=td+273.15;P0=1000.0;Pz=925;Z=HH;e0=6.1078;a=17.269;b=35.86;Cp=1004;g=9.8;L=2.5*10^6; %2.5×10^6J/kg
ez=e0.*exp((a.*(Td-273.15))./(Td-b));
seita_z=Tz.*(P0./Pz).^0.286;
qz=0.622.*ez./(Pz-0.378.*ez);
for i=1:maxlon-minlon+1
for j=1:minlat-maxlat+1
Pl=300;
Tl(i,j)=seita_z(i,j).*(Pl./P0).^0.286;
el(i,j)=e0.*exp((a*(Tl(i,j)-273.15))/(Tl(i,j)-b));
ql(i,j)=0.622.*el(i,j)/(Pl-0.378.*el(i,j));
while ql(i,j)-qz(i,j)<0
Pl=Pl+1;
Tl(i,j)=seita_z(i,j).*(Pl./P0).^0.286;
el(i,j)=e0.*exp((a*(Tl(i,j)-273.15))/(Tl(i,j)-b));
ql(i,j)=0.622.*el(i,j)/(Pl-0.378.*el(i,j));
end
seita_se(i,j)=seita_z(i,j).*exp(L*qz(i,j)/(Cp.*Tl(i,j)));
end
end
%画图
m_proj('lambert','lon',[100 140],'lat',[10 60]); hold on
m_grid('linestyle','-','tickdir','out','linewidth',3); hold on
m_contourf(100:2.5:140,60:-2.5:10,seita_se',15,'linestyle','none'); hold on
colormap(m_colmap('jet',10));%填充颜色搭配
colorbar('Location','eastoutside');%颜色栏
m_coast('color',[0 0 0]);%海岸线-黑色三原色
hold on
seita_se=seita_se';
seita_se_=seita_se(21:-1:1,:)-273.15;
[C,h] = contourf(seita_se_,8);
clabel(C,h)
3.3 绘制图形、统计表格和相关分析
(1)第一问运行结果如图所示:
(2)第二问绘图结果如图所示:
- 第二问结果分析:
由上次实习可知北侧低温,存在一片空气饱和度较高区域,南侧高温高湿。来自东南气流带来太平洋的暖湿水汽,20N-30N,112E-120E区域存在一个辐合区,高温高湿。
研究区域假相当位温的范围在290-350K之间,在西侧20N-30N存在一个暖中心,20N-30N,112E-120E区域存在一个高值区。在北侧存在一片低值区,整体位温分布难暖北冷。
3.4 存在的问题或遇到的问题或体会或小结
因为在第一次读取好资料的基础之上,只是改变了一个计算公式,故计算变化编程改动部分即可。遇到的问题:绘图地图难以叠加,通过网上查找资料和不断尝试,叠加简单海岸线,比之前只有经纬度更加直观。