MATLAB绘制海面风场图像(海面风场反演)

1、海面风场数据下载
从ECNWF(https://apps.ecmwf.int/datasets/data/era40-daily/levtype%3Dsfc/)下载
以下为可以下载的参数数据,选择10 metre U wind Component和10 metre V wind Component(这里我们下载的是.nc格式的6:00的海风数据)
MATLAB绘制海面风场图像(海面风场反演)_第1张图片
2、MATLAB安装m_map工具箱
https://www.eoas.ubc.ca/~rich/map.html#examples(这是2018版本的)
因为我的MATLAB是2016a,版本不对应所以我没有安装而是解压到一个文件夹中,
在MATLAB中输入:
%将M_map路径添加到matlab中并保存
addpath(’…\Matlab\toolbox\matlab\m_map’);
savepath;
Test
m_proj(‘lambert’,‘lon’,[-10 20],‘lat’,[33 48]);
m_coast(‘contourf’);
m_grid(‘linestyle’,‘none’,‘tickdir’,‘out’,‘linewidth’,3);
代码如下:
%添加m_map工具箱进行风场图绘制
addpath(…\Matlab\toolbox\matlab\m_map’);
savepath;
%%读取海面风场数据
ncFilePath=’…\oceanRS\SeaWind\98partPacific-5C7Znl.nc’;

lon=ncread(ncFilePath,‘longitude’);%读取经度变量
lat=ncread(ncFilePath,‘latitude’);%读取纬度变量
time=ncread(ncFilePath,‘time’);%读取时间变量
u=ncread(ncFilePath,‘u10’); %风场大小
v=ncread(ncFilePath,‘v10’);
u100=u(1:21,1:21,24:24); %选取3月1日的海面风场数据显示并输出为tiff
v100=v(1:21,1:21,24:24);
%% 显示数据
figure
[lo,la]=meshgrid(lon,lat);
P=v100+u100;
PI=interp2(P,0.1,0.1,‘cubic’);
m_proj(‘Equidistant Cylindrical’,‘lon’,[130,180],‘lat’,[-10,40]);
m_pcolor(lo,la,P);
hold on;
shading flat;
colormap(‘hsv’);
m_grid(‘tickdir’,‘fancy’);
hold on
m_quiver(lo,la,u100,v100,‘color’,‘k’);
xlabel(‘太平洋局部风场示意图’);
h=colorbar(‘h’);
set(get(h,‘xlabel’),‘string’,‘海面风场’);
MATLAB绘制海面风场图像(海面风场反演)_第2张图片

仅供参考哟,一起分享经验

你可能感兴趣的:(遥感图像处理,MATLAB)