MATLAB地图工具箱学习总结(三)地图工具箱的基本知识

MATLAB地图工具箱学习总结系列:

(一)从地图投影说起

(二)大圆和恒向线

(三)地图工具箱的基本知识

(四)自定义投影

今天想要介绍的是一些比较基础的函数。了解了这些函数,地图投影的基本概念才能真正明白。而要想继续研究MATLAB中有关地图投影的函数,尤其是未来我要提到的投影文件源代码,知晓这些函数的功能必不可少。本篇文章将会罗列三个案例,并在后面一一进行讲解。

1                    作业案例:地图投影作业1

这次的案例从作业1开始。作业1是要求计算出地球椭球体的一些基本参数,包括子午圈曲率半径、卯酉圈曲率半径、平均曲率半径和纬圈半径等。当初我交上的作业完全是数学公式的堆砌,不过其实MATLAB中有相关的函数。

在这里用到了三个函数,包括referenceEllipsoid, rcurve和rsphere,其中angle是输入的角度。利用这两个函数轻松就将以上四种椭球体的参数获得了。

让我们来分析一下代码。

首先需要介绍的是referenceEllipsoid(参考椭球体)函数。和这个函数相似的还有referenceSphere(参考球体)和oblateSpheroid函数,都是关于参考系的设置。函数括号中的参数也很明显,分别是设置为WGS84坐标系,单位是km.在进行地图投影的计算前,设置好所需的参考椭球是必须的。MATLAB中包含了多种参考椭球,可以直接使用,只需要查看函数帮助就可以了。

接下来要讲得是rcurve函数。这个函数可以计算各种曲率半径。其基本用法为:rcurve(propertyName,ellipsoid,lat).在上面案例中提到的三个参数分别是:transverse,用来计算卯酉圈曲率半径;meridian,用来计算子午圈曲率半径;parallel,用来计算纬线圈半径。只要接下来输入所用参考椭球和纬度,即可计算出相应的参数。

最后要讲一下rsphere函数。这个函数用来计算地球球体的半径。它有多种计算方式,其中triaxial参数可以计算出平均曲率半径。公式为sqrt(a*b),即几何平均值。此外还包括authalic、euler等参数,具体形式请查看帮助。

2                    作业案例2:地图投影作业2

作业2的问题是,一个人从哪里出发,先向东走,再向北走(过了北极后方向仍然不变),最终回到原点,且向东向北走的距离相同。其核心问题是求经线和纬线长度。还记得当时把一整长串积分公式好不容易录入MATLAB,MATLAB向我报告积分太多算不了。后来改用了其泰勒展开式的一部分带入进行计算,好在成功了。不过在本文里我并没有更好的解法。但我想借此机会介绍几个函数。分别是departure,meridianarc,meridianfwd,distance,reckon。

departure函数的作用在于计算纬线的长度。其基本用法是departure(lon1,lon2,lat,ellipsoid),首先输入两条经线,再输入纬度,带入椭球体参数即可计算出相应纬线的长度。

meridianarc、meridianfwd函数刚好与departure函数相反,是用来求经线长度的。meridianarc的基本用法是s=meridianarc(phi1,phi2,ellipsoid),即只要输入纬度即可算出它们间相隔的距离s。meridianfwd则和meridianarc互为正反算。其基本用法是phi2=meridianfwd(phi1,s,ellipsoid),即输入一点经度,再输入相隔的距离和椭球体,即可算出相对应的经度。需要注意到的是,这两个函数都需要输入弧度制的经度,所以一定要先转换好再输入。

以上三个函数的效果如下:

distance和reckon两个函数都和距离有关。distance的基本用法是[arclen,az]=distance(lat1,lon1,lat2,lon2),很明显,只要输入两个点的经纬度,即可获得两点间的距离。这个距离默认为大圆距离,当然也可以设置rh,求恒向线的距离。获得的arclen即为距离,此外还可以获得az,即两点之间的方位角。reckon的基本用法是[latout,lonout]=reckon(lat,lon,arclen,az),这和distance刚好相反。输入一个点的经纬度,距离和方位角,即可求出距离这个点相应距离和相应方位角的点。

