司若辰基于MATLAB的地图投影设计概要_第1页
司若辰基于MATLAB的地图投影设计概要_第2页
免费预览已结束,剩余46页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学号 200631130015密级_武汉大学本科毕业论文基于 MatLab 的地图投影设计院(系)名称:资源与环境科学学院 专业名称:地理信息系统 学生姓名:司若辰 指导教师:李连营ACHELOR DEGREE THESISOF WUHAN UNIVERSITYMap Projectio n Desig nBased On MatlabCollege :School of Resource and EnvironmentalScie neeSubject :Geographic In formatio n SystemName :Si RuochenDirected by :Li Lia ny

2、ingJune 2010本人签名:日期:郑重声明本人呈交的学位论文,是在导师的指导下,独立进行研究工作所 取得的成果,所有数据、图片资料真实可靠。尽我所知,除文中已经 注明引用的内容外,本学位论文的研究成果不包含他人享有著作权的 内容。对本论文所涉及的研究工作做出贡献的其他个人和集体,均已 在文中以明确的方式标明。本学位论文的知识产权归属于培养单位。I地图投影是绘制地图重要的数学基础,没有地图投影,地图就失去了可量算 性这一重要性质,地图也就成为了一幅普通的图画,失去了实用价值。然而,与 地图投影相伴而来的往往是复杂的投影公式和繁琐的计算过程。好在,近年来计 算机技术的突飞猛进,地图投影已经可

3、以通过计算机程序自动实现,从而把地图 投影从繁重的计算工作中解放出来。现在有许多计算机软件都能进行地图投影的 相关工作,而MATLAB(若无特别说明,本文中提到的MATLAB版本均为MATLAB7.6R2008)凭借其出众的矩阵计算和绘图能力成为了处理地图投影问题的 佼佼者。本文就将探讨运用MATLA软件来处理地图投影相关问题的方法。本文的研究内容主要包括以下四个方面:1、 挖掘MATLA的相关功能,研究如何运用MATLA实现常用地图投影的显示,对投影参数进行控制,用变形椭圆和等变形线来反映投影变形,以及在投影上绘 制大圆航线和等角航线;2、 在MATLA环境下自定义投影;3、 在MATLA环

4、境下探索适合中国及湖北省的地图投影;4、 研究在MATLA酥境下,运用投影的方法,来实现变比例尺地图(哈哈镜 地图)。关键词:地图投影MATLAB中国地图 变比例尺地图iiABSTRACTMap project ion is an importa nt mathmatical fun dati on on making a map,withoutwhich a map will be unmeasurable and lose its practical value. The formulas dealing withmap projection are usually too complex

5、 to caculate for man. Thanks to the rapiddevelopment of computer sienee, we can leave the heavy caculations to computers.There are many computer software that can solve map projection problems, andMATLAB(The edition of MATLAB is MATLAB7.6R2008a without special announcement)stands out from all these

6、softwares becauseof its strong abilities on caculati ng matrixesand draw ing pictures. This paper will discuss the method to solve map projectio nproblems with MATLAB.The study aspects in this paper in cludes:1、Study the basic functions relating to map projection,like how to show maps under a specif

7、ic projectio n in MATLAB, how to set projectio n parameters, how to showdistortio ns via tissot and distortio n con tours and how to show great circle routes andrhumb routes on maps;2、Define new projections in MATLAB;3、Using appropriate projections to make Chinese map and HuBei Province map;4、Make v

8、ariable scale map in MATLALB, based on projection theory.Key words:map projection; MATLAB; Chinese map; variable scale map3第 1 1 章绪论.11.1地图投影相关背景.11.1.1地图投影定义.11.1.2地图投影分类.11.1.3我国地图投影学的发展 .21.2本文的研究内容.2第 2 2 章 MATLABMATLAB 的地图投影系统构架.42.1 MATLAB简介.42.2 MATLAB与地图投影的联系.42.3系统构架.6第 3 3 章地图投影的基本应用研究.93.

