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.niftyadmin.cn/n/5536028.html

相关文章

【HDFS】关于Hadoop的IPC.Client类的一些整理

org.apache.hadoop.ipc.Client 类是IPC服务的一个客户端。 IPC请求把一个Writable对象当做参数,返回一个Writable对象当做结果value。 一个IPC服务运行在某个端口上,并且由参数class和value class定义。 Router里的IPC.Client对象就两个 有这样一个类:ClientCache 看名字就…

GNU/Linux - wic文件的使用

Yocto/OpenEmbedded使用的磁盘镜像格式是 wic。为嵌入式系统提供 bootable images。 The disk image format used in the Yocto Project is wic. .wic 文件显然只是一个带有分区表和分区的磁盘镜像,就像下载 Linux 发行版时获得的所有 .img 文件一样。这就是为什么你…

使用Spring Boot实现博客管理系统

文章目录 引言第一章 Spring Boot概述1.1 什么是Spring Boot1.2 Spring Boot的主要特性 第二章 项目初始化第三章 用户管理模块3.1 创建用户实体类3.2 创建用户Repository接口3.3 实现用户Service类3.4 创建用户Controller类 第四章 博客文章管理模块4.1 创建博客文章实体类4.2…

航空数据管控系统-②项目分析与设计:任务1:需求分析-项目场景引入

任务描述 知识点:需求分析 重 点:原型设计工具,用例图,流程图绘制工具 难 点:功能点的梳理 内 容:完成本次实训项目的需求分析 先共同讨论处本项目的主要功能模块,并确定每个模块的负责…

7 动态规划

下面的例子不错: 对于动态规划,能学到不少东西; 你要清楚每一步都在做什么,划分细致就能够拆解清楚! xk. - 力扣(LeetCode) labuladong的算法笔记-动态规划-CSDN博客 动态规划是一种强大的算法…

WRF学习——使用CMIP6数据驱动WRF/基于ncl与vdo的CMIP6数据处理

动力降尺度 国际耦合模式比较计划(CMIP)为研究不同情景下的气候变化提供了大量的模拟数据,而在实际研究中,全球气候模式输出的数据空间分辨率往往较低(>100Km,缺乏区域气候特征,为了更好地研…

c# 的 goto

搞循环感觉没什么必要 int number 0; Console.WriteLine("请输入一个数字(输入-1结束):"); start: // 标签 number int.Parse(Console.ReadLine()); if (number -1) { Console.WriteLine("程序结束。"); } else { Cons…

数据结构(期末)

目录 逻辑结构 存储结构 算法有以下五个特性 算法数据结构 程序 时间复杂度 空间复杂度 数据元素是数据的基本单位 数据项是数据的最小单位 数据结构是带有结构的各数据元素的集合 时间复杂度例题 线性表 关于带头节点的单链表及不带头节点的单链表 栈和队列 栈…