最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

m_map在matlab中使用及投影说明

IT圈 admin 36浏览 0评论

2024年5月8日发(作者:邴初雪)

m_map工具箱使用笔记

matlab中m_map地图工具包的使用

m_map工具包下载地址及英文使用说明和例子:/~rich/

考虑到那些英文水平比我还低的人,故作简单的介绍如下:

m_map工具包的加载:

下载m-map工具箱后,要想matlab能够调用,首先必须加载。可以先在matlab中查看当前

目录,pwd。将m_map工具箱移动到此目录(方便以后操作)。然后输入addpath m_map工

具包…… (……根据具体文件夹而定)。此时m_map工具箱加载完毕,可以调用使用。可

以help m_coast检验。

下面是m_map工具箱中常用的一些投影方式的说明:

选择投影方式时定义区域命令(有些特别的例外):

m_proj('投影方式','long',[lonmin lonmax],'lat',[latmin latmax]);

m_coast('patch',[a,b,c]);画海岸线。主要是配色。a,b,c都在[0 1]间,a,b,c都乘以255后为

RGB配色方案。当然,边线还可以加载自己想要的地图,在/dcw/

上选择区域边界(有一步要选“download points”我不知道原因),下载*文件后:

m_plotbndry('states/*','color','r'); # *为匹配下载的文件名。

m_grid格网命令。参数有:linest设置格网线条,默认为虚线。xticklabels(yticklabels)设

置坐标上的标记方式,很少用。xtick(ytick)格网范围(有些投影时表示格的份数)。color

线条颜色。yaxislocaion(xaxislocation)坐标位置,选项是rightleft(topbottom)middle。

tickdir(outin)边框属性。box(onofffancy)。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中导入数据命令:load data.*

我们常用到的数据data(经度纬度 值),从中提取某列如x=data(:,1)提取第一列给x。

m_ungrid *能撤销之前的任何*操作。

写到这里,完全没思路了,你们可以将说明书下下来。根据上面讲的应该看得懂了。下面呢

将例子中比较难懂的语句解释:

例一中:

第一句中两个值表示视角的观测位置。

patch(.55*[-1 1 1 -1],.25*[-1 -1 1 1]-.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',[70 80],'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'); % ...with hatching added.填充多边形。填

充线条倾角为30度,线条间距为5个单位。

卫星数据还没具体看,自己动手了,只能。

上面笔记忘对某些人有点用处,参考,仅供。

Matlab M_map工具箱 19类投影(Project)创建语句及图像生成

一共有19种投影类型,分别作图,代码和图形在后面

基本绘图三步走

1、m_proj('proj name',<'property name', value>) 创建投影

2、m_coast; 绘出海岸,可以用patch命令将陆地上色,也可用更精细的m_gshhs_系列命令

描绘海岸

3、m_grid; 根据投影要求绘制网格

不同投影的后面的设置内容略有不同,具体可以利用m_proj('set','projection name')查阅可设

置参数,或用m_proj get 查询当前参数(必须已完成第一步创建投影)

以下为代码,为保持格式,句首都添加了注释行。复制到matlab m文件里,全选并ctrl+t 即

恢复。

PS,要运行该代码,需添加 gshhs海岸数据。否则,请将所有m_gshhs系列命令,改为m_coast

命令。

% clear

% clc

% project={...

% % 1-5 为方位图,圆形,'lon',center long,'lat',center lat,...

% % 'rad',degree|[long,lat] % boundary

% 'Stereographic',... % 1 方位图

% 'Orthographic',... % 2 方位图

% 'Azimuthal Equal-area',... % 3 方位图

% 'Azimuthal Equidistant',... % 4 方位图

% 'Gnomonic',... % 5 方位图

% ...% 6 透视图,方形,'lon',center long,'lat',center lat,...

% ...% 'alt',altitude_fraction % 透视高度

% ...a satellite in an orbit of radius 3 earth radii would have an altitude of 2

% 'Satellite',... % 6 方位图

% ...% 7-8 锥顶投影图 适合中纬度地区,且东西延伸范围较大

% 'Albers Equal-Area Conic',... % 7

% 'Lambert Conformal Conic',... % 8

% ...% 9-11 lon ([min max]|center),lat(maxlat|[min max])

% ...% lon可设置中间位置,lat若设置最大值,则表示对称的lat范围,或给定值

% 'Mercator',... % 9

% 'Miller Cylindrical',... %10 适合全球地图

% 'Equidistant Cylindrical',... %11

% ...% 12 'lon',[G1 G1],'lat',[L1 L2],'dir',('horizontal'|'vertical')

% 'Oblique Mercator',... %12 适合细长图像, G1L1 G2L2 为两头中间坐标

% 'Transverse Mercator',... %13

% 'Sinusoidal',... %14 两侧外凸,视觉鼓起,像地球仪的一片

% 'Gall-Peters',... %15 经纬均直拉伸至正方,适合赤道区域,

% 'Hammer-Aitoff',... %16 全球

% 'Mollweide',... %17 全球

% 'Robinson',... %18 全球

% 'UTM'}; %19

% n=length(project) ;

% n1=cell(1,n);

% region=[16 45 100 150];% region=[south,north,east,west]

% for kk=1:19

% clf

% % ================set projection=======================================

% if kk<=5; % 1-5 方位图投影 rad边界:

% m_proj(project{kk},'lon',mean(region(3:4)),'lat',mean(region(1:2)),'rad',15)

% elseif kk==6 % 6 alt 卫星轨道 圆的

% m_proj(project{kk},'lon',mean(region(3:4)),'lat',mean(region(1:2)),...

% 'rad',4.5,'alt',2)

% elseif kk==7||kk==8; % 7-8 Conic Projection 锥顶投影 方的

% 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)]);

