Matlab下地形图绘图包m_map绘图包绘制高分辨率海岸线、国界线与河流

2023-11-18

1. 前言

之前说了m_map的下载、安装与基本使用(Matlab下地形图绘图包m_map安装与使用),以及晕渲地形图的绘制(m_map绘制晕渲(shaded relief)地形图),现在再说一下高分辨率海岸线、国界线与河流的绘制。

2. 安装

高分辨率地形和海岸线数据的安装已经在Matlab下地形图绘图包m_map安装与使用中说的比较详细了,这里不再赘述。

3. 参数设置

可以打开m_gshhs函数查看具体设置。

>> help m_gshhs
  m_gshhs Add a coastline to a given map using 
            the Global Self-consistant Hierarchical High-resolution 
            Shorelines, Rivers, and Borders
 
          m_gshhs(RES, (standard line option,...,...) ) draws the coastline
          river network, or borders as  simple lines.
 
          m_gshhs(RES,'patch' ( ,standard patch options,...,...) ) draws the 
          coastline as a number of patches (rivers and borders are not
          arranged so patches can be drawn).
 
          m_gshhs(RES,'save',FILENAME) saves the extracted coastline data
          for the current projection in a file FILENAME. This allows 
          speedier replotting using M_USERCOAST(FILENAME). 
     
          RES: A one-char string (optionally 2 or 3)
          
          First char: resolution - one of
                       'c'  crude
                       'l'  low
                       'i'  intermediate
                       'h'  high
                       'f'  full
 
          Second char: type - one of
                       'c' GSHHS coastline (default)
                       'b' WDB Border
                       'r' WDB River
   
          Third char - if 2nd char is 'b':
                       '1' Country borders
                       '2' State/Province and Country borders
                     - if 2nd char is 'r': '1','2','3','4' 
                       add successively more tributaries
 
          (also maintained is this optional format:
 
          RES - selections resolution
                   1  or 'crude'	
                   2  or 'low'  	
                   3  or 'intermediate'  
                   4  or 'high' 	
                   5  or 'full  	
 
          but please don't use this).
 
          See also m_proj, m_grid, m_coast, m_gshhs_l, m_gshhs_h, m_gshhs_c 
          m_usercoast

这里简要说一下用法。

c、b、r分别表示海岸线,国界线与河流
c、l、i、h、f 分别表示粗糙/低/中/高/满分辨率
具体使用时,c/b/r与 c/l/i/h/f 二者组合使用。

m_gshhs('lc','patch','k'); % 低分辨率海岸线,陆地填充:黑色
m_gshhs('ib’,’color','k'); % 中分辨率国界线,黑色
m_gshhs('fr','color','b'); % 满分辨率河流,蓝色

4. 实例说明

下面在m_map绘制晕渲(shaded relief)地形图的基础上说一下河流与国界线的添加。

4.1 例1

在晕渲图上只添加灰色的中等分辨率的海岸线。

figname='gshhs1';
figure
m_proj('mercator','long',[96 114],'lat',[10 24]);

caxis([-4000 4000]) 
% %caxis要放在colormap之前,colormap要放在m_shadedrelief之前
colormap([m_colmap('blue',200);m_colmap('gland',200)])
hc=colorbar;
set(get(hc,'title'),'string','Elevation(m)')

m_etopo2('shadedrelief','lightangle',45);

m_gshhs('ic','color',[.5 .5 .5])

m_grid('box','fancy','tickdir','in','gridlines','no','fontsize',12)

set(gcf,'position',[100 100 800 600])
print('-dpng','-r400',[figname,'.png'])

在这里插入图片描述

4.2 例2

再添加中等分辨率的河流,分支参数设置为1

figname='gshhs2';
figure
m_proj('mercator','long',[96 114],'lat',[10 24]);

caxis([-4000 4000]) 
% %caxis要放在colormap之前,colormap要放在m_shadedrelief之前
colormap([m_colmap('blue',200);m_colmap('gland',200)])
hc=colorbar;
set(get(hc,'title'),'string','Elevation(m)')

m_etopo2('shadedrelief','lightangle',45);

m_gshhs('ic','color',[.5 .5 .5])
m_gshhs('ir1','color','b')

m_grid('box','fancy','tickdir','in','gridlines','no','fontsize',12)

set(gcf,'position',[100 100 800 600])
print('-dpng','-r400',[figname,'.png'])

在这里插入图片描述

4.3 例3

添加中等分辨率的河流,分支参数设置为2

%%
figname='gshhs3';
figure
m_proj('mercator','long',[96 114],'lat',[10 24]);

caxis([-4000 4000]) 
% %caxis要放在colormap之前,colormap要放在m_shadedrelief之前
colormap([m_colmap('blue',200);m_colmap('gland',200)])
hc=colorbar;
set(get(hc,'title'),'string','Elevation(m)')

m_etopo2('shadedrelief','lightangle',45);

m_gshhs('ic','color',[.5 .5 .5])
m_gshhs('ir2','color','b')

m_grid('box','fancy','tickdir','in','gridlines','no','fontsize',12)

set(gcf,'position',[100 100 800 600])
print('-dpng','-r400',[figname,'.png'])

在这里插入图片描述

4.4 例4

添加中等分辨率的河流,分支参数设置为3

figname='gshhs4';
figure
m_proj('mercator','long',[96 114],'lat',[10 24]);

caxis([-4000 4000]) 
% %caxis要放在colormap之前,colormap要放在m_shadedrelief之前
colormap([m_colmap('blue',200);m_colmap('gland',200)])
hc=colorbar;
set(get(hc,'title'),'string','Elevation(m)')

m_etopo2('shadedrelief','lightangle',45);

m_gshhs('ic','color',[.5 .5 .5])
m_gshhs('ir3','color','b')

m_grid('box','fancy','tickdir','in','gridlines','no','fontsize',12)

set(gcf,'position',[100 100 800 600])

在这里插入图片描述

4.5 例5

添加中等分辨率的河流,分支参数设置为3,添加中等分辨率国界线

figname='gshhs5';
figure
m_proj('mercator','long',[96 114],'lat',[10 24]);

caxis([-4000 4000]) 
% %caxis要放在colormap之前,colormap要放在m_shadedrelief之前
colormap([m_colmap('blue',200);m_colmap('gland',200)])
hc=colorbar;
set(get(hc,'title'),'string','Elevation(m)')

m_etopo2('shadedrelief','lightangle',45);

m_gshhs('ic','color',[.5 .5 .5])
m_gshhs('ir3','color','b')
m_gshhs('ib','color','k','linewid',1.5)

m_grid('box','fancy','tickdir','in','gridlines','no','fontsize',12)

set(gcf,'position',[100 100 800 600])
print('-dpng','-r400',[figname,'.png'])

在这里插入图片描述

4.6 例6

添加中等分辨率的河流,分支参数设置为2,添加中等分辨率国界线

figname='gshhs6';
figure
m_proj('mercator','long',[96 114],'lat',[10 24]);

caxis([-4000 4000]) 
% %caxis要放在colormap之前,colormap要放在m_shadedrelief之前
colormap([m_colmap('blue',200);m_colmap('gland',200)])
hc=colorbar;
set(get(hc,'title'),'string','Elevation(m)')

m_etopo2('shadedrelief','lightangle',45);

m_gshhs('ic','color',[.5 .5 .5])
m_gshhs('ir2','color','b')
m_gshhs('ib','color','k','linewid',1.5)

m_grid('box','fancy','tickdir','in','gridlines','no','fontsize',12)

set(gcf,'position',[100 100 800 600])
print('-dpng','-r400',[figname,'.png'])

在这里插入图片描述

END

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Matlab下地形图绘图包m_map绘图包绘制高分辨率海岸线、国界线与河流 的相关文章

  • 结合阴影误差和实线平均值的图例

    我在用此 FEX 条目 http www mathworks com matlabcentral fileexchange 27485 boundedline line plots with shaded errorconfidence i
  • 使用 Polyfit 进行垂直线拟合

    这只是一个基本问题 我正在使用拟合线来分散点polyfit 在某些情况下 我的散点具有相同的 X 值并且polyfit无法在其上放置一条线 必须有某种东西可以处理这种情况 毕竟 它只是一个线配合 我可以尝试交换 X 和 Y 然后再画一条线
  • SPMD 与 Parfor

    我对 matlab 中的并行计算很陌生 我有一个创建分类器 SVM 的函数 我想用几个数据集来测试它 我有一个 2 核工作站 所以我想并行运行测试 有人可以向我解释一下以下之间的区别 dataset array dataset1 datas
  • 当 MATLAB 发生错误时如何继续循环?

    我正在使用函数将一些 dat 文件转换为 mat 文件 我在循环内调用此函数来转换多个文件 在某些情况下 我的 dat 文件已损坏 函数无法转换并发生错误 从而停止循环 现在我的问题是 是否有任何命令 当错误发生时 它应该跳过循环中的当前
  • 如何将 Simulink 编码器编译器版本设置为支持 C++11 的版本?

    我正在尝试将代码合并到 Simulink 及其嵌入式编码器中 该代码使用 C 11 扩展 跑步mex setup c 给出这个输出 mex setup c MEX configured to use Xcode Clang for C la
  • MATLAB 黑洞变量

    MATLAB 是否有 黑洞 或丢弃变量 假设我正在做类似的事情 rows cols size A 但我不想存储行 是否有一个 黑洞 变量可以让我发送值去死 所以任务就像 BLACKHOLE cols size A 其中 BLACKHOLE
  • 如何在matlab中显示图像上的点?

    我有一些像素点 比如 p1 1 1 和 p2 1 10 等等 我想以任何颜色在图像上显示这些点 这个怎么做 MATLAB plot http www mathworks com help techdoc ref plot html文档非常全
  • 如何将Matlab命令的输出重定向到文件? [复制]

    这个问题在这里已经有答案了 我想将 Matlab 命令的输出重定向或复制到文件中 我怎样才能做到这一点 就我而言 我想使用 UNIX 工具比较两个大型结构diff 示例 我可以在 Matlab 中执行此操作 gt gt s1 s1 a 32
  • MATLAB 引擎函数的输入参数

    我正在尝试使用 MATLAB 引擎在 Python 中调用 MATLAB 函数 但遇到一些问题 在设法将 NumPy 数组作为函数的输入处理后 现在 MATLAB 出现一些错误 MatlabExecutionError 未定义输入函数 si
  • 在 MATLAB 中绘制圆

    我被要求找到在 MATLAB 中绘制圆的不同方法 看起来很无聊 不过我可以想出一些想法 有些可能效率低下 Method 1 ezpolar x 1 Method 2 t linspace 0 2 pi 100 plot sin t cos
  • MATLAB:解包函数

    我正在与 Mathworks 的某人讨论 unwrap http www mathworks com access helpdesk help techdoc ref unwrap html函数中对于 以外的跳跃容差有一个 bug 并且希望
  • 我的傅立叶逆变换中的尖峰

    我正在尝试在 MATLAB 中比较两个数据集 为此 我需要通过傅里叶变换数据来过滤数据集 对其进行过滤 然后对其进行逆傅里叶变换 然而 当我对数据进行逆傅里叶变换时 我在红色数据集的两端都出现了一个尖峰 图片显示了第一个尖峰 它在开始时应该
  • 在 Mac 上设置 Laravel php artisan 迁移错误:没有这样的文件或目录 [重复]

    这个问题在这里已经有答案了 将一个完美运行的 laravel 项目从 git 拉到运行 MAMP 的 mac 上 项目在linux机器上完美运行 作曲家安装 php artisan migrate 出现以下错误 PDOException S
  • 如何在 R 中导入 matlab 表

    我有一个matlab mat文件与表数据类型我想将其导入 R 中 我为此使用 readMat R 正在将其作为列表读取 之后有没有办法将列表转换为 R 中的数据帧或表格格式 当我使用as dataframe我收到以下错误 Error in
  • Matlab 中二维插值的函数形式

    我需要从二维数据数组构造一个插值函数 我需要返回实际函数的东西的原因是 我需要能够将函数作为我需要进行数值积分的表达式的一部分进行计算 因此 interp2 并没有解决这个问题 它不返回函数 我可以使用 TriScatteredInterp
  • 在 MATLAB 中高效地形成动态窗口

    有人可以帮助我提供一种有效的方法 或者帮助我执行提供的代码 以尽可能少的步骤获得相同的结果 我将感激你 我有一个原始数组 A 1 1 1 4 3 4 5 4 4 3 3 1 0 0 2 6 2 6 3 6 6 2 7 4 8 7 2 2 2
  • MATLAB 图像锐化 - 使用(1-高斯低通滤波器)的高斯高通滤波器

    我试图通过设计高斯高通滤波器来锐化图像 我想利用高通滤波器相当于单位矩阵减去低通滤波器的事实来做到这一点 所以我执行了以下操作 image imread Question3 Data Cats jpg read image H 1 fspe
  • 比较元胞数组中的字符串

    我试图在单词列表中找到最常见的单词 到目前为止 这是我的代码 uniWords unique lower words for i 1 length words for j 1 length uniWords if uniWords j lo
  • 在matlab中设置图例符号的精度

    我有这个 leg2 strcat Max Degree num2str adet 1 1 ch l leg3 strcat Min Degree num2str adet 1 2 ch l leg4 strcat Max Request n
  • 将输出从符号数学 (sym) 转换为浮点型

    我的问题类似于这个问题 https stackoverflow com questions 11114101 how to convert mupad symbol i sqrt 1 to i in matlab 11114959 1111

随机推荐