14 - matlab m_map地学绘图工具基础函数 - 一些数据转换函数(一)

14 - matlab m_map地学绘图工具基础函数 - 一些数据转换函数(一)

  • 0. 引言
  • 1. 关于m_ll2xy和m_xy2ll
  • 2. 关于m_lldist
  • 3. 关于m_xydist
  • 4 关于m_fdist
  • 5 关于m_idist
  • 6. 总结


0. 引言

   通过前面篇节已经将m_map绘图工具中大多绘图有关的函数进行过介绍,已经能够满足基本的绘图需求,下面几节介绍下m_map中关于数据类型转换的一些函数,在特定应用场景下也是极为重要的。首先介绍下面几种数据转换函数:。

1. 关于m_ll2xy和m_xy2ll

   m_ll2xy函数用于将经纬度坐标转换为地图投影坐标,m_xy2ll函数m_ll2xy函数的逆过程,用于将投影坐标转换为经纬度坐标。需要在地图上标记点或绘制特定区域时这两个命令就极为重要了。

  m_ll2xy函数的一般形式为:

[X,Y,I]=m_ll2xy(lon,lat,varargin)
[long,lat]=m_xy2ll(X,Y)

  其中:

  • lon和lat 为经纬度坐标向量;
  • x和y为平面投影坐标,向量长度和lon和lat向量的长度一致;
  • varargin为可选参数,以输入’clip’, ( ‘on’ | ‘off’ | ‘patch’ | ‘point’ )等一些属性值,用于对超出研究范围的区域的Nan值进行处理;

  m_ll2xy函数m_xy2ll函数函数使用示例,经过m_ll2xy、m_xy2ll的互转之后,lon和lon2数值一致,表明在坐标转换上二者功能可逆,经过m_ll2xy函数转换后的坐标具备平面坐标特征;

m_proj('miller', 'lon', [-180 180], 'lat', [-90 90]); %

lon = linspace(-180, 180, 10);
lat = linspace(-90, 90, 10);

[x,y] = m_ll2xy(lon, lat);
[lon2,lat2] = m_xy2ll(x,y);
m_grid
scatter(lon2,lat2)

2. 关于m_lldist

  m_lldist函数用于计算两个地球表面上的点之间的球面距离。这个函数可以计算两点之间的大圆距离(最短距离)或测地线距离(大圆弧长度)。

  m_lldist函数一般形式为:

[dist,lons,lats] = m_lldist(long,lat,N)

  其中:

  • long,lat 球面上两点A、B的经纬度坐标;
  • N 是用于近似大圆弧的点的数量;
  • dist 为A、B两点间的大圆弧距离;
  • [lons lats] A-B路径中的坐标点;

  m_lldist函数使用示例

m_proj('miller','lat',[-77 77]);   
m_coast('patch',[.7 1 .7],'edgecolor','none'); 
m_grid('box','fancy','linestyle','-','gridcolor','w','backcolor',[.2 .65 1]);
    
cities={'Cairo','Washington','Buenos Aires'}; 
lons=[ 30+2/60  -77-2/60   -58-22/60];
lats=[ 31+21/60  38+53/60  -34-45/60]; 
for k=1:3
    [range,ln,lt]=m_lldist([-123-6/60 lons(k)],[49+13/60  lats(k)],40); 
    m_line(ln,lt,'color','r','linewi',2); 
    m_text(ln(end),lt(end),sprintf('%s - %d km',cities{k},round(range)));
end
title('Great Circle Routes','fontsize',14,'fontweight','bold');
    
set(gcf,'color','w');   % Need to do this otherwise 'print' turns the lakes black

3. 关于m_xydist

  m_xydist 函数用于计算地图投影坐标系下两点之间的直线距离。

  m_xydist 函数一般形式

dist = m_xydist(x,y)

  其中,x、y为坐标向量,表示投影坐标上的两点;dist 为两点之间的直线距离:

  m_xydist函数适用示例

lon1 = -73.98;
lat1 = 40.78;
lon2 = -122.40;
lat2 = 37.77;
distance = m_xydist([lon1 lon2], [lat1, lat2]);
fprintf('直线距离为 %f 单位\n', distance);
输出结果为>> 直线距离为 3954.971314 单位

4 关于m_fdist

  m_fdist函数用于计算椭球上给定点在某方位/距离上的位置。

  m_fdist函数一般形式为:

[lon2,lat2,a21] = m_fdist(lon1,lat1,a12,s,spheroid)

其中:

  • lon1,lat1 球面上的1点坐标;
  • a12,s 第2个点的方位角a12和距第一个点的距离s;
  • spheroid 坐标系,默认为WGS84坐标系统;
  • lon2,lat2,a21 返回第二个点的坐标和相对于第一个点的方位角;

  m_fdist函数使用示例

