12 - matlab m_map地学绘图工具基础函数 - 在地图上绘制矢量场m_vec函数和绘制风羽图的m_windbarb函数

news2024/12/27 13:08:09

12 - matlab m_map地学绘图工具基础函数 - 在地图上绘制矢量场函数m_vec和绘制风羽图的函数m_windbarb

  • 0. 引言
  • 1. 关于m_vec
  • 2. 关于m_windbarb
  • 3. 总结


0. 引言

   本篇介绍下m_map绘制矢量场的函数(m_vec)和地图上绘制风羽图的函数m_windbarb

1. 关于m_vec

  m_vec 函数用于在地图上绘制矢量场(或者称为箭头场)。它可以用来在地图上可视化矢量数据,比如风场、流速场等

  m_vec函数的一般形式为:

[hp, ht] = m_vec(s, lon, lat, varargin)

  其中:s为比例因子,可以用于控制箭头的大小; lon, lat是矢量场的经/维度坐标,可以是标量或矩阵形式;varargin为可选参数,主要包括 [u,v],经度和纬度方向上的矢量分量,分别表示矢量场的水平和垂直分量也是绘制箭头的主要数据;此之外还有一些可选参数控制绘图样式,主要内容如下:

  • 'headangle',60 箭头尖角角度
  • 'headwidth',NaN points: direct specification of width, instead of headangle
  • 'headlength',5 将头长度,设置为0,表示忽略箭头;
  • 'headstyle',1 箭头类型,一共有四种 [1 2 3 4] 可选;
  • 'shaftwidth',1 箭轴宽度
  • 'centered', 'no' 控制输入的lon、lat是否为箭头的中心,如果为‘tail’,表示箭头指向lon、lat位置;
  • 'key' “string”, 控制在箭头位置添加标签
  • 'edgeclip', 'off' 如果为‘on’,表示在轴上的箭头可以被切;
  • 'curvature', 0 显示弯曲的箭头的时候,控制箭头的曲率(弯曲程度)

m_vec函数的绘图示例,示例数据可以从网盘获取,提取码:x2y7

clc;clear

iday=156;   % the day to show
lat=ncread('uwnd.10m.gauss.2017.nc','lat');
lon=ncread('uwnd.10m.gauss.2017.nc','lon');
[LN,LT]=meshgrid(lon,lat);
u=ncread('uwnd.10m.gauss.2017.nc','uwnd',[1,1,iday],[192,94,1]);
v=ncread('vwnd.10m.gauss.2017.nc','vwnd',[1,1,iday],[192,94,1]);

figure(2)
m_proj('miller','lon',[0 360],'lat',[-90 90]);

% 绘制流线
m_vec(30,LN,LT, u', v');  %---------------------------------------------------------------------

% 添加其他地图元素(如海岸线、边界等)
m_coast('line', 'color', 'k');
m_grid('linestyle', 'none', 'box', 'fancy');

2. 关于m_windbarb

  m_windbarb函数用于在地图上绘制风羽图(Wind Barb),用以表示风的方向和速度。风羽图常用于气象学和海洋学中,提供了一种直观的方式来展示风的强度和方向。

  m_windbarb函数的基本语法如下:

h=m_windbarb(long,lat,u,v,varargin)

  其中,lon 和 lat 是风羽图的位置,即风的观测点的经度和纬度;u 和 v 是风速分量,即风的水平速度分量和垂直速度分量。通常情况下,这两个分量应该是相对于地面的风速,分别以米/秒为单位;varargin 包含可选参数,用于指定风羽图的样式、颜色等信息。

示例1m_windbarb函数的简单示例,使用模拟数据u和v绘制的风羽图:

clc;clear;
figure
m_proj('mercator', 'lon', [69.5 105.5], 'lat', [24.5 40.5]);

lon = 69.5:1:105.5;
lat = 24.5:1:40.5;
[lon_grid, lat_grid] = meshgrid(lon, lat);

% 生成一些模拟的流场数据,例如风场
u = cosd(lat_grid) .* cosd(lon_grid);
v = sind(lon_grid);

% 绘制风羽图
m_windbarb(lon_grid, lat_grid, u, v,'color','r','linewi',2);

m_gshhs('ic','color',[.5 .5 .5]) % 中等分辨率海岸线
m_gshhs('ir2','color','b')   % 中等分辨率河流
m_grid('box','fancy','tickdir','in','gridlines','no','fontsize',12)