9、1在MATLAB选择投影看世界.93.2投影参数的控制.103.2.1投影参数.103.2.2边框与网格参数.153.3投影变形.173.3.1变形椭圆 .173.3.2等变形线.193.4大圆航线与等角航线.213.5自定义投影 .24第 4 4 章适合区域特点的地图投影研究 .314.1数据准备.314.2适合中国地图的投影 .314.2.1正轴等角割圆锥投影.314.2.2斜轴伪方位投影.324.3适合湖北省的投影.34第 5 5 章变比例尺地图投影.365.1运用投影解决变比例尺地图的理论方法 .365.2基于投影思想的变比例尺地图在MATLA下的实现.37第 6 6 章实验分析.42

10、6.1可视化界面创建.426.2控件的使用.436.3编写回调函数.466.4系统性能评测.4746.4.1基本投影系统性能评测.47642变比例尺投影系统性能评测 .50第 7 7 章总结与展望.52参考文献.55致谢.561第1章绪论1.1地图投影相关背景1.1.1地图投影定义众所周知,地球表面是一个不规则的曲面,地球椭球面和地球球面也都是不 可展曲面。要把不可展曲面上的图形信息映在地图平面上,就需要运用到地图投 影,这也是地图投影的主要矛盾。从广义的角度看,所谓地图投影,就是建立平 面上的点(用平面直角坐标或极坐标表示)和地球表面上的点(用纬度和经度表 示)之间的函数关系,用数学式表示即

11、为:(y二以PA)1.1.2地图投影分类地图投影可以依据其外在和内在的特征来进行分类。前者表现在投影平面上 经纬线投影的形状上;后者则表现在投影内含的变形性质上。地图投影按经纬线形状分类可分为圆柱投影、圆锥投影、方位投影、伪圆柱 投影、伪圆锥投影、伪方位投影和多圆锥投影七种,它们各自的特点如下表1.1-1表1.1-1按经纬线形状进行的投影分类投影种类经线形状纬线形状限定特征圆柱投影平等直线平等直线经纬线正交圆锥投影直线束同心圆弧经线间隔相等,交 于纬线圆心方位投影直线束同心圆经线夹角等于经 差,交于纬线圆心伪圆柱投影对称曲线平等直线伪圆锥投影对称曲线同心圆弧伪方位投影对称曲线同心圆多圆锥投影对

12、称曲线同轴圆弧以上七种投影按投影轴与地球的位置关系不同,还可细分为正轴、斜轴和横 轴投影;按投影面与地球的位置关系可细分为切投影和割投影。2地图投影按变形性质分类可分为等角投影、等距离投影、等面积投影和任意 投影。前三者分别在角度、沿纬线方向的距离、面积上变形为零,任意投影不具 备前三种投影中的任何一种性质。1.1.3我国地图投影学的发展地图投影是地图重要的数学基础,也是地图制图学的重要组成部分,在我国 地图制图学发展中也处于较为领先的地位。我国地图投影的发展主要集中在建国后的三十年。建国初期及二十世纪五十年代期间,我国的地图投影学科以引进和学习为主。在此期间译制的国外教材和专著包括 数学制图

13、学、数学制图学实习材料、地 图投影法等。同时,我国方俊教授出版的地图投影学也成为当时地图投影 领域重要的文献资料。五十年代后期,我国的学术期刊测绘学报、测绘通报、测绘译丛等 都刊登了许多地图投影方面的文章,为我国地图投影的发展起了积极作用。同时, 我国一些测绘类院校也陆续出版了数学制图学、地图投影等书籍,对提高 地图投影学科教学质量作出了不小的贡献。从五十年代后期到七十年代末,我国的地图投影研究者们在地图投影理论和 实践应用方面都取得了好的成果,一批相关论文和专著也随之出版发表,使我国 地图投影学科有了全面而深远的发展。近十几年来,变比例尺地图投影也逐渐成为人们研究的热点。1.2本文的研究内容

14、传统的手工地图投影计算及展绘工作费时费力,现在随着计算机技术的飞速 发展,地图制图工作也已经由传统的手绘方式转向更高效的计算机制图,然而计 算机环境下的地图投影方面问题却鲜有人研究,相关的文献也不多,仅有的一些 相关文献也是十几年前的“古董”,现势性不强。本文将研究把当今工程设计中十分流行的软件MATLAB应用到地图投影领域,以提高地图投影研究及应用的效率。本文将基于以下四个方面进行研究:1、MATLAB下地图投影的基本应用。研究在MATLAB环境下处理基本的地3图投影问题,如投影的选择,投影参数的设置,投影变形的显示,大圆航线和等 角航线在投影中的应用等;2、自定义投影。在MATLAB中编写

