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

news2024/7/7 16:59:36

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.coloradmin.cn/o/1894308.html

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

相关文章

网络数据传输中的封装与解封装详解

注:机翻,未校对。 The goal of networks is to transmit data from one host to another. 网络的目标是将数据从一个主机传输到另一个主机。 Encapsulation 封装 To achieve this goal, each layer adds its own header to the data. A header contain…

2024年7月5日 十二生肖 今日运势

小运播报:2024年7月5日,星期五,农历五月三十 (甲辰年庚午月庚午日),法定工作日。 红榜生肖:狗、羊、虎 需要注意:鸡、牛、鼠 喜神方位:西北方 财神方位:正…

深圳合规新动向,这个关键环节要做好

随着全球商业环境的日益复杂化,企业合规管理已成为维护公司稳健运营和市场竞争力的核心要素。特别是对于位于创新前沿的深圳市,有效的合规管理系统不仅是满足法律和监管要求的必须,更是企业可持续发展的关键。 深圳市在全国率先探索并成功实…

#数据结构 笔记三

二叉树 1. 概念 二叉树Binary Tree是n个结点的有限集合。它或者是空集n0,或者是由一个根结点以及两颗互不相交、分别称为左子树和右子树的二叉树组成。 二叉树与普通有序树不同,二叉树严格区分左子和右子,即使只有一个子结点也要区分左右。…

cloudreve 设置开机服务

创建一个Systemd服务文件: 打开终端并创建一个新的服务文件: sudo nano /etc/systemd/system/cloudreve.service 在服务文件中添加以下内容: 根据你的设置调整路径和参数,然后将以下配置粘贴到文件中: [Unit] Descri…

二分查找及其变种

一、概念 二分查找算法(Binary Search Algorithm)是一种在有序数组中查找特定元素的高效搜索方法。 其基本思想是将目标值与数组中间的元素进行比较,如果目标值等于中间元素,则查找成功;如果目标值小于中间元素&…

指标和量化交易那些事儿

最近很多朋友都在给我说,我要盘中打板的指标,我要盘中自动交易。今天我们来梳理下关于指标和量化交易这些事儿! 第一:什么是指标?股票指标是属于统计学的范畴,依据一定的数理统计方法,运用一些…

2024 年 亚太赛 APMCM (C题)中文赛道国际大学生数学建模挑战赛 | 量子计算的物流配送 | 数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时,你是否曾经感到茫然无措?作为2022年美国大学生数学建模比赛的O奖得主,我为大家提供了一套优秀的解题思路,让你轻松应对各种难题! 完整内容可以在文章末尾领取! 该段文字…

PyTorch - 神经网络基础

神经网络的主要原理包括一组基本元素,即人工神经元或感知器。它包括几个基本输入,例如 x1、x2… xn ,如果总和大于激活电位,则会产生二进制输出。 样本神经元的示意图如下所述。 产生的输出可以被认为是具有激活电位或偏差的加权…

班迪录屏(Bandicam)7.0下载以及安装教程

最近有小伙伴私信我,问我有没有好用的录屏工具,今天给大家分享一个我一直在使用的录屏工具,也是解锁了V1P版本,绿色版打开就可以使用~ Bandicam录屏(PC) Bandicam录屏是一款专为捕捉屏幕精彩瞬间而设计的…

go——Swagger使用

一. 为什么后端需要配置Swagger 在前后端分离的项目中,后端配置swagger可以很好的帮助前端人员了解后端接口参数和数据传输。 Swagger是一个用于设计,构建和文档化API的开源框架。在Go语言中,Swagger可以帮助后端开发人员快速创建和定义RESTf…

电传动无杆飞机牵引车交付用户

自2019年起,我们计划做电传动控制,先后做了电传动水泥搅拌罐车罐体控制(国内首创),初步理解了电机控制的特点。 20-21年接着做了10t飞机牵引车控制,还是电液控制联合的,把越野叉车的行驶控制方…

Python学习之小游戏--坦克大作战

今天跟视频学习了Python实现坦克大作战小游戏,挺有意思的,一起来玩吧~ 按空格发射子弹,上下左右键实现移动,ESC键无限复活。 import pygame,time,random from pygame.sprite import Sprite SCREEN_WIDTH800 SCREEN_HEIGHT500 BG…

玩机进阶教程----MTK芯片杂牌机 小品牌机型解除bl锁以及root的操作步骤解析

在玩机过程中会遇到很多小品牌机型或者杂牌机类的。大多都使用mtk芯片。而且基本很少有官方线刷包。在这些机型中玩机首先我们要想办法导出系统来制作线刷包。以免后续解锁bl或者root出现未知故障可以恢复原系统。 那么对于这些机型该如何进行备份固件和root呢。通过博文可以初…

图书借阅小程序论文(设计)开题报告

一、课题的背景和意义 近些年来,随着移动互联网巅峰时期的来临,互联网产业逐渐趋于“小、轻、微”的方向发展,符合轻应用时代特点的各类技术受到了不同领域的广泛关注。在诸多产品中,被誉为“运行着程序的网站”之名的微信小程序…

开始尝试从0写一个项目--前端(一)

基础项目构建 创建VUE初始工程 确保自己下载了node.js和npm node -v //查看node.js的版本 npm -v //查看npm的版本 npm i vue/cli -g //安装VUE CLI 创建 以管理员身份运行 输入:vue ui 就会进入 点击创建 自定义项目名字,选择npm管理 结…

什么是多态(Polymorphism)

什么是多态(Polymorphism) 1、多态的基本概念2、多态的实现方式2.1 方法重载(Overloading)2.2 方法重写(Overriding)2.3 接口和抽象类 3、为什么要使用多态?4、结论 💖The Begin&…

启明智显Model3A芯片方案7寸高清触摸屏ZX7D00CM21S:开箱、设置与实操全攻略指南

一、背景 本指南将详细介绍启明智显的Model3A芯片方案下的7寸高清触摸屏ZX7D00CM21S的开箱步骤、基础设置以及实操应用。无论您是电子爱好者、开发者还是工程师,这份指南都能助您快速上手并充分利用这款触摸屏的各项功能。 二、硬件介绍 ZX7D00CM21S 7寸高清触摸屏是…

500mA、低压差、低噪声、超快、无需旁路电容的CMOS LDO稳压器RT9013

一般描述 RT9013 SOT23-5封装的外观和丝印 RT9013 是一款高性能的 500mA LDO 稳压器,具有极高的 PSRR 和超低压差。非常适合具有苛刻性能和空间要求的便携式射频和无线应用。 RT9013的静态电流低至25μA,进一步延长了电池的使用寿命。RT9013 也适用于低…

kafka的工作原理与常见问题

定义 kafka是一个分布式的基于发布/订阅模式的消息队列(message queue),主要应用于大数据的实时处理领域 消息队列工作原理 kafka的组成结构 kafka的基础架构主要有broker、生产者、消费者组构成,还包括zookeeper. 生产者负责发送…