% elseif kk==12 %12 狭长投影

% m_proj(project{kk},'lon',[mean(region(3:4)), mean(region(3:4))],...

% 'lat',[region(2),region(1)],'dir','vertical');

% elseif kk>=16 && kk<= 18 % 全球地图

% m_proj(project{kk});

% end

% % ======================== set coast & grid ==============================

=

% if kk>=16 && kk <=18

% m_gshhs_c('patch',[.8 .8 .8]);

% m_grid('box','on','xaxislocation','middle');

% elseif kk<=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/c full high intermediate low crude

% end

%

% % =================== set title bgcolor & save ============================

% n1{kk}=sprintf('%02d',kk);

% title([n1{kk},'-',project{kk}])

% set(gcf,'color',[1 1 1]);

% set(gcf,'position',[50 80 600 400])

% F=getframe(gcf);

% imwrite(,['M-',n1{kk},'-',project{kk},'.png'])

% end

2024年5月8日发(作者:邴初雪)

m_map工具箱使用笔记

matlab中m_map地图工具包的使用

m_map工具包下载地址及英文使用说明和例子:/~rich/

考虑到那些英文水平比我还低的人,故作简单的介绍如下:

m_map工具包的加载:

下载m-map工具箱后,要想matlab能够调用,首先必须加载。可以先在matlab中查看当前

目录,pwd。将m_map工具箱移动到此目录(方便以后操作)。然后输入addpath m_map工

具包…… (……根据具体文件夹而定)。此时m_map工具箱加载完毕,可以调用使用。可

以help m_coast检验。

下面是m_map工具箱中常用的一些投影方式的说明:

选择投影方式时定义区域命令(有些特别的例外):

m_proj('投影方式','long',[lonmin lonmax],'lat',[latmin latmax]);

m_coast('patch',[a,b,c]);画海岸线。主要是配色。a,b,c都在[0 1]间,a,b,c都乘以255后为

RGB配色方案。当然,边线还可以加载自己想要的地图,在/dcw/

上选择区域边界(有一步要选“download points”我不知道原因),下载*文件后:

m_plotbndry('states/*','color','r'); # *为匹配下载的文件名。

m_grid格网命令。参数有:linest设置格网线条,默认为虚线。xticklabels(yticklabels)设

置坐标上的标记方式,很少用。xtick(ytick)格网范围(有些投影时表示格的份数)。color

线条颜色。yaxislocaion(xaxislocation)坐标位置,选项是rightleft(topbottom)middle。

tickdir(outin)边框属性。box(onofffancy)。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中导入数据命令:load data.*

我们常用到的数据data(经度纬度 值),从中提取某列如x=data(:,1)提取第一列给x。

m_ungrid *能撤销之前的任何*操作。

写到这里,完全没思路了,你们可以将说明书下下来。根据上面讲的应该看得懂了。下面呢

将例子中比较难懂的语句解释:

例一中:

第一句中两个值表示视角的观测位置。