15、投影公式,定义新的投影;3、适合区域特点的地图投影研究。研究适合中国和湖北省区域特点的地图投 影;4、变比例尺地图投影。研究具有将地图特定部分以夸张方式显示特性的变比 例尺地图投影。4第2章MATLAB的地图投影系统构架2.1 MATLAB简介MATLAB最早是在20世纪70年代由美国新墨西哥大学计算机科学系主任Cleve Moler为了减轻学生编程的负担而编写的,并由MathWorks公司于1984年 正式推向市场。经过几十年的发展,MATLAB已成为国际控制界的标准计算软件,在信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计 算生物学等众多领域得到了广泛的应用。MATL

16、AB中数据的基本单位是矩阵,这与数学、工程中所使用的形式十分相 似,因此,用MATLAB解算问题也就比用C、FORTRAN等其它语言更加方便。MATLAB软件具有以下特点:1、可用于技术计算;2、可对代码、数据和文件进行管理;3、交互式工具可以按迭代的方式探查、设计及求解问题;4、数学函数可用于解决线性代数、统计、筛选、优化、数值积分、傅里叶分析等方面问题;5、二维、三维绘图功能可用于数据的可视化;6有各种工具来构建自定义的图形用户界面;7、 支持将基于MATLAB的算法与外部应用程序和语言(如C、C+、JAVA、FORTRAN等)的集成;8、不支持大写输入,内核仅支持小写。2.2 MATLA

17、B与地图投影的联系地图投影工作中最重要的两部分就是计算和绘图。大多数软件无法在这两方 面都做得比较出色。例如C、C+等语言软件虽然可以用来编程对地图投影进行自 动计算,但绘图能力不强,而且代码比较复杂,需要较高的编程能力;而CORELDRAW这样的图形软件虽然绘图能力出众,但是完全没有数值计算能力,也不能 用于地图投影。5和其它软件相比,MATLAB在计算和绘图两方面的功能都很强大。在计算方面,MATLAB包含了大量计算算法,拥有600多个工程中要用到的 数学运算函数。这些函数包含了从简单的基本函数到诸如矩阵、向量、傅里叶变 换这样的复杂函数,可以方便的实现用户所需的各种计算功能。函数中所使用

18、的 算法都是前沿研究成果,且都经过了各种优化和容错处理。MATLAB可以用来代替像C、C+这样的底层语言,而且使用MATLAB还可以大大减少编程的工作量。在绘图方面,MATLAB具有方便的数据可视化功能,可以将向量和矩阵用图 形表现出来。MATLAB还能进行二维及三维可视化、图像处理、动画和表达式作 图。与老版本相比,新版本的MATLAB在图形处理功能有了很大的改进和完善, 不仅完善了原有功能,还添加了图形光照处理、色度处理、四维数据的表现等其 它软件没有的功能。同时,MATLAB还支持图形对话这样的特殊可视化要求。新 版MATLAB在图形用户界面上也做了很大改善,更加方便用户使用。除此之外,

19、MATLAB还具有以下优势:1、友好的工作界面MATLAB中包含了一列工具,如MATLAB桌面、命令窗口、历史窗口、编 辑器、调试器、 路径搜索和浏览器。 这些工具中许多都是采用的图形用户界面,方便用户使用MATLAB中的函数和文件。随着MATLAB的发展和不断升级,其 用户界面也越来越精制,越来越接近WINDOWS的标准界面,人机交互性更强, 操作更简便。2、简单的程序语言MATLAB是一个高级的矩阵语言,具有控制语句、函数、数据结构、输入输 出和面向对象的编程特点。用户既可以在命令窗口中输入语句同步执行命令,也 可以先将程序编写成一个M文件后再运行。新版本的MATLAB是基于C+语言 基础

20、上开发的,因此其语法特点与C+类似,并且使用比C+更方便简单,更加 符合科技人员对数学表达式的书写方式,即使是非计算机专业人员也能很快掌握 使用。另外,MATLAB语言可移植性好,拓展性强,使之能够深入到科学研究及 工程应用的各个领域。3、实用的工具箱MATLAB中包含了许多针对专门领域的功能强大的工具箱。MATLAB中的工 具箱种类多样,有用于小波分析的,有用于信号处理的,有用于仿真的等等,当 然也有解决地图投影问题需要用到的地图工具箱。这些工具箱一般是由特定领域 的专家开发的,用户可以直接使用工具箱来解决相应问题,而不再需要自己从底 层开始编写程序代码。6既能计算又能绘图,而且使用简单方便

