您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > m_map在matlab中使用及投影说明
m_map工具箱使用笔记matlab中m_map地图工具包的使用m_map工具包下载地址及英文使用说明和例子:~rich/map.html考虑到那些英文水平比我还低的人,故作简单的介绍如下:m_map工具包的加载:下载m-map工具箱后,要想matlab能够调用,首先必须加载。可以先在matlab中查看当前目录,pwd。将m_map工具箱移动到此目录(方便以后操作)。然后输入addpathm_map工具包……(……根据具体文件夹而定)。此时m_map工具箱加载完毕,可以调用使用。可以helpm_coast检验。下面是m_map工具箱中常用的一些投影方式的说明:选择投影方式时定义区域命令(有些特别的例外):m_proj('投影方式','long',[lonminlonmax],'lat',[latminlatmax]);m_coast('patch',[a,b,c]);画海岸线。主要是配色。a,b,c都在[01]间,a,b,c都乘以255后为RGB配色方案。当然,边线还可以加载自己想要的地图,在上选择区域边界(有一步要选“downloadpoints”我不知道原因),下载*2pts.txt文件后:m_plotbndry('states/*','color','r');#*为匹配下载的文件名。m_grid格网命令。参数有:linest设置格网线条,默认为虚线。xticklabels(yticklabels)设置坐标上的标记方式,很少用。xtick(ytick)格网范围(有些投影时表示格的份数)。color线条颜色。yaxislocaion(xaxislocation)坐标位置,选项是right\left(top\bottom)\middle。tickdir(out\in)边框属性。box(on\off\fancy)。Linewidth线条宽。整个坐标位置:axes('position',[a,b,c,d])。a为x的最小值,b为y上的最小值,c为宽,d为高。m_elev画海拔线。如:m_elev('contourf',[a,b,c]).海拔等高线。a为起始高,b为间距,c为最高点。matlab中导入数据命令:loaddata.*我们常用到的数据data(经度纬度值),从中提取某列如x=data(:,1)提取第一列给x。m_ungrid*能撤销之前的任何*操作。写到这里,完全没思路了,你们可以将说明书下下来。根据上面讲的应该看得懂了。下面呢将例子中比较难懂的语句解释:例一中:第一句中两个值表示视角的观测位置。patch(.55*[-111-1],.25*[-1-111]-.55,'b');第一个逗号前的部分表示从左下角逆时针转的x值,第二个逗号前中]前表示从左下角逆时针点的y值,-.55表示相对观测点y轴方向的偏移。w为所画方块的填充颜色。例二中:m_elev('contourf',[500:500:6000]);从海拔500到6000以500为间距画等高线图。最后一句是配色方案。例三中:m_proj('stereographic','lat',90,'long',30,'radius',25);前两个数为视角位置。25为纬度所选区域范围。例如画整个南半球:m_proj('stereographic','lat',-90,'radius',90,'rotangle',180);-90为观测点纬度,90为纬度范围,180为绕南北轴顺时针旋转的度数。m_grid('xtick',12,'tickdir','out','ytick',[7080],'linest','-');12为经度方向份数,这里强调下,份数不是严格的,份数的选择是量子化的,不然不是你所期望的图。例四中的set一句是设置地图大小的。例9中选择投影方式时,最后的参数’rect','on'表示地图的正交性。为on时是块形图,为off时类似lambert所做的图。例10中dates=datenum(1997,10,23,15,1:41,zeros(1,41));设置时间属性。1997年10月23日,15时1到40分,秒全为0.m_track(lons,lats,dates,'ticks',0,'times',4,'dates',8,...'clip','off','color','r','orient','upright');画轨迹,时间间距为4;数据等分为8.最后两个参数是上面标记的属性,如方向、朝向。例11中:第一句中clong‘170’表示经度的中心位置是东经170位置。m_line(100.5,13.5,'marker','square','color','r');表示在(100.5,13.5)处加入方形标记,颜色为红色。m_range_ring(100.5,13.5,[1000:1000:15000],'color','b','linewi',2);画一系列间距线圈。离中心1000开始,1000为间距,15000结束。颜色为蓝色,线宽2.例12中:前两行是确定图中多边形的具体位置(各个顶点的坐标)。m_hatch(bndry_lon,bndry_lat,'single',30,5,'color','k');%...withhatchingadded.填充多边形。填充线条倾角为30度,线条间距为5个单位。卫星数据还没具体看,自己动手了,只能。上面笔记忘对某些人有点用处,参考,仅供。MatlabM_map工具箱19类投影(Project)创建语句及图像生成一共有19种投影类型,分别作图,代码和图形在后面基本绘图三步走1、m_proj('projname','propertyname',value)创建投影2、m_coast;绘出海岸,可以用patch命令将陆地上色,也可用更精细的m_gshhs_系列命令描绘海岸3、m_grid;根据投影要求绘制网格不同投影的后面的设置内容略有不同,具体可以利用m_proj('set','projectionname')查阅可设置参数,或用m_projget查询当前参数(必须已完成第一步创建投影)以下为代码,为保持格式,句首都添加了注释行。复制到matlabm文件里,全选并ctrl+t即恢复。PS,要运行该代码,需添加gshhs海岸数据。否则,请将所有m_gshhs系列命令,改为m_coast命令。%clear%clc%project={...%%1-5为方位图,圆形,'lon',centerlong,'lat',centerlat,...%%'rad',degree|[long,lat]%boundary%'Stereographic',...%1方位图%'Orthographic',...%2方位图%'AzimuthalEqual-area',...%3方位图%'AzimuthalEquidistant',...%4方位图%'Gnomonic',...%5方位图%...%6透视图,方形,'lon',centerlong,'lat',centerlat,...%...%'alt',altitude_fraction%透视高度%...asatelliteinanorbitofradius3earthradiiwouldhaveanaltitudeof2%'Satellite',...%6方位图%...%7-8锥顶投影图适合中纬度地区,且东西延伸范围较大%'AlbersEqual-AreaConic',...%7%'LambertConformalConic',...%8%...%9-11lon([minmax]|center),lat(maxlat|[minmax])%...%lon可设置中间位置,lat若设置最大值,则表示对称的lat范围,或给定值%'Mercator',...%9%'MillerCylindrical',...%10适合全球地图%'EquidistantCylindrical',...%11%...%12'lon',[G1G1],'lat',[L1L2],'dir',('horizontal'|'vertical')%'ObliqueMercator',...%12适合细长图像,G1L1G2L2为两头中间坐标%'TransverseMercator',...%13%'Sinusoidal',...%14两侧外凸,视觉鼓起,像地球仪的一片%'Gall-Peters',...%15经纬均直拉伸至正方,适合赤道区域,%'Hammer-Aitoff',...%16全球%'Mollweide',...%17全球%'Robinson',...%18全球%'UTM'};%19%n=length(project);%n1=cell(1,n);%region=[1645100150];%region=[south,north,east,west]%forkk=1:19%clf%%================setprojection=======================================%ifkk=5;%1-5方位图投影rad边界:degree|边界某点[lon,lat]%m_proj(project{kk},'lon',mean(region(3:4)),'lat',mean(region(1:2)),'rad',15)%elseifkk==6%6alt卫星轨道圆的%m_proj(project{kk},'lon',mean(region(3:4)),'lat',mean(region(1:2)),...%'rad',4.5,'alt',2)%elseifkk==7||kk==8;%7-8ConicProjection锥顶投影方的%m_proj(project{kk},'lon',[region(3),region(4)],'lat',[region(1),region(2)]);%elseif(kk=9&&kk=15&&kk~=12)||kk==19%9-11&13-15&19柱面圆柱投影%m_proj(project{kk},'lon',[region(3),region(4)],'lat',[region(1),region(2)]);%elseifkk==12%12狭长投影%m_proj(project{kk},'lon',[mean(region(3:4)),mean(region(3:4))],...%'lat',[region(2),region(1)],'dir','vertical');%elseifkk=16&&kk=18%全球地图%m_proj(project{kk});%end%%========================setcoast&grid===============================%ifkk=16&&kk=18%m_gshhs_c('patch',[.8.8.8]);%m_grid('box','on','xaxislocation','middle');%elseifkk=6||kk==12%m_gshhs_i('patch',[.8.8.8]);%m_grid('box','on')%else%m_gshhs_i('patch',[.8.8.8]);%m_grid('box','fancy')%%m_gshhs_f/h/i/l/cfullhighintermediatelowcrude%end%%%===================settitlebgcolor&save============================%n1{kk}=sprintf('%02d',kk);%title([n1{kk},'-',project{kk}])%set(gcf,'color',[111]);%set(
本文标题:m_map在matlab中使用及投影说明
链接地址:https://www.777doc.com/doc-4549071 .html