ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:121.94KB ,
资源ID:9835106      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9835106.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(MATLAB绘制地图.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

MATLAB绘制地图.docx

1、MATLAB绘制地图1使用向量绘制地图1.1绘制全球海岸线向量数据可以表示一个地图。这种向量存在的形式是一系列的经纬度或投影坐标对,它们代表一个点集、一个线条或者多边形。例如,描绘出行政区域边界的点、公路系统、城市的中心或者以上三个集合放在一起,都可以被用于绘制地图。在这种表示中,地理数据以向量格式存在,以它为基础绘制的地图被称作向量地图。 在地图工具箱环境中,向量数据包含一系列的有序的地理(经纬度)或投影(x,y)坐标对(又被称作二元组)。相继的数对被认为按顺序连接,间断点可以这样处理:构造另一个独立的向量,或者在点集的每个断点处插入一个分隔符号(通常是NaN,意思是Not-a-Number

2、)。下面看一个向量地图数据的例子。绘制全球海岸线键入命令:load coast 载入数据,数据是海岸线whos 显示当前工作空间中的变量列表屏幕显示:Name Size Bytes Class Attributes lat 9865x1 78920 double long 9865x1 78920 double 键入命令: axesm mercator framem plotm(lat,long) lat(1:20) long(1:20)可看到数据的地图1.2查看向量坐标的数据键入命令: lat(20:40) long(20:40)屏幕显示:ans = -80.9200 -146.5000 -

3、80.6700 -145.5000 -80.3300 -148.0000 -80.0000 -150.0000 -79.6700 -152.5000 -79.2500 -155.0000 -78.8300 -157.0000 -78.7478 -157.2554 -78.6654 -157.5072 -78.5828 -157.7554 -78.5000 -158.0000 -78.4806 -157.6658 -78.4608 -157.3327 -78.4406 -157.0008 -78.4200 -156.6700 -78.5000 -154.5000 -78.1700 -154.50

4、00 -78.1700 -154.5000 -78.0800 -156.6700 -77.8300 -158.0000 -77.5000 -158.33001.3修改颜色这有没有提示你这些地点代表哪个大陆的海岸线?为了看见这些向量点代表的海岸线,键入下面的命令将其显示为黄色:键入命令plotm(lat(20:40),long(20:40),y)2点、线和多边形它们代表着地理要素。向量地理数据可以用来代表点要素(例如城市和路标)、线要素(例如河流和公路)和面要素(或者说多边形,例如湖泊)。在下一节,我们结合地理数据结构体来说明它们之间的区别3地理数据结构体在上面的例子中,地理数据是以简单的向量的

5、形式存在的。但是通常,我们会有一系列的地理要素(例如一系列的河流),而每个要素都有自己的属性(例如每个河流都有自己的长度),为了方便对地理数据的操作,MATLAB将数据打包成地理数据结构体(geographicdatastructures)。一个地理数据结构体是一个MATLAB结构体数组,其中每个元素对应着一个地理要素。每一个要素由坐标和属性来表示。一个具有地理坐标(也就是经纬度)的地理数据结构体被称作geostruct;具有地图坐标(投影后的x和y)的结构体被称作mapstruct。地理数据结构体只能用于向量数据,不能被用于处理栅格数据。地理数据结构体通常在从shapefile中导入向量地理

6、数据的时候产生。简单地说,地理地理数据结构体将地理要素的空间位置信息和属性数据打包在了一个变量中。4.绘制世界地图的例子wm=worldmap(world); 其投影方式以及经纬度范围自动适应全球的区域land=shaperead(landareas,UseGeoCoords,true); 读取相应的shapefile文件到工作空间中,landareas中是polygon类型的数据geoshow(wm,land,FaceColor,0.5 0.7 0.5); 绘制地图lakes=shaperead(worldlakes,UseGeoCoords,true); 读取世界河流数据geoshow(l

7、akes,FaceColor,blue); 显示河流rivers=shaperead(worldrivers,UseGeoCoords,true); geoshow(rivers,Color,blue); cities=shaperead(worldcities,UseGeoCoords,true); geoshow(cities,Marker,.,Color,red);5使用栅格数据绘制地图5.1参考矩阵栅格地理数据包括空间参考的数据网格和图像,它们在matlab中以矩阵的形式存在。尽管栅格地理数据看起来与其他实数矩阵一样,但是其不同在于它与空间位置相关。每一个数据像素占据地球上一个已知的区

8、域块。那么如何把矩阵某个元素的行列位置与其对应的经纬度联系起来呢?在这里,我们首先统一符号:long经度lat纬度row行数col列数long11矩阵第一行第一列元素lat11矩阵第一行第一列元素dlong相邻两列的经度差dlat相邻两行的纬度差栅格地理数据包括空间参考的数据网格和图像,它们在matlab中以矩阵的形式存在。尽管栅格地理数据看起来与其他实数矩阵一样,但是其不同在于它与空间位置相关。每一个数据像素占据地球上一个已知的区域块。那么如何把矩阵某个元素的行列位置与其对应的经纬度联系起来呢在以下的叙述中,我们规定,矩阵的每一行对应相同的纬度,每一列对应着相同的经度。 如何根据矩阵中某个元

9、素的行数和列数来计算其对应的经度呢?很自然地,用下面的方法来计算: long = long11+(col-1)dlong = coldlong+long11-dlong 类似地,用下式根据某个元素的行数和列数来计算其对应的纬度: lat=lat11+(row-1)dlat=rowdlat+lat11-dlat 把上面的两个式子写成矩阵的形式就是 0dlalong,lat=row,col,1dlong=(0 dlat;dlong o;long11-dlong lat11-dlat)我们把最后面的那个3*2矩阵叫做参考矩阵,也就是说只要知道了参考矩阵,就可以在矩阵元素的行列号和其对应的经纬度之间转

10、换。把参考矩阵写成R,上式就简化为: long,lat=row,col,1*R在Mapping工具箱中,可以用函数makerefmat来获得参考矩阵。其调用:R=makerefmat(lon11,lat11,dlong,dlat)其中long11是矩阵第(1,1)个元素的经度,lat11是矩阵第(1,1)个元素的纬度。dlong是矩阵相邻两列间后一列相对于前一列的经度变化,dlat是矩阵相邻两行间后一行相对于前一行的纬度的变化。例如在matlab命令窗口输入:R=makerefmat(5,10,3,4)函数makerefmat还可以以下方式调用。在命令窗口输入:R=makerefmat(Ras

11、terSize,20,20,Latlim,30,50,Lonlim,10,30)其中20,20指定了栅格矩阵的大小,30,50指定了其纬度的范围,10,30指定了其经度的范围。结果如下:注意以这种方式调用函数makerefmat时,默认的经纬度方向是矩阵从上到下对应从南到北,从左到右对应从东到西。也就是矩阵的第(1,1)元素是区域的西南角。2.3一个简单的栅格数据的绘图想象一个极端粗糙的世界地图,其中每一个元素代表60度经纬度。这样地图的矩阵大小就是36。Z = 1 2 3 4 5 6; 7 8 9 10 11 12; 13 14 15 16 17 18;%地理数据3*6 R = georas

12、terref(RasterSize, size(Z), . Latlim, -90 90, Lonlim, -180 180);%地理栅格数据参考对象(类) figure(Color,white) ax = axesm(MapProjection, eqdcylin);%设定地图等距离圆柱投影方式 axis off%关闭本地坐标轴系统 setm(ax,GLineStyle,-, Grid,on,Frame,on)%指定网格线形,绘制frame框架 setm(ax,. MlabelLocation, 60,.%每隔60度绘制经度刻度标签 PlabelLocation,-30 30,.%只在指定值

13、处绘制纬度刻度标签 MeridianLabel,on,.%显示经度刻度标签 ParallelLabel,on,.%显示纬度刻度标签 MlineLocation,60,.%每隔60度绘制经度线 PlineLocation,-30 30,.%在指定值处绘制纬度线 MLabelParallel,north .%将经度刻度标签放在北方,即上部 ); geoshow(Z, R, DisplayType, texturemap);%显示地理数据 colormap(autumn) colorbar对于georasterref对象,最主要的是要告诉它:(a)栅格的大小:RasterSize;(b)栅格数据表示

14、的地理范围: Latlim和Lonlim.否则对于原始数据Z,无法衍射到图形上的.5.2参考向量当一个栅格元素的经度范围和纬度范围相同,也就是dlong和dlat相等时,可以使用更加紧凑的表示方法,即一个三元参考向量。一个参考向量定义了像素的大小和栅格数据的西北角:refvec=cells-per-degree,north-lat,west-lon在MAT文件中,这个变量通常被称作refvec或者maplegend。第一个元素cells-per-degree,描述了每一个栅格元素的角范围(假如每一个栅格元素覆盖5个经纬度,cells-per-degree就是0.2)。注意假如一个栅格元素的经度

15、范围和纬度范围不一致,就不能用参考向量,而必须定义参考矩阵。第二个元素,north-lat指定了栅格的最北端纬度,而第三个元素west-lon指定了栅格最西端的经度。换句话说,north-lat和west-lon指定了栅格的西北角。注意矩阵的(1,1)元素始终是在栅格的西南角,但是当栅格或者图像用参考矩阵来描述的时候,这就不一定了。例如假如参考向量为1900,则这个参考向量的解释是:z每一个数据网格元素代表1个经度和纬度;z地图的北边界位于北纬90度(北极);z地图的西边界位于0度(本初子午线)。所有栅格数据必须有一个参考向量或者参考矩阵,即使它们覆盖了整个地球。二、下面的图使用参考向量(Re

16、ference vector).对于参考向量,其实就是三个值,第一个值表示每个经纬度有多少个单元(cell),第2和第3个值表示数据中第一个点的经纬度坐标,一般是地图右上角的经纬度坐标:refvec = cells-per-degree,north-lat,west-lon注意经度和维度的网格划分是一样的时候,才可以使用参考向量!例如cells-per-degree=1,表示每隔1个经度和1个维度表示一个网格点。clear;clc load geoid;%地理栅格数据 load coast;%返回lat,long,海岸线数据 figure; axesm robinson %建立地图坐标系,选择地图投影方式 geoshow(geoid,. geoidrefvec,.%使用参考向量(Reference vector.),注意有些数据库里面是geoidlegend DisplayType,texturemap) colorbar(southoutside) geoshow(lat,long,color,k)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1