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

news/2024/10/31 7:30:33/

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的海风数据)
在这里插入图片描述
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)
在这里插入图片描述
(2) m_contourf(mlon,mlat,P,‘linestyle’,‘none’)
等值线不显示,为None
在这里插入图片描述
(3) m_contourf(mlon,mlat,P,‘linestyle’,’–’)
等值线为虚线:在这里插入图片描述
(4) 局部放大图(可以更加清晰的看到风矢量的方向箭头)
在这里插入图片描述

注意:
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');%全部显示所有结构和定义信息

http://www.ppmy.cn/news/163569.html

相关文章

docker入门(1)----服务/镜像/容器/数据卷相关命令

安装 官网安装app命令行安装(但是没有图形界面app)brew install docker 架构 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像ubuntu:16.04 就包含了…

miui10,miui11,miui12 rom下载,支持市面常见机型

提供MIUI10,MIUI11,MIUI12 ROM包,其中包含稳定版、国开版、极简开发版、波兰版本。统计如下: 系统: MIUI12内测版-20.5.14-纯净 MIUI12内测版-20.5.30-纯净 MIUI12内测版-20.6.18-纯净 MIUI12稳定版-2020年8月19日-纯…

u10linux,腾达U10无线网卡驱动

腾达U10无线网卡驱动 腾达U10无线网卡驱动是官方驱动程序,本驱动适用于:Windows XP /Windows 7 / Windows 8 / Windows 10 32/64位操作系统,安装此驱动后,才可以正常工作,本网站提供了驱动安装教程,请阅读使用。 频段2.4GHz 网络标…

Win10 GTX1050 TI 下NVIDIA驱动 CUDA和CUDNN的安装(超详细)!亲测有效!

Nvidia驱动下载:官方驱动 | NVIDIA CUDA10安装配置 CUDA10的安装包可直接从NVIDIA官网下载。根据相应的系统选项,我选择的是cuda_10.1.168_425.25_win10.exe(大小为2.3G),安装的时候建议选择 自定义 而不是“精简”(从下面的英文解释可以看…

windows下MX150显卡安装cuda11.3+cudnn8.4.1+torch1.12.0+torchvision0.13.0+torchaudio0.12.0

文章目录 1)安装Anaconda2)查看显卡驱动支持的最高CUDA版本3)查看pytorch官方推荐CUDA版本4)下载CUDA并安装5)下载cudnn安装6)使用conda安装torch、torchvision、torchaudio和cudatoolkit(不成功…

十进制转化为16进制

有以下种方式实现,其中两种是使用系统函数,另一种是直接自己编写。 main() { int u100; char u16[10]; int w0,a,b,i; printf("请输入一个数字-->"); scanf("%d",&u10); //u1016; if(u100) { u16[0]0; w; } else { au10; w…

c语言编程 把十进制转换为十六进制

#include<stdio.h> main() { int u10; char u16[10]; int w0,a,b,i; printf ( "请输入一个数字-->" ); scanf ( "%d" ,&u10); if (u100) { u16[0] 0 ; w; } else { au10; while (a) { ba%16; if (b<10) { u16[w] 0 b; } else { u16[w] …

Oracle Linux download

前言 Oracle Linux发布的三个最新更新的ISO映像。自2006年以来&#xff0c;Oracle Linux已经完全免费下载和使用。免费的源代码&#xff0c;二进制文件和更新。可再发行的自由。免费供生产使用。 Installation Guides Installation guides: Oracle Linux 7, Oracle Linux 8Cr…