21、,MATLAB的确是处理地图投影问题 的好工具。2.3系统构架本次设计拟设计两个系统:基本投影系统和变比例尺投影系统。基本投影系统计划实现以下地图投影的基本功能:1、用常用的地图投影显示地图;2、对基本投影参数进行控制;3、用等变形线和变形椭圆显示投影变形;4、在地图上绘制大圆航线和等角航线;5、查看当前投影的详细信息;6用合适的默认方式显示中国地图和湖北省地图。其系统框架图如下图2.3-1。7图2.3-1基本投影系统框架图变比例尺投影系统计划实现三个功能:1、设置比例尺差别程度;2、 设置地图显示方式(中心放大、中心缩小及正常显示);3、设置地图显示的中心位置。其系统框架图如下图2.3-2。

22、开始选择地图数据选择投影默认方式显示湖北省地投影参数设置变形椭圆和等变形线设置投影信息显示设置大圆与等角航线设置地图显示8图2.3-2变比例尺投影系统框架图9第3章 地图投影的基本应用研究3.1在MATLAB选择投影看世界MATLAB地图工具箱中提供的投影包含了圆柱、圆锥、方位、伪圆柱、伪圆 锥、伪方位、多圆锥等各类型投影共计72个。对于这72种投影,用户可以直接使用。在MATLAB命令窗口中输入命令maps,即可得到这72种投影的详细信息(如图3.1-1)。 ntapsMapTools Projectionshasart CylindricalbalthsrtEehrmarut Cylind

23、ricalbehrmannBolshoi Sovietskii At lasMira*bsanEraun Perspective Cylindrical*Cassini Cylindrical-StandardCassini Cylindrical图3.1-1 MATLAB支持的地图投影信息设置投影方式要用到axesm函数。它的功能是创建一个基于地图数据结构的 地图坐标系(通常为平面直角坐标系),用来显示地图。MATLAB中地图坐标系的 所有属性都由axes以及get和set函数控制。地图坐标系的属性值由axesm函数在 坐标创建时定义,并可以通过getm和setm对其特性进行查询和修改。ax

24、esm函数使用格式如下:axesm投影名称,属性名称,属性值,,)其中投影名称为MATLAB提供的72种投影名称的简写,即图2-1中的“ID STRING”一列。属性一次可以设置多个,未设置的将按MATLAB默认方式处理。 关于属性的设置将在本章第二节做详细说明。下面让我们用一个例子来看看如何在MATLAB中使用地图投影来显示地图信 息。首先,加载地图数据。在MATLAB命令窗口中输入以下命令完成世界地图数 据的加载:Ian dareas = shaperead(la ndareas.shp,UseGeoCoords,true);然后,用axesm函数选择投影方式:CLASSNAMEID ST

25、RINGCylindricalCylindricalCylindricalCylindricalCylindricalCylindricalbr auncassinist dcassini10axesm (mercator, Frame, on, Grid, on);最后,用geoshow函数显示地图:geoshow(la ndareas);结果为墨卡托投影下的世界地图,如图3.1-2。图3.1-2墨卡托投影下的世界地图3.2投影参数的控制3.2.1投影参数投影参数是控制地图投影的范围、方向、变形分布等属性的一系列变量。在同样一种投影下,如果投影参数不同,地图的显示效果也会不同。MATLAB中

26、对投影参数的控制主要也是通过axesm函数实现的,操作方法很 简单,只需在投影名称后加上要设置的参数名称及参数值即可。例如在MATLAB命令窗口输入以下命令即可得到图3.2-1。Ian dareas = shaperead(la ndareas.shp,UseGeoCoords,true);axesm (mercator, MapLatLimit,-10 80,M apLon Limit,0 180,Frame, o n, Grid,11o n);geoshow(la ndareas);这个例子对投影显示范围进行了设置,使地图只显示南纬10度到北纬80度及东经0度到东经180度范围内的内容。图