clf;
m_proj('lambert','long',[-130 -121.5],'lat',[47 51.5],'rectbox','on');

[lon2 lat2 a21] = m_fdist(-121.98, 48.78,30,2);
fprintf('坐标点[-121.98, 48.78]方位角30°距离2m的点的坐标和相对与该点的方位角: %.2f  %.2f  %.2f \n', lon2,lat2,a21);

在这里插入图片描述

5 关于m_idist

  m_idist函数用于计算地图上两点之间的距离或方位。具体来说,m_idist 用于在地图投影上计算两个点之间的直线距离、大圆距离或方位角。

  m_idist函数的一般形式为:

[s,a12,a21] = m_idist(lon1,lat1,lon2,lat2,spheroid)
% lon1,lat1,lon2,lat2 两点坐标
% spheroid 默认WGs84坐标系

  m_idist函数使用示例

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

% 计算两点之间的距离和方位角
[dist, az] = m_idist(70, 80,27,28);

% 显示结果
fprintf('Distance between New York and Los Angeles: %.2f km\n', dist);
fprintf('Azimuth from New York to Los Angeles: %.2f degrees\n', az);

  打印结果

>> Distance between New York and Los Angeles: 6114934.62 km
>> Azimuth from New York to Los Angeles: 227.39 degrees

6. 总结

   本篇介绍了m_map中数据转换的有关函数,对各函数的功能及使用方法进行描述。希望对绘图的你有所帮助






😜
😜😜
😜😜😜😜

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

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

相关文章

axios使用sm2加密数据后请求参数多了双引号解决方法

axios使用sm2加密数据后请求参数多了双引号解决 背景问题描述解决过程 背景 因项目安全要求,需对传给后端的入参加密,将请求参数加密后再传给后端 前期将axios降低到1.6.7后解决了问题,但最近axios有漏洞,安全要求对版本升级&…

three完全开源扩展案例02-跳动的音乐

更多案例尽在https://threelab.cn/ 演示地址 import * as THREE from "three"; import { OrbitControls } from "three/examples/jsm/controls/OrbitControls.js";let mediaElement; let analyser; let scene; let camera; let renderer; let controls; …

应力 (Stress) 是指单位面积上所承受的力

应力 (Stress) 是指单位面积上所承受的力 flyfish 轴向力 轴向力 (Axial Force) 是指沿着物体的纵轴施加的力。对于一根杆或柱子,轴向力可以是拉力或压力,具体取决于力的方向。 拉力 (Tensile Force):使物体拉长的力。 压力 (Compressive…

上班摸鱼吗?一文详解代码生成神器-Velocity

引言 “我不是在教你学坏,而是教你如何提高生产效率。” ----------- 牛顿 人类社会能够一直进步发展出现在的文明世界,最大的一个原因就是这个世界上懒人居多,懒人为了偷懒就需要提高生产效率,效率提高节省下来的时间才能创造出艺术、娱乐以及更高效率的科学技术。程序员…

机器学习(五) -- 监督学习(7) --SVM2

系列文章目录及链接 上篇:机器学习(五) -- 监督学习(7) --SVM1 下篇: 前言 tips:标题前有“***”的内容为补充内容,是给好奇心重的宝宝看的,可自行跳过。文章内容被“文…

kubernetes集群如何更改所有节点IP

kubernetes集群如何更改所有节点IP 情景描述更换IP前的准备工作更换IP后的工作--master更换IP后的工作--node节点重新部署之前那些服务 情景描述 我有三台服务器,想要将其组成了一个kubernetes集群,在部署之前,我就对其进行了固定IP的操作&a…

Adobe Illustrator 2021 for mac/Win:专业矢量图形设计的巅峰之作

Adobe Illustrator 2021作为Adobe公司旗下的旗舰矢量图形设计软件,无论是对于Mac还是Windows用户,都提供了强大而灵活的设计工具,让设计师们能够轻松应对各种复杂的图形设计挑战。这款软件以其卓越的性能、丰富的功能和友好的用户界面&#x…

【正点原子K210连载】第二十章 machine.I2C类实验 摘自【正点原子】DNK210使用指南-CanMV版指南

1)实验平台:正点原子ATK-DNK210开发板 2)平台购买地址https://detail.tmall.com/item.htm?id731866264428 3)全套实验源码手册视频下载地址: http://www.openedv.com/docs/boards/xiaoxitongban 第二十章 machine.I2…

java并发编程之美-第1章 并发编程线程基础-线程的创建与运行

文章目录 1.什么是线程2. 线程创建和运行 1.什么是线程 进程是操作系统进行资源分配和调度的基本单位,线程是 CPU 分配的基本单位。 程序计数器用来记录线程当前要执行的指令地址。CPU一般是使用时间片轮转方式让线程轮询占用的,程序计数器是记录线程…

