本文共 3774 字,大约阅读时间需要 12 分钟。
M_Map工具箱简介及地理图形绘制
M_Map是一组为Matlab 编写的映射工具(也适用于Octave),它提供了丰富的功能来处理地理数据和绘制地理图形。以下是M_Map的主要功能及其应用场景。
M_Map主要包含以下功能:
M_Map支持多种投影方式,用户可以根据需求选择合适的投影参数。以下是常用投影类型及其特点:
Azimuthal projections(方位投影):
Conic Projections(圆锥投影):
Cylindrical and Pseudo-cylindrical Projections(圆柱和伪圆柱投影):
经度设置时,负号表示西经,正号表示东经。
通过m_grid函数,可以绘制地图网格,并设置轴标注。例如:
m_grid('box','fancy','tickdir','in'); M_Map提供了丰富的绘图功能,包括:
m_plot 和 m_line 函数。m_text 函数。m_quiver 函数。m_patch 函数。m_annotation 函数。m_contour 和 m_contourf 函数。m_image 和 m_pcolor 函数。m_shadedrelief 函数。m_etopo2 和 m_elev 函数。m_ruler 函数。m_northarrow 函数。以下是M_Map在实际应用中的示例:
图形描述:M_Map的标志图展示了地球的立体投影,背景为墨卡托投影的地理分布。
代码示例:
%% Example1:M_Map Logofigure(1);m_proj('ortho','lat',48,'long',-123);m_coast('patch','r');m_grid('line','-','xticklabels',[],'yticklabels',[]);patch(0.55*[-1 1 1 -1],0.25*[-1 -1 1 1]-0.55,'w');text(0,-0.55,'M_Map','fontsize',25,'color','b',... 'verticalalignment','middle','horizontalalignment','center');set(gca,'Layer','top','FontSize',14,'Fontname', 'Times New Roman'); 图形描述:北美洲地形图使用Lambert Conformal Conic投影进行绘制。
代码示例:
%% Example2:Lambert Conformal Conic projection of North American Topographyfigure(2);m_proj('lambert','long',[-160 -40],'lat',[30 80]);m_coast('patch',[1 .85 .7]);m_elev('contourf',[500:500:6000]);m_grid('box','fancy','tickdir','in');colormap(flipud(copper));set(gca,'Layer','top','FontSize',14,'Fontname', 'Times New Roman'); 图形描述:北极地区使用Stereographic投影绘制地图。
代码示例:
%% Example3:Stereographic projection of North Polar regions% 注意 coast线绘制在网格之上,原因在于绘图顺序figure(3);m_proj('stereographic','lat',90,'long',30,'radius',25);m_elev('contour',[-3500:1000:-500],'edgecolor','b');m_grid('xtick',12,'tickdir','out','ytick',[70 80],'linest','-');m_coast('patch',[.7 .7 .7],'edgecolor','r');set(gca,'Layer','top','FontSize',14,'Fontname', 'Times New Roman'); 图形描述:展示不同颜色映射效果。
代码示例:
% 以下代码用于生成图形% 每个 subplot标题表示生成该颜色映射的 m_colmap 呼用figure;subplot(2,2,1);m_colmap('viridis');axis off;title('viridis');subplot(2,2,2);m_colmap('plasma');axis off;title('plasma');subplot(2,2,3);m_colmap('inferno');axis off;title('inferno');subplot(2,2,4);m_colmap('blues');axis off;title('blues'); 图形描述:流域特征数据图展示了流域范围、降水分布等信息。
代码示例:
figure(1);m_proj('Equidistant Cylindrical','long',[101.5 104.5],'lat',[33.9 36.1]);m_northarrow(101.8 ,35.8 , .2, 'type',2);m_contourf( X , Y, DataPreYear ,'linestyle','none');c = colorbar('eastoutside','ticklength',0);caxis([ Pmin, Pmax ]);c.Label.FontSize = 12;c.Label.FontName = 'Times New Roman';hold on;m_line( [ TaoheBasin(:).X ],[ TaoheBasin(:).Y ],'color','k');m_grid('ytick',[34:0.5:37],'xtick',[101:0.5:105],'tickdir','out','linest','none','fontname','Times','fontsize',12,'linewidth',1.5);set( get(c,'ylabel') ,'string','\fontname{Times New Roman}降水\fontname{Times New Roman}/mm','fontsize',12);xlabel('经度','color','k','fontsize',12,'FontWeight','bold');ylabel('纬度','color','k','fontsize',12,'FontWeight','bold'); 转载地址:http://gedfk.baihongyu.com/