3                    作业案例3:地图投影作业7

在作业7中,老师要求我们每个人根据标准纬线,使用圆锥等角投影显示各自家乡的省份。我想在这里提一提MATLAB中地图投影最基本的组织原理。

在工具箱中,有一个mstruct的句柄,这便是地图投影组织结构。建立axesm后,使用命令:gcm就可以获得当前的投影信息。我们以墨卡托投影为例来看一下里面包含了哪些结构。

当然不仅仅这些,下面还有很多属性没有列出。这里面就显示了axesm的各种属性。而这些属性我在本系列的第一篇中就提到了,虽然当时的我还没有理解其中的原理。

对于属性的设置,除了用axesm可以进行设置外,还可以分别使用getm和setm对属性进行读取和设置。getm就是读取投影属性,使用方法为:getm(gcm,propertyName),即输入你想要了解的属性即可。而setm则需要在propertyName后加具体的值,那么地图投影就会跟着改变。

其中有一个mapparallels是解决这道题的关键,这个属性正是指的地图投影的标准纬线。nparallels可以设定标准纬线的个数,当nparallels为1时,可以设定一个mapparallels,说明是切投影,两个值的时候则是割投影。要注意的是,并不是所有的投影类型都支持设置该属性,因此在使用前要确认这个投影是否能设置标准纬线。

不知不觉,当我写到这个时候,地图投影的课程已经结课了。最后的作业是自定义投影,也是花了我不少时间,不过还是做出来了。那么,下一篇也就将是本系列的最后一篇了,希望能够给使用MATLAB地图工具箱的人带来更多的帮助。

天靖居士

2016.5.16

8.17更新说明:具体代码请参考:https://git.oschina.net/kkyyhh96/MapProjectInMatlab

有关地图工具箱其他文章,请参看:

MATLAB地图工具箱学习总结系列:

(一)从地图投影说起

(二)大圆和恒向线

(三)地图工具箱的基本知识

(四)自定义投影

转载于:https://www.cnblogs.com/kkyyhh96/p/5498521.html

