11 - matlab m_map地学绘图工具基础函数 - 绘制航迹、椭圆、风向玫瑰图和特定的圆形区域的有关函数及其用法

11 - matlab m_map地学绘图工具基础函数 - 绘制航迹、椭圆、风向玫瑰图和特定的圆形区域的有关函数及其用法

  • 0. 引言
  • 1. 关于m_track
  • 2. 关于m_range_ring
  • 3. 关于m_ellipse
  • 4. 关于m_windrose
  • 5. 结语


0. 引言

   本篇介绍下m_map绘制航迹图函数(m_track)、绘制特定半径的范围的函数(m_range_ring)、绘制椭圆的函数(m_ellipse)、绘制风玫瑰图的函数(m_windrose)。

1. 关于m_track

  m_track函数用于在地图上绘制航迹。这个函数可以用来可视化航行路径或飞行路径等。航迹图上可以标注时间日期

  m_track 函数一般形式为:

m_track(lon,lat,varargin)

其中:

  • lon 和 lat:航迹点的经度和纬度坐标。
  • varargin:可选参数,控制航迹线的刻度样式、日期和时间标签样式。主要包括下面内容:
      ticks 刻度间隔以分钟为单位,默认为60分;
      times 时间标签间隔以分钟为单位,默认为240分钟;
      dates 日期标签间隔以分钟为单位,默认为720分钟;
      timef[ormat] 时间在刻度线上的显示样式;
      datef[ormat] 日期在刻度线上的显示样式;
      color 航迹线和标签颜色设置,默认为黑色;
      linew[idth] 航迹线线宽设置;
      lines[tyle] 航迹线线形设置;
      fonts[ize] 标签字体尺寸设置;
      fontn[ame] 标签字体设置;
      clip 是否进行裁剪(on/off)
      orien[t] 标签方向(true/upright)

示例(利用官网示例):

m_proj('UTM','long',[-72 -68],'lat',[40 44]);
m_gshhs_i('color','k');
m_grid('box','fancy','tickdir','in');
m_ruler(1.2,[.5 .8]);
    
% fake up a trackline
lons=[-71:.1:-67];
lats=60*cos((lons+115)*pi/180);
dates=datenum(1997,10,23,15,1:41,zeros(1,41));

 m_track(lons,lats,dates,'ticks',0,'times',4,'dates',8,...
            'clip','off','color','r','orient','upright');
    
m_northarrow(-68.5,43.4,.4,'type',2);

  下图红色部分即为m_track命令加载的内容,可以使用上面提到的属性进行绘图样式的调整;


2. 关于m_range_ring

  m_range_ring 函数用于在地图上绘制指定半径的范围圈。这在航海、航空和地理信息系统中很常见,用于表示某一点周围的特定半径范围。

  m_range_ring 函数的基本语法如下:

m_range_ring(lon, lat, radius, varargin)

  其中,lon 和 lat 是范围的中心点投影坐标;radius 是范围的半径,以与地图坐标系统相匹配的距离单位(例如公里或海里)表示;varargin 可选参数,用于指定范围线条的样式、颜色等信息,不做展开,可以参照其他绘图命令;

官网示例

%% 官网示例
close all;clc;clear;
m_proj('hammer','clong',170); % 定义投影
m_grid('xtick',[],'ytick',[],'linestyle','-'); % 不显示坐标轴
m_coast('patch','g'); % 陆地填充
m_line(100.5,13.5,'marker','square','color','r'); % 在当前坐标处绘制了一个红色矩形
m_range_ring(100.5,13.5,[1000:1000:15000],'color','b','linewi',2); % 以当前坐标为原点,半径间隔为1000绘制15个蓝色范围圈
xlabel('1000km range rings from Bangkok'); % 添加图示

自建示例

%% 自建
close all;clc;clear;
m_proj('mercator', 'lon', [69.5 105.5], 'lat', [24.5 40.5]);
%
m_line(80.5,32.5,'marker','square','color','r'); % 在当前坐标处绘制了一个红色矩形
m_range_ring(80.5,32.5,[500],'color','b','linewi',2); % 以当前坐标为远点,向量值为半径绘制15个蓝色范围圈
%
m_gshhs('ic','color',[.5 .5 .5]) % 中等分辨率海岸线
m_gshhs('ir2','color','b')   % 中等分辨率河流
m_grid('box','fancy','tickdir','in','gridlines','no','fontsize',12)

3. 关于m_ellipse

  m_ellipse 函数用于在地图上绘制椭圆。

  m_ellipse函数的一般形式为:

[h,varargout]=m_ellipse(long,lat,fmaj,fmin,finc,fpha,scale,type ,varargin)

  其中,long和lat为绘制椭圆的中心点经纬坐标;fmaj和fmin 为椭圆的半长轴/半短轴长度;finc和fpha为椭圆倾角、相位角,以度为单位;scale为比例因子;type 为类型用于设置线或填充;varargin为可选参数,用于控制绘图边缘的颜色、宽度等属性,这里不做展示。

  m_ellipse函数示例如下:

