MATLAB地图工具箱学习总结(一)从地图投影说起
MATLAB地图工具箱学习总结(一)从地图投影说起
MATLAB地图工具箱学习总结系列:
(一)从地图投影说起
(二)大圆和恒向线
(三)地图工具箱的基本知识
(四)自定义投影
前言
本学期地图投影课上,李连营老师建议我们使用MATLAB完成每周的作业。从大二上学期开始接触MATLAB学习数学运算和地理数据处理的我,自然不会放过这次机会,每周找了点时间好好研究了一下,把作业比较轻松地就搞定了。不过由于网上相关的教程、资料比较少,在夹杂了多种专业词汇的同时,又没有中文翻译,也是让人感到头疼。在此想总结一下相关的函数,以帮助其他需要使用工具箱的人。作为一个学生,我所接触的仅仅是皮毛,也必然会有一些错误,希望看到的人能够指出,谢谢。
PS:本文基于MATLAB R2014a版本。
1 作业案例:地图投影作业5-7
在作业5、6、7中,李老师分别要求我们在MATLAB中画出正轴、横轴、斜轴的方位、圆柱、圆锥投影(参数自定),查阅MATLAB帮助后,在其基础上完成了作业。以等角横轴圆柱投影为例,源代码及效果如下图所示:
landareas = shaperead('landareas.shp','UseGeoCoords',true);
axesm ('mercator', 'Frame', 'on', 'Grid', 'on','origin',[0 120 0]);
geoshow(landareas,'FaceColor',[1 1 .5],'EdgeColor',[.6 .6 .6]);
tissot;

接下来我将详细解释一下各函数及其参数的意义和作用。
2 地图投影的分类:
(1) MATLAB中支持多种地图投影,查看具体支持哪些只需要在命令行中敲入maps,可以获得MATLAB中所有地图投影类型的分类属性(圆锥、圆柱、方位投影等),名称及MATLAB中使用时的简称。如下图:

(2) 以下是我本人翻译的部分投影类型中英文翻译对照表。

3 shaperead的用法
shaperead用于读取shapefile文件的数据,并将其进行存储。
(1) 基本用法:shpaeread(filename,Name,Value)
其中,filename指的是文件名,此项必设,后面可以跟多项设置。其生成一个结构体,包括Geometry几何对象,BoundingBox范围,X,Y坐标值等数据。

(2) 常用设置
1) BoundingBox:是一个2*2的数组,限定了读取文件要素的范围,只有该范围内的要素才能被选中。
2) Attributes:读取属性设置,后面跟一个字符串数组,字符串即为所要读取的属性。当设置该属性后,shapefile文件中只有被选择的属性才可以被读取出来。

3) UseGeoCoords:可以选择为true或者false(默认),即是否使用地理结构(GeoStruts)。如果数据已经被投影了就选择false,如果还未被投影,可以选择true以生成投影。
4 axesm的用法
axesm是地图工具箱中最重要、最常用的函数之一,用来定义地图的坐标系,设置地图的属性。而地图投影的类型也可以在里面进行设置和调整。
(1) 基本用法:axesm(projid,PropertyName,PropertyValue)
其中,projid指的是投影类型的简称,此项必设,后面可以跟多项属性,包括属性名称和属性值。属性分为四大类:控制地图投影的属性,控制框架的属性,控制格网的属性,控制坐标轴标签的属性。下面就一一介绍一些常用的属性。此外,也可以直接在命令行中敲入axesm手动调整部分参数。