MATLAB地图工具箱学习总结(三)地图工具箱的基本知识相关推荐

  1. android应用 百度地图,Android学习之百度地图API的应用(一)

    现在的地图API很多,我就从百度地图开始了,为了方面自己以后回顾,我会把所有学到的东西记录下来,下面是学习记录: 要使用百度地图首先得申请一个KEY,可以到这里申请(需要注册一个百度账号),申请完之后 ...

  2. 【Python之pymysql库学习】三.sql语句的相关知识(保姆级图文+实现代码)

    目录 实现效果 实现思路 实现代码 总结 欢迎关注 『Python之pymysql库学习』 系列,持续更新中 欢迎关注 『Python之pymysql库学习』 系列,持续更新中 实现效果 把给读取数据 ...

  3. MATLAB语言初步学习(三)

    数据分析与多项式计算 y=max(x) [y,k]=max(x)返回最大值与序号 max(A) A为矩阵是返回一个行向量,其中元素为列上的最大值 mean()均值 median()中值 sum()求和 ...

  4. MATLAB地图工具箱学习心得(二)设计可变参数和位置拾取的“放大镜”式投影程序

    最近刚好因为一些原因整理这方面的内容,所以还是把这篇鸽了一年多的博客顺手写出来了∠( ᐛ 」∠)_.因为是当时课程设计的一部分,程序上难免会有一些不足和bug,在这里将设计的思路分享给大家. 本篇博客 ...

  5. jeremy的路径规划学习-1.三维地图定义,散点拟合插值与粒子群算法(matlab实现)

    jeremy的路径规划学习-1.三维地图定义,散点拟合插值与粒子群算法(matlab实现) 本文基于小黎的ally学习资料实现,感谢该博主的无私奉献 三维地图与二维地图的差别 1.二维无高度信息,多用 ...

  6. 贝叶斯网络结构学习(基于BDAGL工具箱的MATLAB实现)

    题目:贝叶斯网络结构学习(基于BDAGL工具箱的MATLAB实现) 有关贝叶斯网络结构学习的一基本概念可以参考:贝叶斯网络结构学习方法简介 有关函数输入输出参数的解释可以参考:贝叶斯网络结构学习若干问 ...

  7. s matlab toolbox,Matlab Robotic Toolbox工具箱学习笔记(一 )

    Matlab Robotic Toolbox工具箱学习笔记(一) 软件:matlab2013a 工具箱:Matlab Robotic Toolbox v9.8 Matlab Robotic Toolb ...

  8. matlab机器人工具箱学习笔记——ikine函数

    matlab机器人工具箱学习笔记--ikine函数 ikine函数用法 使用实例 链接: https://blog.csdn.net/weixin_42596724/article/details/8 ...

  9. 【Matlab 机器人工具箱 学习笔记】双旋转台5轴数控机床 运动学模型02

    参考: [1]何永红, 齐乐华, 赵宝林. 双转台五轴数控机床后置处理算法研究[J]. 制造技术与机床, 2006(1). [2]李永桥, 陈强, 谌永祥. 双转台五轴数控机床运动变换及求解方法的研究 ...

  10. U3d学习第三天--黑暗奇侠(1)地图搭建

    U3d学习第三天--黑暗奇侠(1)地图搭建 先导入需要的资源包巨魔的资源包地形上各种建筑的资料包恐龙资料包女孩资料包 绘制地形:1.首先先改地图的大小, 2.为地形添加地皮:3.抬高地形: 4.绘制地 ...

最新文章

  1. 异步IO(协程,消息循环队列)
  2. 通过CSS修改checkbox样式(利用label的for属性进行焦点传递)
  3. 对象创建的过程细节是怎样的?一起来探讨内存变化细节
  4. poj 1932(spfa判断环)
  5. 【STM32】FreeRTOS系统配置
  6. Server.Transfer 和 Response.Redirect 的用法
  7. Skywalking-10:Skywalking查询协议——GraphQL
  8. OD常用快捷键(对比SoftICE)
  9. office mime type
  10. Atitit 物联网体系图 感知层 条码:物联网的第一代身份证 65二维码 4 电子标签:物联网的第二代身份证 78 4 传感器:物联网的神经元 92 4 自动识别技术 光学字符识别技术
  11. 计算机音乐谱大全极乐净土,极乐净土maria曲谱
  12. linux下的web服务器压力测试工具之ab
  13. EndNote X7如何在论文中嵌入中文格式要求的参考文献
  14. 两个double之间的运算
  15. 修改谷歌浏览器Google Chrome缓存位置
  16. H.266/VVC的编码结构和块划分
  17. css3实现折叠效果_使用CSS3创建灵活的折叠纸效果
  18. 闲谈JVM(二):浅析新老生代参数配置
  19. 骁龙660是32位还是64位_微信有32位与64位,很多人不知道~
  20. 九轴姿态传感器的介绍和应用

热门文章

  1. eCommerce电子商务业务领域常见的一些术语
  2. 知识管理案例:谁来负责知识管理?
  3. Ubuntu18.04安装ceres-solver
  4. SDUT OJ温度转换
  5. 使用计算机时直接断电,电脑用着突然断电重启
  6. android手机如何截屏,安卓手机怎么截屏(教你华为手机5种截图技巧)
  7. 基础:某个应用的CPU使用率高达100%,该怎么处理
  8. Wireshark 用户使用手册 ———— 自定义 Wireshark
  9. 如何让Bing快速收录你的网站?
  10. [跟进]_中国银联悄然推出B2C网站-银联在线商城