构建GMT数据库

在使用GMT绘图时,经常会用到某些数据。比如全球地形起伏数据、符合中国国情的 国界线数据、中国地质构造分界线数据,等等。这些数据有一个共同的特点:固定性。即 这些数据几乎不需要改动就可以直接使用。对于全球地形起伏数据而言,还有另一个特点, 就是数据量巨大,一个地形数据可能需要几百MB,甚至几个GB。

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

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

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

要是能像 Linux 那样通过修改 PATH 环境变量让系统搜索某个路径就好了。其实 GMT 提供了这个功能。

从原理上说,当GMT在命令中遇到某个文件时,首先会在当前目录下寻找该文件,如果找不到, 则会到环境变量 GMT_DATADIR 中寻找。若环境变量 GMT_DATADIR 未定义,则使用 默认值(Linux下 ~/.gmt/)。

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

如果不想把数据放在 ~/.gmt 下,而是想放在自己指定的某个目录下,直接修改环境 变量即可。在 ~/.bashrc 中加入:

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

如果喜欢将不同的数据分类放在不同的目录下也可以,都 : 分隔多个目录即可,例如:

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