clf;
m_proj('lambert','long',[-130 -121.5],'lat',[47 51.5],'rectbox','on');
m_grid('linewi',2,'linest','none','tickdir','out','fontsize',12);

[H]=m_ellipse(-125,49,20,10,30,30,200,'line');
[H]=m_ellipse(-125,49,30,10,80,90,200,'line','color','r','LineWidth',3,'LineStyle','--');

4. 关于m_windrose

  m_windrose函数用于绘制风向玫瑰图。风向玫瑰图通常用来显示风的方向和频率分布,适合气象学和地理学的应用。

  m_windrose函数一般形式为:

N=m_windrose(long,lat,thet,spd,varargin)

  其中,long,lat为绘制风向玫瑰图的投影坐标;thet为风向数据;spd为风速数据;varargin为可选参数,主要包括以下内容:

  nspeeds: 速度划分区间数量,默认值为[0:4:24];
  ndirs : 方向划分区间数量,默认是36个;
  size : 风向玫瑰图尺寸占背景图的长宽比例;
  nrings : 背景环数,标量或向量(默认值[2 4 6])。如果是标量,则设置为间隔2%的环数;
  labelrings: logical or angle;
  barstyle : 默认颜色和纹路;
  alpha : 风向玫瑰图的透明度(0到1,默认为0.4);

  m_windrose函数绘图示例,示例数据可从资源中获取:

clc;clear;

% 加载风速和风向
[data]=xlsread('wind data.xlsx');
clf;set(gcf,'color','w'); 
m_proj('lambert','lon',[77 82],'lat',[27 32] )
levels=[0:4:24];  % Binning for speeds

m_windrose({80},{30},{data(:,1)},{data(:,2)},...
           'size',.17,'nspeed',levels,'alpha',1);
       
colormap(m_colmap('jet'));
caxis([0 24]);
m_grid

axb=m_contfbar(.8,[.6 .9],levels,levels);
axb.YLabel.String='Wind speeds m/s';
axb.YTick=levels;

5. 结语

   本篇介绍了m_map中绘制航迹图的函数(m_track)、绘制特定半径范围的函数(m_range_ring)、绘制椭圆的函数(m_ellipse)、绘制风玫瑰图的函数(m_windrose)通过示例展示了各函数的基本用法,对于绘制常见地学图已经够用了,后面若发现还有其它相关函数再进行补充希望对绘图的你有所帮助






😜
😜😜
😜😜😜😜

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HTTP与HTTPS协议区别及应用场景

HTTP(超文本传输​​协议)和 HTTPS(安全超文本传输​​协议)都是用于通过网络传输数据的协议。虽然它们有一些相似之处,但在安全性和数据保护方面也存在显著差异。 在这篇博文中,我们将探讨 HTTP 和 HTTPS…

Hadoop-11-MapReduce JOIN 操作的Java实现 Driver Mapper Reducer具体实现逻辑 模拟SQL进行联表操作

章节内容 上一节我们完成了: MapReduce的介绍Hadoop序列化介绍Mapper编写规范Reducer编写规范Driver编写规范WordCount功能开发WordCount本地测试 背景介绍 这里是三台公网云服务器,每台 2C4G,搭建一个Hadoop的学习环境,供我学…

利用YOLOv8识别自定义模型

