[Generic Mapping Tools (GMT)] GMT学习笔记

[复制链接]

前几天装好了GMT,但是由于VSCode出了一些问题,所以迟迟没有进行代码的测试。前几天看了几次师兄的操作,今天白天进行了第一次代码运行的尝试,测试过程如下。


首先,由于导师发给我的GMT网站是国外的,下载速度很慢,而且英文教程也不太容易理解,索性就在国内的GMT中文社区里下载安装了。

附上GMT中文社区的网站:

游客,如果您要查看本帖隐藏内容请回复

此外,GMT中文社区还在B站上传了目前版本GMT6的教学视频,可以供学习,时间很短,只有不到三个小时,个人认为用一下午的时间可以掌握GMT基本的操作并画出简单的图片。

B站上面的视频讲的也十分详细,但是还是我把自己看视频所学到的内容总结了出来,可能对于初学者来说比较友好,读完这篇博客大概就可以上手了。

安装软件的过程很简单,按照教学视频一步步来就可以,不过几分钟的事。

检测GMT是否安装好的方法:Win+R呼出cmd页面,输入gmt,如果显示出如下图所示的内容,证明你的GMT已经安装好了。

$ x( t. C( W* ]8 N" }/ \+ S
                               
登录/注册后可看大图

由于VSCode在编辑Batch文件时容易存在终端路径问题,需要设置环境变量等一系列操作,对于我这种对代码完全不感冒的地质类的学生(我相信肯定不止我一个)来说实在不友好,所以我选择用以下方法进行GMT代码的编写。

首先,新建一个.txt格式的文本文件,命名为test1,并在重命名时将文件的格式改为.bat,如下图所示。

9 Z" U8 e; G. ?. P# y( E
                               
登录/注册后可看大图

接下来右键,点击编辑,会弹出.txt文件的文本框,由于Batch是Windows自带的脚本语言,所以不在编译器里编辑也可以直接运行。如果在后续的GMT使用过程中发现了一些问题,会考虑使用编译器来码。

(暂时先这样操作,也许明年就可以用到工作站了也说不定=.=)

为了方便自己,也为了方便其他看这篇文章的人学习,先直接放代码,然后再解释。

游客,如果您要查看本帖隐藏内容请回复

GMT代码的固定格式为:gmt begin开始,gmt end结束。第一句begin后为输出的文件名,空格后为文件格式(可以指定多种格式,用逗号隔开。),中间的语句则为画图指令,每写一行,就绘制一个图层。

其中要绘制图层(我这里以绘制地图为例),就要明确投影的概念,这里GMT中文手册有详细解释,以及每个语句的应用。

附上链接:https://docs.gmt-china.org/latest/proj/

上面的程序绘制了一张笔者目前所在区域的海岸线图。使用的是gmt coast命令,这个命令的详细解释,放在链接里

游客,如果您要查看本帖隐藏内容请回复

投影方式使用墨卡托投影,详细的解释可以点击链接查看:

游客,如果您要查看本帖隐藏内容请回复

语句中的10c表示绘制一张10cm宽的图;-R后面是经纬度范围,先经度、后纬度,先小、后大;-B后面为坐标轴参数,af为自动设定坐标轴(也可以自己设定刻度,如:-Ba60f15。若要分别设定x、y轴,可以这样表示:-Bxa60f15、-Bya60f15。),也可以加上g,画出网格(如:-Bafg。);-W表示线宽,p是宽度单位,1 inch = 72 p;-A表示不绘制小于某某面积的湖泊;-C表示填充湖泊的颜色;-G表示填充陆地的颜色;-S表示填充海洋的颜色。(颜色指令表见GMT中文手册中的CPT部分)

最后在程序最后加上一行:pause,在运行时会提示按任意键继续,方便我们检查代码的错误。

运行程序,得到下面的图片。

4 E# K% y% \; L& V4 u) l9 Z
                               
登录/注册后可看大图

接下来新建一个文件,操作方法同上述,命名为test2.bat

游客,如果您要查看本帖隐藏内容请回复

与前面类似,这次我们使用等面积Hammer投影的方式来画图,-R后面的g表示global

运行程序,得到下面的图片。


; u0 x( u# C; U/ X' N" v) Z3 ]  p                               
登录/注册后可看大图

如果你已经认真看完并亲自操作了上面的这些代码,那么后面的内容就更简单了。

步骤同上,我们来使用真实的全球地形起伏数据来绘制图片。

代码同样贴出来。

游客,如果您要查看本帖隐藏内容请回复

使用数据绘制图片的语句为grdimage,附上详细的说明链接:https://docs.gmt-china.org/latest/module/grdimage/

其中注意,使用网络上的数据要加@符号,如果使用自己的数据则不用,01m表示数据的精度,-B+t"test3fig1"表示给图片加上标题。

另一个语句是plot(.txt文件放在附件里,也可以去GMT中文社区下载),可以绘制线段、多边形以及符号,附上说明链接:https://docs.gmt-china.org/latest/module/plot/

运行,程序会从网络上自动下载所输入进去的数据,改变精度类型或者数据类型,就可以下载到不同的数据文件。这里还涉及到一个国内用户换源的问题,在这个链接中有详细说明:https://docs.gmt-china.org/latest/dataset/usage/。于是,我们得到图片如下。


0 r& L6 S, r3 g" P7 G                               
登录/注册后可看大图

至此,GMT6的简明上手教学结束了,本人也根据学到的方法,绘制了一些跟自己研究方向相关的图片,放一张很幼稚的图,供大家欣赏。


* U. u) }7 a$ {) _4 j                               
登录/注册后可看大图

另附:在学习画图和跟师兄交流的过程中遇到了一些问题。笔者的GMT6在绘制南极地区的360°圆形投影时,无法显示x轴的坐标刻度,然而改变经度范围,绘制不满360°的扇形图时,发现y轴可以正常显示,而同样的代码在师兄的GMT5上就可以显示出x轴坐标。这一问题还有待研究,也许是GMT5-->GMT6存在版本迁移的原因,在GMT6的说明手册里也提到了这一点,今天没有仔细看,可以等之后的几天再重新读一遍。等找到了解决办法,再更新下一篇。


0 L) }  o0 H6 J  H  }
回复

举报 使用道具

相关帖子

全部回帖
暂无回帖,快来参与回复吧
懒得打字?点击右侧快捷回复 【吾爱海洋论坛发文有奖】
您需要登录后才可以回帖 登录 | 立即注册
jasune
活跃在2022-11-2
快速回复 返回顶部 返回列表