本学期的地图投影课程已经结束了,这篇博客用于记录自己在学习当中的一些心得,也为了给遇到同样问题的人提供一些可参考的思路。当然,限于时间和本人的能力,文章中必然会出现一些错误,希望大家发现之后能够指正,谢谢。

李老师为了加深我们对地图投影的理解,前后布置了11次作业。本学期的作业内容大致可分为以下四类:

一是概念描述类,通过文字描述加深对定义、方法、意义等概念的理解。

二是计算推导类,借助 matlab 计算地球上某些参数或推导投影的某些性质。

三是利用 matlab mapping toolbox 工具绘制投影和分析变形。

四是利用 matlab 设计地图投影的 GUI 程序 。

在此,将本学期的 11 次作业按照先后顺序列出:

作业一:

简述平行投影和中心投影的定义,区别与联系

作业二:

计算任意纬度的子午圈曲率半径,卯酉圈曲率半径和平均曲率半径,并分析其随纬度变化规律

作业三:

(1)计算从赤道到纬度线 10°、20°······90°的子午线弧长

(2)计算从纬度线 10°、20°······90°的纬圈半径

(3)计算从赤道起算的话10°×10°的球面梯形面积(扩展:计算任意球面梯形面积,并分析其分布规律)

(4)当计算用于中国全图的某一斜方位投影,确定中心点 Q 的 phi=30°N,lambda=105°E,经纬网密度为 5°,计算 alpha 和 Z

(5)什么是球面坐标系,有何意义?

(6)地理坐标如何转变到球面极坐标系?

(7)确定新极点的方法有哪些?

作业四:

判断投影方程 x=R*phi,y=R*lambda 的投影性质(扩展:在 matlab 中设计程序,用以判断任意方程的投影性质)

作业五:

推导抛物型、双曲型、椭圆型投影与等角、等面积、等距离投影的关系

作业六:

(1)推导说明等面积和等距离方位投影为何不存在割投影

(2)分别绘制正轴、横轴、斜轴的等角、等面积、等距离方位投影,并进行变形分析

作业七:

(1)绘制武汉到伦敦的大圆航线、恒向线以及混合航线,并进行比较

(2)分别绘制正轴、横轴、斜轴的等角、等面积、等距离圆柱投影,并进行变形分析

作业八:

(1)分析中国地图正轴等角割圆锥投影的标准纬线变化的影响

(2)分别绘制正轴、横轴、斜轴的等角、等面积、等距离割圆锥投影,并进行变形分析

作业九:

(1)计算比较经度 0°-6°,纬度 0°-4°的球面梯形面积、高斯-克吕格投影面积、UTM 投影面积以及双标准经线等角横圆柱投影面积

(2)高斯-克吕格投影变形分析及其分带拼接

(3)UTM 投影变形分析及其分带拼接

作业十:

(1)自定义绘制伪投影,并进行变形分析

(2)利用滑块等控件实现 m、n 参数动态变化的扁圆等面积投影程序

作业十一:

设计“放大镜”式的等距离方位投影 matlab 程序,实现“放大镜”随鼠标选点而移动,调节放大镜范围,缩放比例等功能。

作业中的前面一些部分作为比较常规的题目,例如曲率半径等参数计算,在matlab中直接带入公式即可,当然也可以参考https://www.cnblogs.com/kkyyhh96/p/5405968.html这几篇博客利用工具箱进行计算。这篇文章的作者相当详细地总结了matlab mapping toolbox的使用技巧(不得不说学长真的太厉害了!),所以一些基础的部分,投影绘制、变形分析、各种航线、自定义投影之类的知识这里就不过多讨论了。我们从最后几个作业入手,谈谈利用matlab实现地图投影应用和设计地图投影程序的技巧。

一、  谈谈分带投影和分带拼接

写的时候本来只想谈谈matlab地图投影程序设计,但是转念一想,分带投影的拼接似乎没有其他博客记录过,这也是李老师布置的作业中的一个重点,所以就在这里提一下,提供一种思路。

首先将高斯-克吕格投影按6度带投影,为了便捷起见,只拼接从中央经线为3°的位置开始的前10个带。若需要拼接60个带,或者拼接3°带以此类推。

这里所谓拼接,就是将所有的分带拼到一起形成教材上那种连续的带状的地图。分带思想就是同一个显示区域显示多个带的投影图像,这让我们很自然地想到利用函数subplot。

然而subplot函数呈现的子图之间有着让人无法忍受的间距,如果直接用于拼接地图,既不美观也不符合要求。为此,我们需要利用自定义子图间距的方式展现每幅子图。

function ha = tight_subplot(Nh, Nw, gap, marg_h, marg_w)

%Nh 为行数,Nw为列数

%gap为间距向量(h,w)

%marg_h(up,down)边界

%marg_w(left,right)边界

%h(ii)代表每一个图幅,在主函数中调用

if nargin<3; gap = .02; end

if nargin<4 || isempty(marg_h); marg_h = .05; end

if nargin<5; marg_w = .05; end

if numel(gap)==1;

gap = [gap gap];

end

if numel(marg_w)==1;

marg_w = [marg_w marg_w];

end

if numel(marg_h)==1;

marg_h = [marg_h marg_h];

end

axh = (1-sum(marg_h)-(Nh-1)*gap(1))/Nh;

axw = (1-sum(marg_w)-(Nw-1)*gap(2))/Nw;

py = 1-marg_h(2)-axh;

ha = zeros(Nh*Nw,1);

ii = 0;

for ih = 1:Nh