一、背景介绍 最近项目需要识别自定义物品,于是学习利用YOLOv8算法,实现物品识别。由于物体类别不再常规模型中,因此需要自己训练相应的模型,特此记录模型训练的过程。 二、训练模型的步骤 1.拍照获取训练图片(训练图…

【前端CSS3】CSS显示模式(黑马程序员)

文章目录 一、前言🚀🚀🚀二、CSS元素显示模式:☀️☀️☀️2.1 什么是元素显示模式2.2 块元素2.3 行内元素2.4 行块元素2.5 元素显示模式的转换 三、总结🚀🚀🚀 一、前言🚀&#x1f…

操作符“->“

title: 操作符"->" date: 2024-01-16 00:00:00 categories: C箭头 tags: 箭头操作以及偏移量计算 #嘎嘎 操作符"->" ->是一个成员访问的操作,它的作用是通过一个指针来访问它所指向的对象的成员变量或成员函数。它的左边必须是一个指…

(vue)eslint-plugin-vue版本问题 安装axios时npm ERR! code ERESOLVE

(vue)eslint-plugin-vue版本问题 安装axios时npm ERR! code ERESOLVE 解决方法:在命令后面加上 -legacy-peer-deps结果: 解决参考:https://blog.csdn.net/qq_43799531/article/details/131403987

全网最适合入门的面向对象编程教程:09 类和对象的Python实现-类之间的关系,你知道多少?

全网最适合入门的面向对象编程教程:09 类和对象的 Python 实现-类之间的关系,你知道多少? 摘要: 本文主要对类之间的关系进行了基本介绍,包括继承、组合、依赖关系,并辅以现实中的例子加以讲解&#xff0…

Java的进程和线程

一Java的进程 二Java的线程 多线程 ◆如果在一个进程中同时运行了多个线程,用来完成不同的工作,则称之为“多线程”。 ◆多个线程交替占用CPU资源,而非真正的并行执行。 ◆多线程好处。 ◆充分利用CPU的资源。 ◆简化编程模型。 ◆良好的用…

js 递归调用 相同对象--数组递归调用

<div class="save-cl"> <a-button @click="saveCl" >保存为常用策略</a-button> </div> saveCl(){ console.log(this.form.filterList[0],--------常用策略)// 此对象为上图对象 console.log(this.allElementsHaveValue(thi…

AGI系列(7)Reflection 在 AI agent 中的应用实例

斯坦福大学教授吴恩达一直非常推崇AI Agent,之前他提出过AI Agent的四种工作模式,分别是Reflection(反思)、Tool use(工具使用)、Planning(规划)和Multi-agent collaboration(多智能体协同)。 近日,他又开源了一个翻译 AI Agent, 他认为 AI 智能体机器翻译对改进传…

阿里巴巴Arthas分析调优JVM实战及常量池详解

目录 一、阿里巴巴Arthas详解 Arthas使用场景 Arthas命令 Arthas使用 二、GC日志详解 如何分析GC日志 CMS G1 GC日志分析工具 三、JVM参数汇总查看命令 四、Class常量池与运行时常量池 字面量 符号引用 五、字符串常量池 字符串常量池的设计思想 三种字符串操作…

掌握电路交换与分组交换:计算机网络的核心技术

计算机网络是现代信息社会的基石&#xff0c;而交换技术是实现网络通信的核心。本文将详细介绍两种典型的交换方式&#xff1a;电路交换和分组交换&#xff0c;帮助基础小白快速掌握这两种技术的基本概念和区别。 什么是电路交换&#xff1f; 电路交换&#xff08;Circuit Swi…

技术革新引领钢材质量智能化检测新纪元,基于YOLOv5全系列【n/s/m/l/x】参数模型开发构建钢材工业生产场景下钢材缺陷智能检测识别系统

随着人工智能&#xff08;AI&#xff09;技术的迅猛发展&#xff0c;其应用领域不断拓宽&#xff0c;正深刻改变着传统产业的运作模式。在钢材生产这一基础工业领域&#xff0c;AI的引入正为钢材的质量检测带来革命性的变革。 在传统的钢材生产流程中&#xff0c;质量检测是确…

【C++】二叉搜索树的模拟实现

前言&#xff1a;今天我们学习相对来说比前面轻松一点的内容&#xff0c;二叉搜索树&#xff0c;在之前我们学习过二叉树今天的内容对于我们就会比较简单一点了&#xff0c;一起加油。 &#x1f496; 博主CSDN主页:卫卫卫的个人主页 &#x1f49e; &#x1f449; 专栏分类:高质…

从零开始学量化~Ptrade使用教程——安装与登录

PTrade交易系统是一款高净值和机构投资者专业投资软件&#xff0c;为用户提供普通交易、篮子交易、日内回转交易、算法交易、量化投研/回测/实盘等各种交易工具&#xff0c;满足用户的各种交易需求和交易场景&#xff0c;帮助用户提高交易效率。 运行环境及安装 操作系统&…

计算机的错误计算(二十一)

摘要 两个不相等数相减&#xff0c;差为0&#xff1a; ? 在计算机的错误计算&#xff08;十九&#xff09;中&#xff0c;高中生小明发现本应为0的算式结果不为0. 今天他又发现对本不为0的算式&#xff0c;计算机的输出为0. 在 Python 中计算 &#xff1a; 则输出为0. 若用 C…

必备的 Adobe XD 辅助工具

想要高效便捷的使用 Adobe XD&#xff0c; Adobe XD 插件是必不可少的&#xff0c; Adobe XD 的插件非常多&#xff0c;但 90%都是英文&#xff0c;并且良莠不齐。在这儿挑选 9 个好用的 Adobe XD 插件给大家&#xff0c;这里是我整理的一些实用 Adobe XD 插件&#xff0c;让你…

3-2 梯度与反向传播

3-2 梯度与反向传播 主目录点这里 梯度的含义 可以看到红色区域的变化率较大&#xff0c;梯度较大&#xff1b;绿色区域的变化率较小&#xff0c;梯度较小。 在二维情况下&#xff0c;梯度向量的方向指向函数增长最快的方向&#xff0c;而其大小表示增长的速率。 梯度的计算 …

UE5 07-给物体添加一个拖尾粒子

添加一个(旧版粒子系统)cascade粒子系统组件 ,在模板中选择一个开发学习初始包里的粒子