27、3.2-1投影范围的设置效果MATLAB支持的地图投影参数主要有以下几种。1、AngleUnits角度单位,用于在角度和弧度之间切换地图坐标系中角度(包括纬度和经度) 的单位。其默认值是degree?(角度)。2、Aspect投影方位,控制地图投影的基本方向。命ormal?是其默认值,此时地图投影中的北方向向上,如图3.2-2;而在?ransverse方向下的投影,北方向向右,如图3.2-312图3.2-2北方向上图3.2-3北方向右3、FalseEasting该参数会对地图投影值在水平方向做整体平移,以确保某些地图投影中的值 非负。例如在通用横轴墨卡托投影中,该参数常被设为500000米。4

28、、FalseNorthing与上一个参数功能类似,不过它是将地图投影值在竖直方向上做整体平移, 同样是为了确保地图投影的值非负。在通用横轴墨卡托投影中,对于南半球地区, 该参数常被设为10000000米。5、MapLatLimit用该参数可以设置地图纬度方向的显示范围。 对大多数投影来说, 可以显示 可以达到-901390,而对于某些投影,如lambert投影,由于靠近南极地区形变无穷 大,其显示范围不能达到-90度(具体程度随其标准纬线不同而不同)。6 MapLonLimit该参数是用来控制地图经线方向的显示范围。 对于大多数投影, 显示范围可 以达到-180180,而对于某些投影,如横轴方

29、位投影,最多只能显示经差180度以内的内容。7、Map Parallels该参数的作用是设置地图投影的标准纬线。图3.2-4和图3.2-5均为lambert投影,前者标准纬线为系统默认的15度和75度(割圆锥投影),后者标准纬线设 置为45度(切圆锥投影)。从两幅图的等变形线可能看出标准纬线改变后投影形 变分布的明显不同。图3.2-4标准纬线为15度和75度的lambert投影图3.2-5标准纬线为45度的lambert投影需要注意的是虽然理论上可以对几乎所有投影设置标准纬,但MATLAB中可14以设置标准纬线的地图投影并不多,一般只能对圆锥投影,如lambert投影,设置标准纬线。其它投影则

30、采用MATLAB默认的标准纬线,不能更改。用户可以先对 投影信息进行查询进而了解所用的投影能否设置标准纬线。例如在MATLAB命令窗口输入以下命令:h=axesm(mercator);getm(h, nparallels)得到结果为:ans =1nparallels表示投影可设置的标准纬线数量。MATLAB只支持对nparallels值为1或2的投影设置标准纬线,对值为0的投影设置标准纬线无效。8、Origin该参数为一个三维向量latitude Iongitude orientation, latitude和Iongitude控制 投影中心位置,orientation控制投影的北方向的旋转。

31、例如在MATLAB命令窗口输入以下命令:Ian dareas = shaperead(la ndareas.shp,UseGeoCoords,true);axesm (mercator, Origin,30 60 30,Frame, on, Grid, on);geoshow(la ndareas)得到的结果投影中心为北纬30度,东经60度,北极方向与竖直方向夹角为30度,如图3.2-6。需要注意的是,该参数不适用于圆锥投影。另外,设置了该参数后,MapLatLimit和MapLonLimit就不起作用了。15图3.2-6投影中心及北方向的设置效果322边框与网格参数MATLAB中除了可以对地

32、图投影的参数进行设置,还可以对地图边框和网格 进行控制。常用的参数有以下几种:1、Frame用于控制地图边框的开关。2、FedgeColor用于控制地图边框的边线颜色。3、FfaceColor用于控制地图边框的填充色。4、Grid16用于控制地图网格(经纬线)的开关。5、Gcolor用于控制地图网格的颜色6 MeridianLabel用于控制网格纬度注记的开关。7、ParallelLabel用于控制网格经度注记的开关。8、MlabelParallel用于控制经度注记的显示位置。9、PlabelMeridian用于控制纬度注记的显示位置。10、MlabelLocation用于控制经度注记的间隔。

33、例如在MATLAB窗口输入以下命令:axesm(Mapproject ion ,mercator,Grid, on ,Frame, on,FedgeColor,r,FfaceColor,.9.91,Gcolor,b,MlabelParallel,south,PlabelMeridian,west,mlabellocation,60,meridianlabel,on, parallellabel,on)结果如图3.2-7。17100 W 120* W 60* W CfE U0 E 180* E图3.2-7网格及边框的设置效果3.3投影变形地球表面是一个不规则的曲面,即使把它一个椭球面或球面,也都

