欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MATLAB读取nc格式数据并可视化显示(以海面风场反演为例)

程序员文章站 2024-03-24 18:46:04
...

MATLAB读取nc数据并实现可视化 (以全球海洋风场反演为例-更新版)

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读取nc格式数据并可视化显示(以海面风场反演为例)
2、MATLAB实现风场数据可视化
注意:如果报错请安装m_map工具箱

clc;
clear all;
%% 读取数据
path1='*********.nc'; % 请自行填补
v10=double(ncread(path1,'v10'));  %读取v10类型的nc文件
u10=double(ncread(path1,'u10'));  %读取u10类型的nc文件
nlon=double(ncread(path1,'longitude')); %读取经度变量
nlat=double(ncread(path1,'latitude')); %读取纬度变量

%% 可视化
[mlat,mlon]=meshgrid(nlat,nlon);
day=24; %展示第24天的数据
v_day = v10(:,:,day);
u_day = u10(:,:,day);
P = sqrt(v_day.^2 + u_day.^2);
%投影类型 'Miller''hammer-aitoff','Equidistant Cylindrical'
m_proj('Equidistant Cylindrical','lon',[0 358.875],'lat',[-89.14152 89.14152]);
%m_pcolor(mlon,mlat,P);      # 显示原像素(分辨率较低)
m_contourf(mlon,mlat,P,'linestyle','none'); %等值线 ---类似于插值后的效果

colormap(flipud(m_colmap('jet')));%设置颜色legend
hold on;
shading flat;
m_coast('line','Color', [.0 .0 .0]);% 只保留大陆轮廓线line;轮廓线的颜色
%m_coast('patch',[.6 1 .6]);%m_coast('color','k');
m_quiver(mlon,mlat,u_day,v_day,'color','k');   % 添加风场矢量的方向箭头
% 格网格式设置
m_grid('linestyle','none','box','fancy','tickdir','out','LineWidth',0.5);
title({'全球海洋风场示意图',''},'fontsize',14,'fontweight','bold');
hh=colorbar('h');
set(hh,'tickdir','out');
xlabel(hh,'Wind m/s');
hold off;

3、可视化效果
(1) m_pcolor(mlon,mlat,P)
MATLAB读取nc格式数据并可视化显示(以海面风场反演为例)
(2) m_contourf(mlon,mlat,P,‘linestyle’,‘none’)
等值线不显示,为None
MATLAB读取nc格式数据并可视化显示(以海面风场反演为例)
(3) m_contourf(mlon,mlat,P,‘linestyle’,’–’)
等值线为虚线:MATLAB读取nc格式数据并可视化显示(以海面风场反演为例)
(4) 局部放大图(可以更加清晰的看到风矢量的方向箭头)
MATLAB读取nc格式数据并可视化显示(以海面风场反演为例)

注意:
1、可能需要安装m_map工具箱;
2、可以直接m_map工具箱(.zip),解压后在将路径添加到Matlab:

addpath('***********\m_map');

3、 显示nc数据的结构:

ncdisp(ncFilePath);%显示nc文件的所有结构,以便大概了解里面的内容

ncdisp(ncFilePath,'v10');%显示指定变量的内容,注意一定要是变量variables才可以
ncdisp(ncFilePath,'/','min');%简单显示结构以及定义
ncdisp(ncFilePath,'/','full');%全部显示所有结构和定义信息