示例2 : 使用真实数据绘制风羽图,示例数据可以从网盘获取,提取码:x2y7

clc;clear
iday=156;   % the day to show

% use ncdisp(filename) to discover file contents...

lat=ncread('uwnd.10m.gauss.2017.nc','lat');
lon=ncread('uwnd.10m.gauss.2017.nc','lon');
[LN,LT]=meshgrid(lon,lat);

mtime=ncread('uwnd.10m.gauss.2017.nc','time')/24+datenum(1800,1,1,0,0,0);
u=ncread('uwnd.10m.gauss.2017.nc','uwnd',[1,1,iday],[192,94,1]);
v=ncread('vwnd.10m.gauss.2017.nc','vwnd',[1,1,iday],[192,94,1]);
prate=ncread('prate.sfc.gauss.2017.nc','prate',[1,1,iday],[192,94,1]);

m_proj('miller','lon',[100 260],'lat',[0 65]);
m_coast('patch',[.8 .8 .8]);
hold on 
[CS,CH]=m_contourf(LN,LT,prate'*1e3,[0.05:.05:.7],'edgecolor','none');
m_windbarb(LN,LT,u' ,v',2,'units','m/s','linewi',1,'color','r');
hold off;
m_grid('box','fancy','tickdir','out');

ax=m_contfbar([.3 .7],.05,CS,CH);
set(ax,'fontsize',12)
xlabel(ax,'Mean Daily Precipitation Rate/(kg/m^2/s)');

title(['North Pacific Surface Winds : ' datestr(mtime(iday))],'fontsize',16);

colormap(flipud(m_colmap('Blues')))

3. 总结

   本篇介绍了m_map中绘制风羽图(m_windbarb)和绘制矢量(m_vec)场的两个函数,通过示例展示了各函数的基本用法,对于绘制常见地学图已经够用了,后面若发现还有其它相关函数再进行补充希望对绘图的你有所帮助






😜
😜😜
😜😜😜😜

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1907588.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

语言模型的进化:从NLP到LLM的跨越之旅

在人工智能的浩瀚宇宙中,自然语言处理(NLP)一直是一个充满挑战和机遇的领域。随着技术的发展,我们见证了从传统规则到统计机器学习,再到深度学习和预训练模型的演进。如今,我们站在了大型语言模型&#xff…

Unity扩展 Text支持超链接文本

重点提示:当前的文本扩展支持多个超链接,支持修改超链接规则和支持修改超链接颜色。 近期在邮件文本中用到了超链接。最初是在邮件窗口中新加一个按钮用来超链接跳转,之后发现效果表现不如直接在文本中添加,后经过几个小时的资料…

STM32中的DMA:解锁高效数据传输的秘密武器(内附实例)

目录 引言 理解DMA:数据的高效搬运工 DMA的主要特性 多优先级请求 事件标志 数据对齐 多样化的数据传输路径 广泛的数据源与目标 最大数据长度 DMA寄存器详解 增量与循环模式 DMA中断机制 ​编辑 小实验:DMA-ADC串口发送 引言 在现代嵌入…

SpringCloudAlibaba基础五 Nacos配置中心

一 Nacos配置中心介绍 官方文档:https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-config Nacos 提供用于存储配置和其他元数据的 key/value 存储,为分布式系统中的外部化配置提供服务器端和客户端支持。使用 Spring Cloud Alibaba Nacos C…

集成sa-token前后端分离部署配置corsFliter解决跨域失效的真正原因

文章目录 1.前言2.问题复现3.解决方法3.1 方式一:后端修改CorsFilter源码3.2 方式二:前端禁用或移除浏览器referrer-policy引用者策略 4.总结 1.前言 缘由请参看下面这篇文章:sa-token前后端分离解决跨域的正确姿势 https://mp.weixin.qq.co…

气象观测站应该怎么选?

在气候变化日益严峻的今天,气象观测站的重要性不言而喻。它们不仅为气象部门提供宝贵的数据支持,还直接关系到农业生产、交通运输、城市规划等多个领域的决策。 在选择气象观测站时,首先要明确自己的功能需求。例如,是用于学术研究…

每日一练全新考试模式解锁|考试升级

🙋频繁有小伙伴咨询:我想举办一场历时一个月的答题活动,学生可以每天打开答题,活动完结后可以导出每天的答题成绩 此前我们都会让小伙伴创建30场考试,然后使用批量分享功能组合起来,对外分享一个链接就可以…

类与对象2 3 十十一 杂烩

目录 组合类 作用域 static friend 常对象常成员函数 常引用 对象指针(指向对象) string 组合类 类的组合/聚合:将已有的类的对象作为新的类的成员。 组合类初始化:内嵌对象成员初始化 普通数据成员初始化。 类必须先…

24下软考《系统规划与管理师》,一个超好背的核心知识点几页纸!

距离下半年软考考试的时间越来越近了,想要备考《系统规划与管理师》的小伙伴们趁着这两周赶紧准备起来,虽说系规相对较好考,但作为高级科目,它要记得东西还是不少的。 今天给大家整理了——系统规划与管理师考前几页纸&#xff0c…

C++语言相关的常见面试题目(二)

1.vector底层实现原理 以下是 std::vector 的一般底层实现原理: 内存分配:当创建一个 std::vector 对象时,会分配一块初始大小的连续内存空间来存储元素。这个大小通常会随着 push_back() 操作而动态增加。 容量和大小:std::vec…

多卡(3090)部署通义千问Qwen2-72B大模型并加速至38tps:vLLM库的使用和错误排查

前一篇文章做了Qwen1的加速,其中关于Auto-GPTQ的安装问题在Qwen2中依然适用。但是Qwen2比Qwen1加载模型快了很多,笔者也不知道为什么。 下面是Hugging Face transformer版的千问2,token生成速度在15个每秒左右,但还不够快&#x…

Spring——IOC创建对象方式

可参考官网:https://docs.spring.io/spring-framework/reference/core/beans/dependencies/factory-collaborators.htmlhttps://docs.spring.io/spring-framework/reference/core/beans/dependencies/factory-collaborators.html 1. 使用无参构造创建对象&#xff0…

Unity--射线检测--RayCast

Unity–射线检测–RayCast 1.射线检测的含义 射线检测,根据名称而言,使用一条射线来检测是击中了某个物体/多个物体 射线检测的包含两个部分: 射线和检测 2.射线检测可以用在哪些地方 射击游戏: 玩家的瞄准和射击:检测玩家视线是否与敌人或其他目标…

初识c++(命名空间,缺省参数,函数重载)

一、命名空间 1、namespace的意义 在C/C中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全 局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名 冲突…

ubuntu24.04按关键字卸载不需要的apt包

使用的时候发现一个imagemagic无法正常读取文件,试图卸载 man apt经过尝试后,发现list的一个神奇关键字,用来显示已安装的软件包 sudo apt list --installed | grep image按image关键字过滤: 之后按软件名卸载即可 sudo apt pu…

数学建模论文写作文档word

目录 1. 摘要写法1.1 确定题目与方法1.2 编写开头段落1.3 填写问题一1.4 重复步骤3填写其他问题1.5 编写结尾段落1.6 编写关键词 2. 问题重述2.1 问题背景2.2 问题提出 3. 问题分析4. 问题X模型的建立与求解5. 模型的分析5.1 灵敏度分析5.2 误差分析(主要用于预测类…

DAY2:插件学习

文章目录 插件学习ClangGoogle TestCMakeDoxygen 收获 插件学习 Clang 是什么:Clang 是指 LLVM 项目的编译器的前端部分,支持对 C 家族语言(C、C、Objective-C)的编译。Clang 的功能包括:词法分析、语法分析、语义分析、生成中间中间代码 L…

浅析C++引用

浅析C引用"&" ​ C中引入了一个新的语言特性——引用(&),它表示某一对象的别名,对象与该对象的引用都是指向统一地址。那么我们就来看看关于引用的一些知识点吧🧐 特性 引用在定义时必须初始化一个变量可以有多个引用引…

C-10 凸包

凸包 数学定义 平面的一个子集S被称为是凸的,当且仅当对于任意两点A,B属于S,线段PS都完全属于S过于基础就不详细介绍了 凸包的计算 github上找到了别人的代码,用4种方式实现了凸包的计算,把他放在这里链接地址htt…

六、数据可视化—Wordcloud词云(爬虫及数据可视化)

六、数据可视化—Wordcloud词云(爬虫及数据可视化) 也是一个应用程序 http://amueller.github.io/word_cloud/ Wordcloud词云,在一些知乎,论坛等有这样一些东西,要么做封面,要么做讲解,进行分析…