34、是不可展 面。因此,要把这样的不可展面表现致电平面上,就会不可避免地产生变形,即 投影变形。不同的投影投影有着不同的变形特征,按这些不同的变形特征可以把 地图投影分为等角投影、等距离投影、等面积投影和任意投影这四大类。了解投 影变形的方法主要是通过变形椭圆和等变形线。3.3.1变形椭圆为了了解投影变形的特征,我们先在投影前地球表面等间隔地设置一系列微 分圆。投影后,这些微分圆将呈现为一系列大小、形状、方向不同的微分椭圆。根据这些微分椭圆的不同形态就反映了投影变形的不同特征。等角投影的变形椭 圆表现为圆形, 等距离投影的变形椭圆在纬线方向上圆心间距相等, 等面积投影 的各个变形椭圆面积相等。该方

35、法是在19世纪由法国数学家尼古拉斯底索(Nicolas Tissot)提出的。于是在国外,变形椭圆被称为Tissot in dicatrices,以纪念这位伟大 的数学家。MATLAB地图工具箱也为我们提供了显示变形椭圆的功能,用户可以通过命18令tissot?来显示变形椭圆,用命令応Imo tissot?消肖除变形椭圆。例如在MATLAB命 令窗口输入以下命令:Ian dareas = shaperead(la ndareas.shp,UseGeoCoords,true);axesm (mercator,Frame, on, Grid, on);geoshow(la ndareas)tiss

36、ot如图3.3-1,图中变形椭圆均为圆形,说明了墨卡托投影的变形性质是等角投 影;变形椭圆沿纬线方向间距不相等,说明它不是等距离投影;变形椭圆大小不 同,说明墨卡托投影不是等面积投影。图3.3-2为balthsrt投影,它的变形椭圆既不是圆形,沿纬线方向间距也不相 等,说明它既不是等角投影,也不是等距离投影。但所有的变形椭圆大小都相等,说明该投影是等面积性质的投影。19图3.3-2 balthsrt投影及其变形椭圆在默认状态下,变形椭圆沿经线和纬线方向的间隔都是30度,微分圆半径为0.1,每个椭圆由100个点构成,显示为蓝色。这些参数是可以进行人为设置的。我们先将上面图3.3-1中原有的变形椭

37、圆去掉,输入命令:clmo tissot再输入以下命令将变形椭圆沿经线和纬线方向的间距都改为20度,微分圆半径改为0.05(较原来缩小一半),每个变形椭圆由20个点构成,用红色显示:图3.3-1墨卡托投影及其变形椭圆)map-mapproj文件夹下的maplist.m文件中注册新投影。打开maplist.m,仿照已有投影的注册格式添加新投影,如要添加一个名 为?MyCylnArea ?的等面积圆柱投影,只需在maplist.m文件的最下方添加以下语句 然后保存文件:i=i+1;list(i).ldStri ng= MyCyl nArea;list(i).CIassificati on = Cy

38、li ndrical; list(i).Name= MyCyl nArea*;list(i).ClassCode = Cyl n;运行该文件会得到以下结果:ans =1x73 struct array with fields:IdStri ngClassificati onName为曲线图3.4-4球心投影下的大圆航线图3.4-5球心投影下的大圆航线27ClassCode结果显示有73条记录,比MATLAB自带的72个投影多一个,说明刚才添加 的新投影已经成功注册。2、编写投影文件。创建一个新的m文件,在其中写入投影公式,格式可以参考toolbox-map-mapproj文件夹下已有的投影文件