patch(.55*[-1 1 1 -1],.25*[-1 -1 1 1]-.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',[70 80],'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'); % ...with hatching added.填充多边形。填

充线条倾角为30度,线条间距为5个单位。

卫星数据还没具体看,自己动手了,只能。

上面笔记忘对某些人有点用处,参考,仅供。

Matlab M_map工具箱 19类投影(Project)创建语句及图像生成

一共有19种投影类型,分别作图,代码和图形在后面

基本绘图三步走

1、m_proj('proj name',<'property name', value>) 创建投影

2、m_coast; 绘出海岸,可以用patch命令将陆地上色,也可用更精细的m_gshhs_系列命令

描绘海岸

3、m_grid; 根据投影要求绘制网格

不同投影的后面的设置内容略有不同,具体可以利用m_proj('set','projection name')查阅可设

置参数,或用m_proj get 查询当前参数(必须已完成第一步创建投影)

以下为代码,为保持格式,句首都添加了注释行。复制到matlab m文件里,全选并ctrl+t 即

恢复。

PS,要运行该代码,需添加 gshhs海岸数据。否则,请将所有m_gshhs系列命令,改为m_coast

命令。

% clear

% clc

% project={...

% % 1-5 为方位图,圆形,'lon',center long,'lat',center lat,...

% % 'rad',degree|[long,lat] % boundary

% 'Stereographic',... % 1 方位图

% 'Orthographic',... % 2 方位图

% 'Azimuthal Equal-area',... % 3 方位图

% 'Azimuthal Equidistant',... % 4 方位图

% 'Gnomonic',... % 5 方位图

% ...% 6 透视图,方形,'lon',center long,'lat',center lat,...

% ...% 'alt',altitude_fraction % 透视高度

% ...a satellite in an orbit of radius 3 earth radii would have an altitude of 2

% 'Satellite',... % 6 方位图

% ...% 7-8 锥顶投影图 适合中纬度地区,且东西延伸范围较大

% 'Albers Equal-Area Conic',... % 7

% 'Lambert Conformal Conic',... % 8

% ...% 9-11 lon ([min max]|center),lat(maxlat|[min max])

% ...% lon可设置中间位置,lat若设置最大值,则表示对称的lat范围,或给定值

% 'Mercator',... % 9

% 'Miller Cylindrical',... %10 适合全球地图

% 'Equidistant Cylindrical',... %11

% ...% 12 'lon',[G1 G1],'lat',[L1 L2],'dir',('horizontal'|'vertical')

% 'Oblique Mercator',... %12 适合细长图像, G1L1 G2L2 为两头中间坐标

% 'Transverse Mercator',... %13

% 'Sinusoidal',... %14 两侧外凸,视觉鼓起,像地球仪的一片

% 'Gall-Peters',... %15 经纬均直拉伸至正方,适合赤道区域,

% 'Hammer-Aitoff',... %16 全球

% 'Mollweide',... %17 全球

% 'Robinson',... %18 全球

% 'UTM'}; %19

% n=length(project) ;

% n1=cell(1,n);

% region=[16 45 100 150];% region=[south,north,east,west]

% for kk=1:19

% clf

% % ================set projection=======================================

% if kk<=5; % 1-5 方位图投影 rad边界:

% m_proj(project{kk},'lon',mean(region(3:4)),'lat',mean(region(1:2)),'rad',15)

% elseif kk==6 % 6 alt 卫星轨道 圆的

% m_proj(project{kk},'lon',mean(region(3:4)),'lat',mean(region(1:2)),...

% 'rad',4.5,'alt',2)

% elseif kk==7||kk==8; % 7-8 Conic Projection 锥顶投影 方的

% 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)]);

% elseif kk==12 %12 狭长投影

% m_proj(project{kk},'lon',[mean(region(3:4)), mean(region(3:4))],...

% 'lat',[region(2),region(1)],'dir','vertical');

% elseif kk>=16 && kk<= 18 % 全球地图

% m_proj(project{kk});

% end

% % ======================== set coast & grid ==============================

=

% if kk>=16 && kk <=18

% m_gshhs_c('patch',[.8 .8 .8]);

% m_grid('box','on','xaxislocation','middle');

% elseif kk<=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/c full high intermediate low crude

% end

%

% % =================== set title bgcolor & save ============================

% n1{kk}=sprintf('%02d',kk);

% title([n1{kk},'-',project{kk}])

% set(gcf,'color',[1 1 1]);

% set(gcf,'position',[50 80 600 400])

% F=getframe(gcf);

% imwrite(,['M-',n1{kk},'-',project{kk},'.png'])

% end

发布评论

评论列表 (0)

  1. 暂无评论