03 - matlab m_map地学绘图工具基础函数 - 设置坐标系(m_coord)

03 - matlab m_map地学绘图工具基础函数 - 设置坐标系(m_coord)

  • [0. 引言](#0. 引言)
  • [1. m_proj使用方法](#1. m_proj使用方法)
  • [2. 结语](#2. 结语)

0. 引言

上一篇介绍了m_proj函数用于初始化投影,本篇介绍的函数m_coord用于初始化地理坐标系或地磁坐标系,地理/地磁坐标系和投影坐标系的初始化同样重要。先简单了解下基本概念吧:

地理坐标系

概念: 地理坐标系是一种用经度和纬度来描述地球上位置的坐标系统。经度和纬度是地球表面上任意点的地理坐标,通过这两个坐标可以精确定位地球上的任何位置。意义:地理坐标系因其全球性的定位能力,在地图制图、导航和地理信息系统中被广泛应用。通过地理坐标系,我们可以准确地标识出地球上的各种自然和人造地标,实现地图的精确定位和导航功能。

地磁坐标系

概念:地磁坐标系是一种以地球的地磁场为基础建立的坐标系,用于描述地球上的位置和方向。地球的地磁场是由地核运动产生的磁场,它在地球表面和周围空间形成了一个复杂的磁场结构。地磁坐标系利用地球磁场的方向作为参考,来描述地球上的位置和方向。与地理坐标系不同,地磁坐标系不直接使用经度和纬度,而是使用与地球磁场方向相关的参数,如磁纬、磁经等。 意义:地磁坐标系的主要优势在于它能够提供与地球磁场结构相关的定位和导航信息,尤其在需要考虑地球磁场影响的应用场合具有重要意义。

投影坐标系

概念:投影坐标系是一种将地球表面的三维空间坐标投影到二维平面上的坐标系统。由于地球是一个三维的球体,而地图通常是平面的,为了将地球表面上的地理信息准确地表示在平面地图上,就需要使用投影坐标系。不同的地图投影方法会产生不同类型的投影坐标系,如墨卡托投影、极射赤面投影、等距圆锥投影等。每种投影方法都有其特定的投影规则,使得地球表面上的经纬度坐标能够被准确映射到平面地图上的坐标。这样一来,人们就可以在地图上方便地测量距离、面积和方位等信息。 意义:投影坐标系在地图制图、空间分析、导航和地理信息系统中有着重要的应用,它使得我们能够用平面图形直观地表示出地球表面上复杂的地理信息,方便人们进行地图阅读和空间分析。

三种坐标系的相同和异同点
相同点:

  • 均用于地图制图和导航:这三种坐标系都用于描述地球表面上的位置和方向,对地图制图、导航和空间定位具有重要意义。

  • 都基于地球表面:这些坐标系都是基于地球表面的特征和结构建立的,用于描述地球上的位置和方向关系。

不同点:

  • 定义方式不同:地理坐标系是基于地球椭球体经纬度网格系统建立的,地磁坐标系是基于地球磁场的方向建立的坐标系,而投影坐标系是将三维地球表面投影到二维平面上的坐标系。

  • 应用领域不同:地理坐标系主要用于全球性的定位和导航,地磁坐标系主要用于航空航天、地球物理勘探等领域,而投影坐标系则主要用于地图制图和空间分析。

  • 表达方式不同:地理坐标系使用经度和纬度表示位置,地磁坐标系使用磁场方向参数表示位置,而投影坐标系使用投影坐标表示位置。

1. m_proj使用方法

m_proj提供了下面4种调用方式:

matlab 复制代码
M_COORD('set') 获取当前使用的坐标系统
M_COORD('get') 获取当前可以选择使用的坐标系统名称
M_COORD('usage') 获取m_coord的使用方法
M_COORD(SYSTEM) 设置坐标系

逐个看下m_proj不同参数下的输出:

1. m_coord('set')

matlab 复制代码
clc;clear
mstruct = m_proj('Mercator', 'lon', [0 360], 'lat', [-90 90]); % 定义投影坐标系
m_coord('set'); % 查看默认地理坐标系

%% 输出结果
>> test_m_coord
     name: 'geographic'
    mdate: 0

该命令执行后打印出了当前使用的地理坐标系的名称,而前面又没有调用m_coord对地理坐标系进行设置,由此可知默认地理坐标系就为'geographic'。

2. m_coord('get')

matlab 复制代码
>> m_coord('get')
 
Available coordinate systems are:
     geographic
     IGRF2000-geomagnetic
     IGRF2011-geomagnetic
     IGRF2020-geomagnetic
     IGRF-geomagnetic

该命令执行后打印出了所有可设置的地理/地磁坐标系名称,由此可以看到++除"geographic"外其余均为地磁坐标系++,所以在绘制地理图件的时候可不必调用m_coord对坐标系进行定义,使用默认即可。

3. m_coord('usage')

该命令没什么实际意义,不展开了。

4. m_coord(system)

该命令在绘图地磁有关的图件时或能用到,下面还是用一个简单例子,展示下m_coord(system)是否可以正确修改坐标系。

matlab 复制代码
clc;clear;
mstruct = m_proj('Mercator', 'lon', [0 360], 'lat', [-90 90]); %初始化投影坐标系
m_coord('set'); % 获取当前坐标系
m_coord('IGRF2000-geomagnetic'); % 对坐标系进行修改
m_coord('set'); % 是否修改成功

%% 输出结果
>>
     name: 'geographic'
    mdate: 0

     name: 'IGRF2000-geomagnetic'
    mdate: 730486

见输出可以看到m_coord('IGRF2000-geomagnetic')起到了设置坐标系的作用。

2. 结语

本篇介绍了m_coord函数的用法,在地学制图中一般是用不到的,在绘制地磁图件时可以用于设置不同的地磁坐标系。

😜

😜😜

😜😜😜😜

相关推荐
IT猿手10 小时前
最新高性能多目标优化算法:多目标麋鹿优化算法(MOEHO)求解TP1-TP10及工程应用---盘式制动器设计,提供完整MATLAB代码
开发语言·深度学习·算法·机器学习·matlab·多目标算法
__lost10 小时前
MATLAB直接推导函数的导函数和积分形式(具体方法和用例)
数学·算法·matlab·微积分·高等数学
IT猿手16 小时前
SDMTSP:粒子群优化算法PSO求解单仓库多旅行商问题,可以更改数据集和起点(MATLAB代码)
开发语言·人工智能·matlab·智能优化算法
我爱C编程1 天前
基于Qlearning强化学习的机器人路线规划matlab仿真
matlab·机器人·强化学习·路线规划·qlearning·机器人路线规划
Evand J2 天前
LOS/NLOS环境建模与三维TOA定位,MATLAB仿真程序,可自定义锚点数量和轨迹点长度
开发语言·matlab
孤亭远见2 天前
COMSOL with Matlab
matlab
图南楠2 天前
simulink离散传递函数得到差分方程并用C语言实现
matlab
信号处理学渣2 天前
matlab画图,选择性显示legend标签
开发语言·matlab
机器学习之心2 天前
Bayes-GRU-Attention的数据多特征分类预测Matlab实现
matlab·分类·gru
叶庭云2 天前
Matlab 和 R 语言的数组索引都是从 1 开始,并且是左闭右闭的
matlab·编程语言·r·数组索引·从 1 开始