39、。写好后将文件保存在toolbox-map-mapproj文件夹下即可。以上两步顺序可以调换,完成这两步操作后新投影就可以使用了,使用方法和MATLAB中自带投影的使用方法完全相同。我用该方法自定义了涉及圆锥、圆柱、方位、伪方位、伪圆柱这五类的七个 投影。1、等距离圆锥投影投影公式:x=rho*s in( theta)y=rhoO-rho*cos(theta)其中rho=R*(G-phi)theta=n *(lambda-lambda0)rho0=R*(G-phi0)G=cos(phi1)/n+phi1n=(cos(phi1)-cos(phi2)/(phi2-phi1)式中lambda。、ph

40、i0为投影中心,phi1、phi2为标准纬线。结果如图3.5-1。28图3.5-1自定义等距离圆锥投影2、等面积圆柱投影投影公式:x=R(lambda-lambdaO)cos(phi_s)y=Rs in( phi)/cos(phi_s)式中lambdaO为中央经线,phi_s为标准纬线。结果如图3.5-2图3.5-2自定义等面积圆柱投影3、等角方位投影 投影公式:x=rho*cos(theta) y=rho*s in( theta) rho=2*ta n(z/2)theta=a29式中z为天顶距,a为方位角。结果如图3.5-3图3.5-2自定义等角方位投影4、伪方位投影投影公式:x=rho*c

41、os(theta)y=rho*s in( theta)第一种伪方位投影中,rho=ztheta=a+0.005308/0.453786*z*si n(3*(15+a)第二种伪方位投影中,rho=ztheta=a-0.1*z/(2*pi/3)*si n(2*a)式中z为天顶距,a为方位角。第一种投影很适合用作中国地图投影,在下一 章中将作详细介绍;第二种投影等变形线像一颗花生,比较贴合大西洋的轮廓,30因此适用于“大西洋图”。这两种投影的结果分别如图3.5-4和图3.5-5。5、伪圆柱投影(1) 乌尔马耶夫任意伪圆柱投影投影公式:x=R*(psi/(a*b)+K*ps i3/(3*a*b)y=R

42、*a*lambda*cos(psi)sin( psi)=b*cos(phi)式中a b、K为常数,当取a=0.8773826, b=0.8,K=0.414524时,结果如图3.5-6。(2) 种可调节经纬线间隔的伪圆柱投影投影公式:x=R*(phi+a*phi3)y=R*(1-b*phi2)*(c-d*lambda3)*lambda调节系数a、b、c、d可以改变经纬线间隔,当取a=1/12 , b=0.162338, c=0.87,d=0.000952426时,结果如图3.5-7。31图3.5-4适合中国地图的自定义伪方位投影32$1z1乜r9图3.5-5适合大西洋地图的自定义伪方位投影33图

43、3.5-6乌尔马耶夫任意伪圆柱投影图3.5-7可调节经纬线间隔的伪圆柱投影34第4章适合区域特点的地图投影研究4.1数据准备由于MATLAB中没有现成的中国地图和湖北省地图的数据,因此先要下载相应的数据。网上的免费数据很多,我的中国地图数据下载自国家基础地理信息系 统网(http:/nfgis. 湖北省数据下载自Csd n网(http:/ 数据组成。需要注意的是,在MATLAB中读取下载的数据时要包含数据的完整路径,不 能像读取MATLAB自带文件时那样只用文件名,否则无法找到文件。例如使用MATLAB自带的Iandarea.shp文件时只需用data=shaperead(andarea.sh

44、p)即可,而 使用下载的文件时则要使用完整路径data=shapereadD:My bou2_4l.shp?,即使将下载文件与MATLAB自带文件放 在同一目录下也必须使用完整路径。4.2适合中国地图的投影4.2.1正轴等角割圆锥投影中国地图投影在将南海诸岛作插图处理时主图一般采用正轴等角割圆锥投影,两条标准纬线一般为phi仁25度,phi2=47度。附图中南海诸岛接近赤道,纬 度较低,可采用正轴圆柱投影。这里就直接用MATLAB中提供的lambert投影作为主图投影,mercator投影作为附图投影。制图代码及注解如下:land = shaperead(D:My Docume ntsMATL

45、ABdatabou2_4p.shp,UseGeoCoords, true);%读取省界数据bou nd=shaperead(D:MyDocume ntsMATLABdatabou2_4l.shp,UseGeoCoords, true);%读取国界数据h1= axesm(lambert,m aplatlim,15 55,m aplo nlim,70140,m apparallels,253547); %设置主图投影参数tightmap;geoshow(la nd,facecolor,1 1 .4);geoshow(bo un d);h2 = axes(pos,.7 .2 .2 .2);%添加附图

46、并设置其位置和大小axesm(mercator,m aplatlim,0 22,m aplo nlim,100 120); %设置附图投影参数axis autogeoshow(la nd,facecolor,1 1 .4);geoshow(bo un d);由于该图有两个图形显示窗口,每个窗口中要显示两套数据,因此等待时间要稍长一些。结果如图4.2-1(等变形线表示的是距离变形)。图4.2-1正轴等角割圆锥投影下的中国地图4.2.2斜轴伪方位投影中国全图投影(南海诸岛不作插图处理)可采用斜轴伪方位投影,投影中心为phi0=35度,lambda0=105度。MATLAB中没有提供适合中国地图的伪

47、方位投影,因此要自定义适合中国地图的伪方位投影。36伪方位投影的一般公式为x=rho*cos(theta)y=rho*s in( theta)rho=f1(z)theta=f2(z,a)式中z为天顶距,a为方位角。以选定的投影区域中某点为原点,投影中的极角具有以下函数形式:theta=a-c*(z/z n)q*si n(K*a)式中c、q、K、zn为参数。zn是制图区域中心到最远边界的天顶距。K决定投影网对称轴个数。参数q和c可在使等变形线与区域轮廓近似一致的条件下计 算得到。对于中国全图而言,取rho=R*z,即近似于方位投影中的等距离投影(但在伪 方位投影中不保持等距离)。令R=1,可解得

48、面积变形公式为:P= z/si n(z)*(1-K*c* (z/ zn )q*cos(K*a)中国疆域的外轮廓在西北、东北和南海是三个向外突出的方向,它们之间则 是三个凹进去的方向,每两个突出方向间的夹角近似为120度,因此取K值为3。由投影中心为北纬35度,东经105度估算得zn约为26度。为使边缘角度变形不 致太大,取q=1。设凹进处a=0度,则突出处a=60度,凹进处z估计为14度,令 区域轮廓凸出与凹进点面积变形相等,代入面积变形公式,有14/si n(14)*(1-3*c*14/36*cos(0)=26/si n( 26)*(1-3*c*26/26*cos(180)解得c=-0.00

49、5308。为使等变形线向中国区域轮廓形状近一步逼近,计算theta时,可将方向角a加上15度。最后得到适合制作中国全国的方位投影为:x=rho*cos(theta)y=rho*s in( theta)rho=ztheta=a+0.005308/0.453786*z*si n(3*(15+a)在MATLAB中将该投影命名为ProjectionForChina,简称PFC。用该投影制作37中国全图的代码如下:UseGeoCoords, true);bou nd=shaperead(D:MyDocume ntsMATLABdatabou2_4l.shp,UseGeoCoords, true);h1=

50、 axesm(PFC,maplatlim,15 55,maplonlim,70 140,origin,35 105 0);geoshow(la nd,facecolor,1 1 .5);geoshow(bo un d);结果如图4.2-2(等变形线表示面积变形)。4.3适合湖北省的投影湖北省处于中纬度地区,面积18.59万平方公里,在投影选择上属于“不大的” 区域,适宜采用正轴等角割圆锥投影。这里采用lambert投影,标准纬线为phi1=30.5度,phi2=32度。制图代码如下:data=shaperead(D:My湖北省.shp, UseGeoCoords,true);h=axesm(l

51、ambert,maplatlim,28.733.4,maplo nlim,107.9116.7,mapparallels,30.5 32);tightmap;geoshow(data)结果如图4.3-1。landshaperead(D:MyDocume ntsMATLABdatabou2_4p.shp,38图4.2-2伪方位投影下的中国地图图4.3-1正轴等角割圆锥投影下的湖北省地图39第5章变比例尺地图投影5.1运用投影解决变比例尺地图的理论方法Muller曾提出,人类的空间推理是以一种有序的方式对思维对象进行各种层 次的抽象,以便使自己既看清了细节,又不被支节问题干扰了主干。这就要求图 面重点地区详细表示而将要部分要适当压缩。变比例尺地图正好可以满足这一要 求。变比例尺地图有一种“哈哈镜”效果,可以将地图中感兴趣的部分以某种夸 张的方式表现出来,达到提高地图信息载负量和优化地图可视化效果的目的。为 较好解决可视化空间拥挤问题,Fairbairn提出了从城市中心到边缘地区呈线性降低 比例尺的可视化方法。Harrie针对移动制图的需求,基于坐标变换思想系统地研究 了变比例尺可视化的变形问题。王桥

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论