(2) 常用属性:
1) AngleUnits:包括degrees(默认)度和radians弧度两个属性,定义角度的单位。
2) MapLatLimit[southern_limit northern_limit]和MapLonLimit[western_limit eastern_limit]:分别定义了经度和纬度的范围
3) Origin[latitude longitude orientation]:定义了地图的中心区域。输入的经纬度将成为地图投影的中心。最后一个参数orientation则设置了地图旋转的角度。
4) Frame:包括on和off(默认)两个属性。可以定义地图的边框是否显示。
5) Grid:包括on和off(默认)两个属性。可以是否显示地图格网。
5 geoshow的用法
geoshow是用来显示地图数据的函数,非常重要,大部分的地图都使用该函数进行显示。由于其使用的方法多种多样,在此仅仅介绍一小部分和本文开始案例相关的用法。
(1) 基本用法:
1) geoshow(lat,lon)直接输入经纬度,将以该经纬度为中心,生成一小片地图。
2) geoshow(filename)直接输入地图文件名,生成该地图
3) geoshow(_,Name,Value,)输入相关属性并设定参数,生成所需要的地图。
(2) 常用属性:
1) facecolor:定义了地图表面的颜色,需要输入三个参数且均在0至1之间。
2) edgecolor:定义了海岸线边界的颜色,参数值同上。
landareas=shaperead('landareas.shp','UseGeoCoords',true);
axesm('mercator','Frame','on','Grid','on','origin',[ ])
geoshow(landareas,'FaceColor',[ . .],'EdgeColor',[. . .]);
tissot

6 tissot的用法
tissot用来显示变形椭圆。
(1) 基本用法:
1) tissot可以自动显示变形椭圆,最小椭圆大小为显示范围的十分之一。
2) tissot(radius)其中radius是最小椭圆的大小。
landareas=shaperead('landareas.shp','UseGeoCoords',true);
axesm('mercator','Frame','on','Grid','on','origin',[ ]);
geoshow(landareas,'FaceColor',[ . .],'EdgeColor',[. . .]);
tissot(0.05);

3) tissot(linestyle)其中linestyle是椭圆线形。
4) tissot(lineStyle,PropertyName,PropertyValue)可以设置关于线形的其他属性。
7 mdistort的用法
mdistort用来显示等变形线。
(1) 基本用法:
1) mdistort可以自动显示等变形线。
2) mdistort(parameter).可以对等变形线进行参数设置。
(2) 常用属性:
1) 'area':后面跟数组,可以在相应的参数位置设置等变形线。
2) 'angle':根据角度设置等变形线的间隔。
3) 'parscale':和area类似,目前我本人也没有搞清楚两者之间具体的差异。
landareas=shaperead('landareas.shp','UseGeoCoords',true);
axesm('mercator','Frame','on','Grid','on','origin',[ ]);
geoshow(landareas,'FaceColor',[ .],'EdgeColor',[. . .]);
mdistort('parscale',[-::])

