博客
关于我
M_Map工具箱简介及地理图形绘制
阅读量:789 次
发布时间:2023-02-13

本文共 3774 字,大约阅读时间需要 12 分钟。

M_Map工具箱简介及地理图形绘制

M_Map是一组为Matlab 编写的映射工具(也适用于Octave),它提供了丰富的功能来处理地理数据和绘制地理图形。以下是M_Map的主要功能及其应用场景。

1. M_Map简介

M_Map主要包含以下功能:

  • 地球模型与投影:支持20种不同的投影方式,包括球形和椭圆体地球模型,能够进行逆向映射。
  • 网格生成:用于制作纬度/经度或平面X/Y轴上的轴线,适合有限制的漂亮轴绘制。
  • 海岸线数据库:提供1/4度分辨率的地理数据。
  • 全球高程数据库:分辨率为1度。
  • 高分辨率数据库连接:支持免费提供的高分辨率海岸线和测深数据。
  • 其他功能:包括地形渲染、坐标标注、等值线绘制等。

1.1 投影设置

M_Map支持多种投影方式,用户可以根据需求选择合适的投影参数。以下是常用投影类型及其特点:

  • Azimuthal projections(方位投影)

    • Stereographic 立体影像:等角投影,但不是等面积的,适用于极地地区。
    • Orthographic 正字投影:既不是等面积也不是等角投影,类似于地球的透视视图。
    • Azimuthal Equal-area 方位等积:等面积但不是共形投影。
    • Azimuthal Equidistant 方位等距:既不是等积也不是等角投影,距中心点距离和方向真实。
    • Gnomonic:地图边缘扭曲较大,适合最大半径不超过20或30度的场景。
    • Satellite:地球透视图,根据指定高度从卫星视角绘制。
  • Conic Projections(圆锥投影)

    • Albers Equal-Area Conic:等面积但不是共形投影。
    • Lambert Conformal Conic:等角投影但不是等积投影。
  • Cylindrical and Pseudo-cylindrical Projections(圆柱和伪圆柱投影)

    • Mercator 墨卡托:基于赤道切线圆柱体的共形投影。
    • Equidistant Cylindrical 等距圆柱:既不是等积也不是等角投影,经常用于快速绘制数据。

经度设置时,负号表示西经,正号表示东经。

1.2 网格与轴设置

通过m_grid函数,可以绘制地图网格,并设置轴标注。例如:

m_grid('box','fancy','tickdir','in');

1.3 绘制各种类型的图形

M_Map提供了丰富的绘图功能,包括:

  • 线条绘制m_plotm_line 函数。
  • 文本绘制m_text 函数。
  • 矢量箭头m_quiver 函数。
  • 色块绘制m_patch 函数。
  • 注释添加m_annotation 函数。
  • 等值线绘制m_contourm_contourf 函数。
  • 影像显示m_imagem_pcolor 函数。
  • 地形渲染m_shadedrelief 函数。
  • 测深数据绘制m_etopo2m_elev 函数。
  • 距离标尺m_ruler 函数。
  • 指北针m_northarrow 函数。

2 地理图形绘制案例

以下是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');

2.2 Lambert Conformal Conic projection of North American Topography

图形描述:北美洲地形图使用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');

2.3 Stereographic projection of North Polar regions

图形描述:北极地区使用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');

2.4 Colourmaps

图形描述:展示不同颜色映射效果。

代码示例

% 以下代码用于生成图形% 每个 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');

3 绘制流域特征数据

图形描述:流域特征数据图展示了流域范围、降水分布等信息。

代码示例

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');

参考

  • M_Map用户手册
  • 地理信息系统资源
  • 开源地理绘图工具介绍

转载地址:http://gedfk.baihongyu.com/

你可能感兴趣的文章
MySQL数据库的高可用
查看>>
MYSQL数据库简单的状态检查(show processlist)
查看>>
MYSQL数据库简单的状态检查(show status)
查看>>
MySQL数据库系列
查看>>
MYSQL数据库自动本地/异地双备份/MYSQL增量备份
查看>>
mysql数据库表增添字段,删除字段、修改字段的排列等操作,还不快来
查看>>
MySQL数据库被黑了
查看>>
mysql数据库设计
查看>>
MySQL数据库设计与开发规范
查看>>
MYSQL数据库进阶操作
查看>>
MySQL数据库配置文件调优详解
查看>>
mysql数据库里的一些坑(读高性能mysql有感)
查看>>
MySQL数据库面试题(2021最新版)
查看>>
MySQL数据库高并发优化配置
查看>>
mysql数据恢复
查看>>
MySQL数据的主从复制、半同步复制和主主复制详解
查看>>
mysql数据碎片整理
查看>>
MySQL数据类型
查看>>
MySQL数据类型字节长度
查看>>
mysql数据被误删的恢复方案
查看>>