MVC 返回集合方法,以及分页

返回一个数据集方法 返回多个数据集方法 》》定义一个Model public class IndexMoel {public List<UserGroup> UserGroup{get;set;}public List<User> User{get;set;}}》》》控制器 //db 是 EF 中的上下文 var listnew IndexModel(); list.UserGroupdb.UserGro…

Java--static详解

1.static静态的意义&#xff0c;加在属性面前就为静态属性&#xff1b;加在方法面前就为静态方法 2.如图&#xff0c;定义了一个静态属性age&#xff0c;一个非静态属性score&#xff1b; 输出语句一共四句&#xff0c;其中第三句报错&#xff0c;由于静态和非静态的区别&…

EXSI 实用指南 2024 -编译环境 Ubuntu 安装篇(二)

1. 引言 在当今的虚拟化领域&#xff0c;VMware ESXi 是备受推崇的虚拟化平台&#xff0c;广泛应用于企业和个人用户中。它以卓越的性能、稳定的运行环境和丰富的功能&#xff0c;为用户提供了高效的硬件资源管理和简化的 IT 基础设施维护。然而&#xff0c;如何在不同操作系统…

安卓逆向经典案例——XX优品(uniapp)

uni-app逆向 uniapp的目录结构 有一个io文件夹&#xff0c;下面有dcloud uniapp UniApp 可以用于开发 H5 应用&#xff0c;但它不仅仅局限于 H5 应用。UniApp 的特点包括&#xff1a; 1. 跨平台&#xff1a;可以一套代码同时生成适用于多个平台&#xff08;如 iOS、Android、…

【学习笔记】4、组合逻辑电路(上)

数字电路的分类&#xff1a;组合逻辑电路&#xff0c;时序逻辑电路。本章学习组合逻辑电路。 4.1 组合逻辑电路的分析 给定的逻辑电路&#xff0c;确定其逻辑表达式&#xff0c;列出真值表&#xff0c;得到简化后的逻辑表达式&#xff0c;分析得到其功能。 3位奇校验电路 &…

仕考网:公务员考试的录取流程

公务员考试的录取流程分很多个阶段&#xff0c;以下是流程介绍&#xff1a; 1. 报名阶段&#xff1a;考生需根据公布的招聘信息和岗位要求进行报名。 2. 笔试阶段&#xff1a;公务员笔试&#xff0c;包括申论和行测两部分。 3. 成绩公布与面试资格&#xff1a;笔试合格者将获…

什么是期权隐含波动率?期权隐含波动率和历史波动率的区别?

今天带你了解什么是期权隐含波动率&#xff1f;期权隐含波动率和历史波动率的区别&#xff1f;期权波动率反映的是价格波动程度&#xff0c;是对资产收益率不确定性的衡量&#xff0c;通常用标准差表示。 隐含波动率是根据期权市场价格反推出的波动率。它是市场参与者根据期权…

Agents 要点

一、Agents概念 人类是这个星球上最强大的 Agent。Agent是一个能感知并自主地采取行动的实体&#xff0c;这里的自主性极其关键&#xff0c;Agent要能够实现设定的目标&#xff0c;其中包括具备学习和获取知识的能力以提高自身性能。 关键点&#xff1a;感知环境、自主决策、具…

windows中超详细深度学习环境配置之安装显卡驱动、cuda、cudnn、pytorch、torchvision、pycharm

超详细介绍安装Gpu版本的pytorch深度学习环境 一、显卡驱动安装1.1 下载驱动1.2 安装驱动 二、cuda安装2.1 下载cuda2.2 安装cuda2.3 检查cuda是否安装成功 三、安装cudnn3.1 cudnn下载3.2 cudnn安装 四、安装miniconda4.1 miniconda下载4.2 miniconda安装4.3 添加环境变量 五、…

开源模型应用落地-Yi模型小试-Yi-1.5-9B-Chat-16K-入门篇(一)

一、前言 Yi 开源模型是由零一万物公司发布的一系列自然语言和多模态模型。2024年5月13日,零一万物发布了最新的 Yi-1.5系列开源模型,开源了6B/9B/34B的 base 版和 chat 版模型,并第一时间发布在ModelScope、huggingface、 wisemodel 等 AI 开源社区平台。 二、术语 2.1. 零…

无人机之机身保养

一、外观检查 1、检查机器表面整洁无划痕、无针孔凹陷擦伤、畸变等损坏情况&#xff1b; 2、晃动机身&#xff0c;仔细听机身内部有无松动零件或者螺丝在机身内部。 二、桨叶检查 1、有无裂痕、磨损、变形等缺陷&#xff0c;如有明显缺陷建议更换&#xff1b; 2、卡扣、紧…