今天关于MATLAB地图投影的相关知识就介绍这么多,看帮助才是最重要的,我这里仅仅挑出了相关的个别属性,但MATLAB功能实在强大,应该好好利用!下次准备讲一讲大圆和恒向线路径生成的问题。
天靖居士
2016.4.18
4.24更新说明:添加mdistort等变形线说明。
8.17更新说明:具体代码请参考:https://git.oschina.net/kkyyhh96/MapProjectInMatlab
有关地图工具箱其他文章,请参看:
MATLAB地图工具箱学习总结系列:
(一)从地图投影说起
(二)大圆和恒向线
(三)地图工具箱的基本知识
(四)自定义投影
MATLAB地图工具箱学习总结(一)从地图投影说起的更多相关文章
- MATLAB地图工具箱学习总结(四)自定义投影
MATLAB地图工具箱学习总结(四)自定义投影 这是本系列的最后一篇文章,准备给大家讲讲自定义投影怎么做.在做这项作业的时候,自己也是花了不少时间,将所有地图投影源文件都看了一遍,简单分析了一下源代码 ...
- MATLAB地图工具箱学习总结(三)地图工具箱的基本知识
MATLAB地图工具箱学习总结(三)地图工具箱的基本知识 今天想要介绍的是一些比较基础的函数.了解了这些函数,地图投影的基本概念才能真正明白.而要想继续研究MATLAB中有关地图投影的函数,尤其是未来 ...
- MATLAB地图工具箱学习总结(二)大圆和恒向线
MATLAB地图工具箱学习总结(二)大圆和恒向线 今天要和大家谈一谈大圆.恒向线航道的画法.还是先从案例开始说起,再分别介绍相关的函数. 1 作业案例:地图投影作 ...
- MATLAB地图工具箱学习心得(二)设计可变参数和位置拾取的“放大镜”式投影程序
最近刚好因为一些原因整理这方面的内容,所以还是把这篇鸽了一年多的博客顺手写出来了∠( ᐛ 」∠)_.因为是当时课程设计的一部分,程序上难免会有一些不足和bug,在这里将设计的思路分享给大家. 本篇博客 ...
- MATLAB地图工具箱学习心得(一)关于地图分带投影的拼接
关于matlab地图投影系列: MATLAB地图工具箱学习心得(二)设计可变参数和位置拾取的"放大镜"式投影程序 --- 本学期的地图投影课程已经结束了,这篇博客用于记录自己在学习 ...
- MATLAB 地图工具箱 m_map 的安装和入门技巧(转)
reference: http://blog.sina.com.cn/s/blog_8fc890a20102v6pm.html 需要用一些地图工具,arcgis懒得装了,GMT(generic m ...
- Matlab神经网络工具箱学习之一
1.神经网络设计的流程 2.神经网络设计四个层次 3.神经网络模型 4.神经网络结构 5.创建神经网络对象 6.配置神经网络的输入输出 7.理解神经网络工具箱的数据结构 8.神经网络训练 1.神经网络 ...
- Matlab神经网络工具箱学习之二
螃蟹的分类 这个例子的目的是根据螃蟹的品种.背壳的长宽等等属性来判断螃蟹的性别,雄性还是雌性. 训练数据一共有六个属性: species, frontallip, rearwidth, length, ...
- matlab遗传算法工具箱
转自http://blog.sina.com.cn/s/blog_5ebcc0240101pnrj.html matlab遗传算法工具箱函数及实例讲解 (2014-01-10 13:03:57) ...
随机推荐
- C#注解属性的感想一:
C#当中Attribute(中文注解属性)已经知道这个概念已经很久很久了,不过悲剧的是在实际项目当中重来没有用它来做过什么东西,以致对它的理解总是很浅薄,更谈不上如何在实际项目中运用它.最近在学习&l ...
- JAVASE02-Unit05: 集合操作 —— 查找表
Unit05: 集合操作 -- 查找表 使用该类测试自定义元素的集合排序 package day05; /** * 使用该类测试自定义元素的集合排序 * @author adminitartor * ...
- JavaScript:异步 setTimeout
setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式. function showDate(){ var date=new Date(); console.log(date); } ...
- 第十二章Fundamental Data Types 基本数据类型
目录: 12.1 数值概论 12.2整数 12.3浮点数 12.4 字符和字符串 12.5布尔变量 12.6枚举类型 12.7具名常量 12.8数组 12.9创建你自己的类型 12.1 数值概论 ...
- HDU - 1875 畅通工程再续
Problem Description 相信大家都听说一个“百岛湖”的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其他的小岛时都要通过划小船来实现.现在政府决定大力发展百岛湖,发展首先要解决的问 ...
- 第二天 ado.net, asp.net ,三层笔记
1. ado.net步骤: 一:倒入命名空间 using System.Data; using System.Data.sqlclient; 二:第一个模型 int ...
- 多线程中共享变量——CCF总决赛试题
题目要求 数据格式 Q 系统的输入为纯文本格式的文件,由若干行组成,每一行由城市编号.年龄.收入组成,相邻两项之间用一个空格分隔.以下是输入的一个片段: 1001 20 12000 1001 50 2 ...
- Java多线程开发系列之二:如何创建多线程
前文已介绍过多线程的基本知识了,比如什么是多线程,什么又是进程,为什么要使用多线程等等. 在了解了软件开发中使用多线程的基本常识后,我们今天来聊聊如何简单的使用多线程. 在Java中创建多线程的方式有 ...
- crontab每秒执行URL接口
首先crontab -e打开进行编辑 添加以下代码(默认为每秒执行一次脚本crontab.sh): * * * * * /bin/sh /var/www/aa/crontab.sh 下面是/var/w ...
- Extjs swfUpload 多图片上传
一.属性介绍 类型 默认值 描述 upload_url String 处理上传文件的服务器端页面的url地址,可以是绝对地址,也可以是相对地址,当为相对地址时相对的是当前代码所在的文档地址 p ...