欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

安装m_map以及用matlab绘制高精度海岸线地图

程序员文章站 2024-03-22 09:36:34
...

安装m_map以及用matlab绘制高精度海岸线地图

最初目的是为了绘制站位图,matlab自带的geoshow绘制效果不太好,分辨率偏低。在这里整理好分享给大家,也方便自己以后查找~小白学到点东西也是不容易哈(我已经写好草稿,最后发布前更改了一下文章内容的顺序,就没了…大家看到的是重新写的了,5555)

进入正题前,先介绍一下安装m_map工具箱

源自:https://blog.csdn.net/achumoyangguang/article/details/102827484
网址:link.
点击下图框中的gzziped tar-filezip archive(选其一即可),下载后解压。
安装m_map以及用matlab绘制高精度海岸线地图

将解压后得到的m_map文件夹复制粘贴到matlab安装目录下的toolbox文件夹下(如我的是D:\applications\matlab\matlab2019a\toolbox\)。
打开matlab,点击设置路径:
安装m_map以及用matlab绘制高精度海岸线地图
出现下图,点击添加文件夹,添加m_map文件夹所在的位置,如图:
安装m_map以及用matlab绘制高精度海岸线地图
到此,m_map就安装好啦!检验:命令行窗口输入what m_map,出现下图:
安装m_map以及用matlab绘制高精度海岸线地图
让我们正式进入绘制高精度海岸线地图的世界(源自:https://wischu.com/archives/384.html):
这里使用的是 NOAA (美国国家海洋和大气管理局)提供的 GSHHG 数据

Step1 下载海岸线数据

网址link,可看到最新版本的 GSHHG 数据文件列表,下载文件名开头为 gshhg-bin 的压缩文件。

Step2 导入到m_map文件夹中

将下载的压缩包解压,这里要注意哈:建议选择解压缩到xxx文件夹,如果选择解压缩的话,当前列表会充满*.b文件和几个txt文档…
解压后,将所有*.b文件复制粘贴到m_map 目录的 private 文件夹下。

Step3 绘制图像

打开matlab,输入以下命令:

set(axes,'position',[0.075 0.065 0.876 0.875]); hold on %设置图形区域大小,去除图片边缘的Margin;[]中依次是图片的左 下 右 上边的设置
m_proj('Equidistant Cylindrical','lat',[10 50],'long',[100 145]); %投影方式及绘图范围设定
m_gshhs('lc1','patch',[0.98 0.98 0.98],'EdgeColor',[0.98 0.98 0.98]); %线条及色块颜色设定
m_grid('box','none','linest','none','linewidth',0.1,'tickdir','out','backcolor',[0.7020 0.8588 0.9098]); %边框及网格设定
set(gcf,'GraphicsSmoothing','off'); %关闭图像平滑

Step4 关于图像平滑

matlab在绘图时默认启用图像平滑功能,故输出的图像中轮廓线会被平滑(抗锯齿)处理。如果需要输出精确海岸线图像,可关闭此功能,Step3中最后一条即相应命令。

Step5 再唠叨几句

既然画的是站位图,就难免要标注海或陆地的名称嘛~这里给出两种标注方式:
①text命令

text(0.0001,1.229,'Sea name','Fontsize',20,'Color',[0.4 0.4 0.4]);
text(-0.0035,1.2238,'Land name','Fontsize',20,'Color',[0.4 0.4 0.4]);hold on

0.0001与-0.0035是标注的x轴位置,1.229与1.2238为y轴位置。
②gtext命令
gtext命令方便之处在于,可以出图后手动确定标注位置,而不用像text一样需要实现确定;标注完成后才会继续执行后面的存图等命令。

gtext('Sea name','Fontsize',20,'Color',[0.4 0.4 0.4]); %一行标注
gtext('Land name','Sea name','Fontsize',20,'Color',[0.4 0.4 0.4]); %上下两行标注

如上述命令注释所示,如果需要在两个不同的位置分别标注海、陆的名称,则需要写两行gtext命令分别标注。

说到这里就结束了人生第一篇CSDN啦~嘻嘻,我真是一个厉害的搬运工!
欢迎大家指出问题,多多交流,希望自己、正在看这篇文的你,都能成为代码高端玩家!
爱你们哟~

相关标签: matlab