当前位置: 首页 > news >正文

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:定义了海岸线边界的颜色,参数值同上。

1 landareas=shaperead('landareas.shp','UseGeoCoords',true);
2 axesm('mercator','Frame','on','Grid','on','origin',[0 120 0])
3 geoshow(landareas,'FaceColor',[1 .2 .5],'EdgeColor',[.2 .6 .1]);
4 tissot

6                    tissot的用法

tissot用来显示变形椭圆。

(1)          基本用法:

                            1)              tissot可以自动显示变形椭圆,最小椭圆大小为显示范围的十分之一。

                            2)              tissot(radius)其中radius是最小椭圆的大小。

1 landareas=shaperead('landareas.shp','UseGeoCoords',true);
2 axesm('mercator','Frame','on','Grid','on','origin',[0 120 0]);
3 geoshow(landareas,'FaceColor',[1 .2 .5],'EdgeColor',[.2 .6 .1]);
4 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类似,目前我本人也没有搞清楚两者之间具体的差异。

1 landareas=shaperead('landareas.shp','UseGeoCoords',true);
2 axesm('mercator','Frame','on','Grid','on','origin',[0 120 0]);
3 geoshow(landareas,'FaceColor',[1 1 .5],'EdgeColor',[.6 .6 .6]);
4 mdistort('parscale',[-500:100:500])

今天关于MATLAB地图投影的相关知识就介绍这么多,看帮助才是最重要的,我这里仅仅挑出了相关的个别属性,但MATLAB功能实在强大,应该好好利用!下次准备讲一讲大圆和恒向线路径生成的问题。

天靖居士

2016.4.18

 

4.24更新说明:添加mdistort等变形线说明。

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

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

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

(一)从地图投影说起

(二)大圆和恒向线

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

(四)自定义投影

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

相关文章:

  • MySQL存储引擎MyISAM与InnoDB区别总结整理
  • Atitit。数据库 安全性 重要敏感数据加密存储解决方案
  • MySQL半同步复制原理配置与介绍
  • GIT 远程仓库:添加远程库、从远程库克隆
  • 用优雅的方式重装Windows 10不可使用的应用程序
  • 使用Generic Webhook Trigger插件实现Jenkins+WebHooks(码云)持续集成
  • Redis实战和核心原理详解(4)Redis存储Key的一种设计实现方式:模式匹配
  • 第一次冲刺阶段(六)
  • MyBatis关联映射:一对一、一对多
  • xshell配色Solarized Dark
  • MySQL必知必会知识点总结一二
  • Spring Boot和Spring Cloud学习资源推荐
  • 代理模式的java实现
  • MySQL日志文件之错误日志和慢查询日志详解
  • Cracks
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • Brief introduction of how to 'Call, Apply and Bind'
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • js对象的深浅拷贝
  • laravel5.5 视图共享数据
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • mysql常用命令汇总
  • Next.js之基础概念(二)
  • SegmentFault 2015 Top Rank
  • Spark学习笔记之相关记录
  • Spring核心 Bean的高级装配
  • Sublime text 3 3103 注册码
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 记录一下第一次使用npm
  • 深度学习在携程攻略社区的应用
  • 深入浅出Node.js
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 提醒我喝水chrome插件开发指南
  • 一个完整Java Web项目背后的密码
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • Prometheus VS InfluxDB
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • 湖北分布式智能数据采集方法有哪些?
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #Lua:Lua调用C++生成的DLL库
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • (07)Hive——窗口函数详解
  • (1)(1.11) SiK Radio v2(一)
  • (12)目标检测_SSD基于pytorch搭建代码
  • (3)STL算法之搜索
  • (编译到47%失败)to be deleted
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • (转)setTimeout 和 setInterval 的区别
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • ***检测工具之RKHunter AIDE
  • .CSS-hover 的解释
  • .NET Core 中插件式开发实现
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能