[转载]matlab画风矢量场与位势高度图(contour语法)

标签:
转载 |
分类: matlab |
以下操作均以NCEP的风矢量数据作为演示,有nc数据的信息浏览、读出等操作
调整了下位置。ncdisp挪文章最后了~
%读取所需数据
%注意!我们这里读到的u是四维矩阵,分别是lon*lat*level*time,
clear;clc;
lat=ncread('E:\uwnd.mon.mean.nc','lat');
lon=ncread('E:\uwnd.mon.mean.nc','lon');
U=ncread('E:\uwnd.mon.mean.nc','uwnd');
H=ncread('E:FessaydatadataNCEPhgt.mon.mean.nc','hgt');
H(H==-9.97e+36)=NaN;U(U==3.28e+04)=NaN;
%去空值
%根据研究区截取范围
x=lon(29:57)';
y=lat(14:37)';
[X,Y]=meshgrid(x,y);[n1,n2]=size(X);
%切出所需数据格点
u_850=squeeze(U(29:57,14:37,8,25:end-1));%time需要根据自己的数据下载情况进行节选~
v_850=squeeze(V(29:57,14:37,8,25:end-1));
h_500=squeeze(H(29:57,14:37,6,25:end-1));
%我的数据是月数据,数据第三维就是对应的月份,现在就可以画图了!
%可以下载中国的shp线文件,叠加上去
geoshow('E:国界bou1_4l.shp');
axis equal;
hold on
quiver(X,Y,u_850(:,:,10),drew_v(:,:,10));%随便画个日期的风场图
[C,b]=contour(X,Y,h_500);
set(b,'ShowText','on','TextStep',get(b,'LevelStep'));
%在等高线上叠加数值(文后详情)
colormap Jet %等高线的颜色分配,我记得有很多,像Pink,Bone什么的~自己选
title('850hPa的风场与500hPa位势高度叠加场')
最后展示一下(咩哈哈哈):
http://s5/mw690/0045Egdrzy6XtEvcoCw04&690
%显示nc数据的信息
ncdisp('E:NCEPuwnd.mon.mean.nc');
%ncinfo我试了下也可以,返回的矩阵中可以分别查看到信息;最笨就是Grads里打开,但是能解决问题都不错
***********以下为系统返回数据****************
%%主要看这几个信息:维度,起始的范围,循环的顺序等
Dimensions:
level = 17
lat = 73
lon = 144
time = 793
(UNLIMITED)
Variables:
level
Size:
17x1
Dimensions: level
Datatype: single
Attributes:
units
= 'millibar'
actual_range = [1.00e+03 1.00e+01]
axis
= 'Z'
lat
Size:
73x1
Dimensions: lat
Datatype: single
Attributes:
调整了下位置。ncdisp挪文章最后了~
%读取所需数据
%注意!我们这里读到的u是四维矩阵,分别是lon*lat*level*time,
clear;clc;
lat=ncread('E:\uwnd.mon.mean.nc','lat');
lon=ncread('E:\uwnd.mon.mean.nc','lon');
U=ncread('E:\uwnd.mon.mean.nc','uwnd');
H=ncread('E:FessaydatadataNCEPhgt.mon.mean.nc','hgt');
H(H==-9.97e+36)=NaN;U(U==3.28e+04)=NaN;
%根据研究区截取范围
x=lon(29:57)';
y=lat(14:37)';
[X,Y]=meshgrid(x,y);[n1,n2]=size(X);
%切出所需数据格点
u_850=squeeze(U(29:57,14:37,8,25:end-1));%time需要根据自己的数据下载情况进行节选~
v_850=squeeze(V(29:57,14:37,8,25:end-1));
h_500=squeeze(H(29:57,14:37,6,25:end-1));
%我的数据是月数据,数据第三维就是对应的月份,现在就可以画图了!
%可以下载中国的shp线文件,叠加上去
geoshow('E:国界bou1_4l.shp');
axis equal;
hold on
quiver(X,Y,u_850(:,:,10),drew_v(:,:,10));%随便画个日期的风场图
[C,b]=contour(X,Y,h_500);
set(b,'ShowText','on','TextStep',get(b,'LevelStep'));
colormap Jet
title('850hPa的风场与500hPa位势高度叠加场')
最后展示一下(咩哈哈哈):
http://s5/mw690/0045Egdrzy6XtEvcoCw04&690
%显示nc数据的信息
ncdisp('E:NCEPuwnd.mon.mean.nc');
%ncinfo我试了下也可以,返回的矩阵中可以分别查看到信息;最笨就是Grads里打开,但是能解决问题都不错
***********以下为系统返回数据****************
%%主要看这几个信息:维度,起始的范围,循环的顺序等
Dimensions:
Variables: