3.6 GMT 数据库的建立

在使用 GMT 绘图时,经常会用到某些数据,比如地形起伏数据、正确的国界线数据、中国地质构造分界线数据等等。社区已经提供了一个数据集,包含了一些常见的数据:https://gmt-china.org/datas/

这些数据具有两个特性:

  1. 固定性,即这些数据几乎不需要改动就可以直接使用;
  2. 复用性:即这些数据会经常用于不同的图件;

绘图时要使用这些数据,通常来说有两种办法:

  1. 将数据复制到绘图脚本所在目录,在命令中直接指定该数据的文件名
  2. 将数据放在系统中某个特定的目录,在命令中指定该数据的绝对路径

显然,以上两种方法都有其局限性。第一种方法会造成数据冗余,而且将地形起伏等大数据复制来复制去也不方便。第二种方法,绝对路径通常都比较长,写起来麻烦而且万一路径变了所有脚本都要修改,很麻烦。

为了解决这一问题,可以为这些数据建立一个 GMT 数据库。

3.6.1 原理

从原理上说,当 GMT 在命令中遇到某个文件时,首先会在当前目录下寻找该文件,如果找不到,则会到环境变量 GMT_DATADIR 中寻找。若环境变量 GMT_DATADIR 未定义,则在默认路径下寻找(不同的操作系统,默认路径不同)。

因而,最简单的做法就是把所有的地形数据、国界数据等等,都放在 GMT 默认路径下,构成一个自己的 GMT 数据库。此时,在 GMT 命令中直接使用文件名即可,既不需要将数据复制到当前目录,也不需要指定绝对路径。

如果不想使用默认路径,则需要修改 GMT_DATADIR 环境变量。下面介绍不同系统的默认路径和 GMT_DATADIR 环境变量。

3.6.2 Linux 和 Mac

Linux 和 Mac 下的默认路径都是 ~/.gmt/

如果想要修改环境变量,则在 shell 的配置文件中加入 GMT_DATADIR 即可。在 bash 中是:

export GMT_DATADIR=/path/to/my/gmt/database

如果喜欢将不同的数据分类放在不同的目录下也可以,可以添加多个目录,多个目录中间用 : 分隔即可:

export GMT_DATADIR=/path/to/my/coast:/path/to/my/boundary

需要注意的是,在 Linux 上 GMT_DATADIR 不具有递归性,即该路径的子路径是无效的,如果要包含,要自己再添加。而在 Mac 上子路径有效,GMT 会先找父路径再找子路径。

3.6.3 Windows

Windows下的默认路径是 C:\Users\用户名\.gmt

需要注意:正常情况下无法通过文件管理器直接建立名为 .gmt 文件夹。正确的做法是,打开“命令提示符”,执行命令 mkdir .gmt 以创建该文件夹。

若C盘容量不够,可以在其他盘下建GMT数据库数据库。具体做法是,

  1. 建立GMT数据库目录 F:\GMTDATABASE (具体路径自行决定)
  2. 打开“我的电脑”->“属性”->“高级”->“环境变量”
  3. 添加环境变量,变量名为 GMT_DATADIR ,值为 F:\GMTDATABASE
  4. 重启电脑使得环境变量生效