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绘图包绘制高分辨率海岸线、国界线与河流 的相关文章

  • 在 MATLAB 中使用 FFT 的频率响应

    这是场景 使用频谱分析仪 我有输入值和输出值 样本数是32000采样率为2000样本 秒 输入是正弦波50 hz 输入为电流 输出为压力 单位 psi 我如何使用 MATLAB 根据这些数据计算频率响应 使用 MATLAB 中的 FFT 函
  • Matlab:如何显示数组的“真实”值?

    我有一个在脚本中计算的向量 计算后 我将值显示到命令窗口 显示如下 finalResults 1 0e 05 0 0001 0 0 0005 0 0002 0 0001 0 0027 0 0033 0 0001 0 0000 0 0000
  • 检查Matlab中脚本需要使用的函数

    我有一个别人写的代码包 我正在运行一个脚本 它调用一些函数 这些函数又调用更多函数 等等 我想获取不是 MATLAB 内置函数但属于包的一部分的函数列表 我尝试使用matlab codetools requiredFilesAndProdu
  • MATLAB 滚动图

    我有一个脑电图数据库 我想绘制它 数据库是一个19 1000 134的矩阵 其中 19 是通道数 在第一种方法中 我只使用一个渠道 1000 个样本大小 采样率为 500 Hz 时为 1000 个点 即 2 秒数据 134 epochs的数
  • Matlab中转换数据类型的有效方法(double vs. im2double)

    我想将真彩色图像转换为双精度 据我所知有两种方法可以做到这一点 double rgb img im2double rgb img 哪一种效率更高 谢谢 他们都是不同的 im2double将图像的范围转换为0 1如果数据类型是uint8 or
  • MATLAB 中最有效的矩阵求逆

    在 MATLAB 中计算某个方阵 A 的逆矩阵时 使用 Ai inv A should be the same as Ai A 1 MATLAB 通常会通知我这不是最有效的求逆方法 那么什么是更有效率的呢 如果我有一个方程系统 可能会使用
  • 如何在 Matlab 中使用谷歌翻译?

    我正在编写一个程序 使用 Matlab 列出电影字幕文件中的所有唯一单词 现在我有一个独特的单词列表 我想将其翻译成我的语言并在观看电影之前了解其含义 有谁知道如何在 Matlab 中使用 Google Translate 以便完成我的脚本
  • 为什么在32位armv7l上mmap 4GB文件成功?

    我的印象是来自mmap 2 手册页和搜索结果 mmap仅限于系统可用的地址空间 减去系统保留的地址空间 所以在 32 位 armv7l 上 我假设它大约是 3GB 4GB 1GB 但似乎我实际上可以mmap5 GB 文件没有任何问题 int
  • 两个向量之间的欧氏距离(单行矩阵)

    我有两个向量 单行矩阵 假设我们已经知道长度len A x1 x2 x3 x4 x5 B y1 y2 y3 y4 y5 计算它们之间的欧几里德距离最快的方法是什么 我的第一次尝试是 diff A B sum 0 for column 1 l
  • MATLAB 教程中的 SIFT 实现

    我正在寻找 MATLAB 中的一些基本 SIFT 实现 我需要从第一原则来写它 另外 我正在寻找一些可以解释程序中发生的事情的内容 Vedali 的代码和 David Lowe 的代码超出了我的理解范围 如果您是 Matlab 用户 您一定
  • MATLAB:具有复数的 printmat

    我想使用 MATLAB 的printmat显示带有标签的矩阵 但这不适用于复数 N 5 x rand N 1 y rand N 1 z x 1i y printmat x y z fftdemo N 1 2 3 4 5 x y x iy O
  • 理解高斯混合模型的概念

    我试图通过阅读在线资源来理解 GMM 我已经使用 K 均值实现了聚类 并且正在了解 GMM 与 K 均值的比较 以下是我的理解 如有错误请指出 GMM 类似于 KNN 在这两种情况下都实现了聚类 但在 GMM 中 每个簇都有自己独立的均值和
  • 如何在放置颜色条后保持子图大小不变

    假设我们有一个 1 2 子图 我们在其中绘制了一些图形 如下所示 subplot 1 2 1 surf peaks 20 subplot 1 2 2 surf peaks 20 然后我们要添加一个颜色条 colorbar 我不希望结果中的正
  • vmsplice() 和 TCP

    在原来的vmsplice 执行 有人建议 http lwn net Articles 181169 如果您的用户态缓冲区是管道中可容纳的最大页面数的 2 倍 则缓冲区后半部分成功的 vmsplice 将保证内核使用缓冲区的前半部分完成 但事
  • 如何在文本集中创建所有字符组合?

    例如 我有这样的文本集 第 1 栏 a b 第 2 栏 l m n 第 3 栏 v w x y 我想将它们组合起来以获得如下输出 alv alw alx aly amv amw amx amy 这将输出 24 种文本组合 如果我只使用前两列
  • 了解 fminunc 参数和匿名函数、函数处理程序

    请多多包涵 问题在最后 我试图找出 fminunc 调用方式的差异 这个问题源于 Andrew Ng 在他的 Coursera 机器学习课程中的第 3 周材料 我正在回答这个问题 Matlab Andrew Ng 机器学习课程中 t cos
  • @(t)在Matlab中是什么意思? [复制]

    这个问题在这里已经有答案了 正如标题所示 考虑到下面的上下文 t 在 Matlab 中到底意味着什么 computeNumericalGradient 是一个函数 cofiCostFunc 也是一个接受一堆参数的函数 问题是 t 对 cof
  • Matlab dec2bin 给出错误的值

    我正在使用 Matlab 的 dec2bin 将十进制数转换为二进制字符串 但是 我得到了错误的结果 例如 gt gt dec2bin 13339262925365424727 ans 101110010001111010010100111
  • 如何将复杂的 csv 文件导入到 Matlab 中的数值向量

    我想知道我们应该如何读取由字符串 双精度数和字符等组成的复杂 csv 文件 例如 您能否提供一个可以在此 csv 文件中提取数值的成功命令 Click here http www ecb europa eu stats money yc d
  • 正确使用 fft2 和 fftshift 进行着色形状

    我正在尝试从 Trucco Verri 文本 3d 计算机视觉入门技术 中看到的着色算法重新创建经典形状 但我很难理解 matlab 中的 fft 函数 本质上 我需要使用可积性约束来获取图像的深度 Z 我不确定在这种情况下何时使用 fft

随机推荐