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中数据转换的有关函数,对各函数的功能及使用方法进行描述。希望对绘图的你有所帮助






😜
😜😜
😜😜😜😜

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

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

相关文章

Nuxt3封装网络请求 useFetch $fetch

前言: 刚接触、搭建Nuxt3项目的过程还是有点懵的,有种摸石头过河的感觉,对于网络请求这块,与之前的Vue3项目有所区别,在Vue项目通常使用axios这个库进行网络请求,但在Nuxt项目并不推荐,因为有内…

RK3568平台(显示篇)主屏副屏配置

一.主屏副屏配置 目前在RK3568平台上有两路HDMIOUT输出,分别输出到两个屏幕上,一路配置为主屏,一路配置为副屏。 硬件原理图: &hdmi0_in_vp2 {status "okay"; };&hdmi1_in_vp0 {status "okay"; }…

【JAVA入门】Day15 - 接口

【JAVA入门】Day15 - 接口 文章目录 【JAVA入门】Day15 - 接口一、接口是对“行为”的抽象二、接口的定义和使用三、接口中成员的特点四、接口和类之间的关系五、接口中新增的方法5.1 JDK8开始接口中新增的方法5.1.1 接口中的默认方法5.1.2 接口中的静态方法 5.2 JDK9 开始接口…

Pandas实战指南:any()函数深度解析与高效应用

Pandas实战指南:any()函数深度解析与高效应用 引言 在数据分析和处理过程中,经常需要快速检查数据集中是否存在满足特定条件的元素。Pandas库中的any()函数正是这样一个强大的工具,它可以帮助我们沿着指定的轴检查是否至少有一个元素满足某…

Transformer重要论文与书籍 - Transformer教程

近年来,人工智能领域中的Transformer模型无疑成为了炙手可热的研究对象。从自然语言处理(NLP)到计算机视觉,Transformer展现出了前所未有的强大能力。今天,我们将探讨Tra在当今的人工智能和机器学习领域,Tr…

路由守卫中使用next()跳转到指定路径时会无限循环

路由守卫钩子介绍 const router new VueRouter({ ... }) // 导航路由变化时触发路由守卫钩子 router.beforeEach((to, from, next) > {// ... }) to: Route: 即将要进入的目标路由对象(到哪去)from: Route: 当前导航正要离开的路由(从哪来)next: Function(必须&#xff0…

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

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

从零开始[进阶版]深入学习图像分类:使用Python和TensorFlow

引言 图像分类是计算机视觉中的一个核心任务,广泛应用于人脸识别、自动驾驶、医疗影像分析等领域。在本篇文章中,我们将深入探讨图像分类的原理和实现,使用Python和TensorFlow搭建一个完整的图像分类系统。本文不仅适合初学者,也…

【Qt 初识 Test】用图形化和代码的方式实现简单的Qt程序

文章目录 1. 通过图形化的方式实现🍎2. 通过代码的方式实现 1. 通过图形化的方式实现🍎 在界面创建出一个控件,显示 hello world,通过拖拽的方式实现; widget.ui文件如下:🔍 生成的 ui_widget.…

生物环保技术有哪些缺点或者局限性呢

生物环保技术,作为一种利用生物学原理和技术来处理环境污染的方法,虽然具有绿色环保、高效节能等优点,但也存在一些缺点和局限性。以下是对这些缺点和局限性的详细分析: 一、受环境因素影响大 生物环保技术的效果往往受到环境因…

数据结构第18节 散列表 - 应用

散列表(Hash Table),也被称为哈希表,是一种数据结构,它通过使用哈希函数将键映射到数组的某个位置来实现快速查找。散列表通常提供平均时间复杂度为O(1)的查找、插入和删除操作,这使得它们在处理大量数据时…

【mybatis】mybatisX插件概述

一、主要功能 智能补全与提示 MyBatisX 可以智能地提示和补全 SQL 语句中的关键字、表名、列名等信息,从而显著提高开发效率。代码生成器 虽然 MyBatisX 本身可能不直接提供一个完整的、独立的代码生成器,但它可能集成了或支持与其他代码生成工具&#…

卤味江湖中,周黑鸭究竟该抓住什么赛点?

近年来,卤味江湖的决斗从未停止。 随着休闲卤味、佐餐卤味等细分赛道逐渐形成,“卤味三巨头”(周黑鸭、绝味食品、煌上煌)的牌桌上有了更多新对手,赛道变挤了,“周黑鸭们”也到了转型关键期。 这个夏天&a…

MySQL字符串相关数据处理函数

目录 1. 转大小写 2. 截取字符串 sunstr 3. 获取字符长度 4. 字符串拼接 concat 5. 去掉空白 trim 1. 转大小写 转大写:upper() 转小写:lower() 虽然MySQL不严格区分大小写,但是我们还是需要掌握这种大小写的操作以方便学习其他…

python的入门知识(下)

目录 学习内容数字字符串、列表和元组映射和集合类型 学习内容 数字 长整型(Long Integer): 在Python中,整数没有大小限制,但是可以用大写或小写的L来表示长整型,尽管这不是Python 3推荐的做法。 复数(Co…

Nessus相关

tenable 1 安装nessus scanner 1 )安装nessus scanner: 方法一 curl -H X-Key: xxxxx https://cloud.tenable.com/install/scanner?namescanner-name&groupsscanner-group | bash方法二: **# for ubuntu, its https://www.tenable.com/downloads/api/v1/pu…

【JavaScript脚本宇宙】JavaScript 库概览:数字、货币值、日期时间处理一网打尽

简化数据处理:掌握六大 JavaScript 库的核心功能和使用技巧 前言 在现代的软件开发中,处理数字、货币和日期时间是非常常见的需求。为了简化这些任务,开发人员可以使用各种 JavaScript 库来轻松地进行数字格式化、货币计算和日期时间操作。…

Google登录时人机身份验证的图片类型和通过的经验建议,以及一些常见问题

很多朋友在登录谷歌账号时,都遇到过要求人机身份验证的步骤,而且有一些时候人机身份验证这个步骤很让人纠结,甚至压根就出不来具体的验证图片,或者花了十几分钟、几十分钟都过不去。 所以今天GG账号服务就来为您解析一下谷歌登录…

初学SpringMVC之接收请求参数及数据回显

pom.xml 文件导入 lombok 的依赖 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.34</version></dependency> Controller 表示这是一个控制器 RequestParam 表示从前端接收…

夏日智启:我的Datawhale AI夏令营探索之旅

前言 最近几年&#xff0c;AI&#xff08;人工智能&#xff09;的发展呈现出了前所未有的迅猛势头&#xff0c;其影响力和应用范围不断扩大&#xff0c;深刻地改变着我们的生活、工作和社会结构。尤其是AI大模型技术&#xff0c;国内外可谓是“百模大战”&#xff0c;百舸争流…