px = marg_w(1);

for ix = 1:Nw

ii = ii+1;

ha(ii) = axes('Units','normalized', ...

'Position',[px py axw axh], ...

'XTickLabel','', ...

'YTickLabel','');

px = px+axw+gap(2);

end

py = py-axh-gap(1);

end

UTM投影的拼接过程与高斯投影是一样的,让我们看一下拼接所用到的代码。记得要设置当前绘图区域gca不可见

set(gca,'Visible','off')

否则投影的每一个带都会有一个白色背景图框,相互遮盖看起来非常丑。

%UTM拼接

ha=tight_subplot(1,10,[-0.11 -0.11],[0.01 0.01],[0.35 0.35])

for ii=1:10

set(0,'defaultfigurecolor','w')

axes(ha(ii));

axesm ('unitranmerc','frame','on','origin',[0 183+6*ii 0],'flonlimit',[-3,3]);

%flatlimit控制投影的纬度范围,flonlimit控制经度范围,均为相对值

geoshow(landareas,'FaceColor',[0.5 1 0.5],'EdgeColor',[.6 .6 .6]);

set(gca,'Visible','off')

end

最终绘制出来的投影就相互拼接到一起了,让我们看一下效果。

标签:10,地图投影,学习心得,投影,拼接,MATLAB,作业,工具箱,matlab

来源: https://www.cnblogs.com/ssjxx98/p/11070375.html

matlab曲线 投影,MATLAB地图工具箱学习心得(一)关于分带投影的拼接相关推荐

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

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

  2. matlab 曲线命令,matlab软件基本的曲线拟合函数命令

    matlab软件基本的曲线拟合函数命令 MATLAB软件提供了基本的曲线拟合函数的命令. 曲线拟合就是计算出两组数据之间的一种函数关系,由此可描绘其变化曲线及估计非 采集数据对应的变量信息.1.线性拟 ...

  3. 学习matlab体会,matlab学习心得体会

    MATLAB是一个实用性很强,操作相对容易,比较完善的工具软件,你知道matlab学习心得体会是什么吗?接下来就是学习啦小编为大家整理的关于matlab学习心得体会,供大家阅读! matlab学习心得 ...

  4. MATLAB Mapping toolbox 地图工具箱 用户指南 2 地理几何学

    (本文根据MATLAB 2012A Mapping toolbox帮助文档理解整理得到,不忠于原文,意会翻译) 1 球面坐标(Spherical Coordinates) 1.1 球.球体和大地水准面 ...

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

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

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

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

  7. 机器学习 matlab工具箱,[matlab]机器学习及SVM工具箱学习笔记

    机器学习与神经网络的关系: 机器学习是目的,神经网络是算法.神经网络是实现机器学习的一种方法,平行于SVM. 常用的两种工具:svm tool.libsvm SVM分为SVC和SVR,svc是专门用来 ...

  8. matlab论文 总结,matlab学习论文和心得体会.doc

    matlab学习论文和心得体会 学校代码 10672 编 号 Guizhou Minzu University <MATLAB>学习论文 论文题目: 学院(系): 专 业: 年 级: 姓 ...

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

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

  10. 无人驾驶之MATLAB无人驾驶工具箱学习(3)

    接<无人驾驶之MATLAB无人驾驶工具箱学习(2)>中的内容. 4.驾驶情景生成及传感器模型 Generate Synthetic Detections from an Interacti ...

最新文章

  1. 关于虚拟化技术软硬件兼容问题的探讨
  2. 应对单条高频的数据修改方案
  3. keepalived+nginx
  4. js 调用C#.NET后台方法 转载自:http://www.cnblogs.com/lizhao/archive/2010/11/23/1990436.html...
  5. 《编码:隐匿在计算机软硬件背后的语言(美)》读书笔记二
  6. itext设置pdf的尺寸_如何获取pdf文档iText 7的页面大小-问答-阿里云开发者社区-阿里云...
  7. 452. 用最少数量的箭引爆气球(贪心算法+思路+详解)07
  8. java虚拟内存扩展_Java 8虚拟扩展方法
  9. linux磁盘写保护怎么修改_linux系统怎么避免u盘被写保护
  10. 关于科来网络分析系统的激活
  11. Delphi / Pascal 语法知识干货
  12. 零碎技术栈01_UML画图分析
  13. 【机器学习算法】聚类算法-4 模糊聚类 密度聚类,如何判断超参数:数据群数
  14. 微信小程序 百度SDK定位 坐标纠偏
  15. 2021年中国原油产量、需求量及石油原油行业发展趋势分析[图]
  16. C语言随机数独教程,C语言数独游戏的求解方法
  17. Andriod 实现一个类微信聊天界面 (二)
  18. QQ群关键字提醒设置
  19. 猎豹浏览器使用评测(2)-一款很轻的极简绿色浏览器
  20. USB 协议 (五) 枚举

热门文章

  1. python下载电影天堂视频_Python抓取电影天堂电影信息的代码
  2. 信阳市少年计算机学校,信阳市胜利路学校开展少年之声小记者选拔活动
  3. EAccessViolation型错误
  4. springboot 整合 ueditor 并实现文件上传(自定义上传路径)
  5. Java包装类相关知识点
  6. arcgis构造工具没了_在arcgis中如何调出数据显示工具栏
  7. 全面赋能,OCR文字识别2022年多场景落地应用
  8. UE4 角色添加武器后 移动出现漂移
  9. 四象限时间管理有多好用?
  10. ACM、OI、IOI编程竞赛模式介绍