初学者在练习使用GMT绘图时,若修改了GMT的配置文件里的相关参数,而且忘记了删除当前目录下的配置文件,很容易在以后的绘图中出现错误。下面是一个错误的示范,我最近在练习使用GMT的投影模块时,发现自己画出的图总是跟预想的不太一样。如下面,练习使用等距圆锥投影绘制中国的边界,代码如下:
#!/bin/bash
gmt pscoast -R70/140/0/60 -JD105/35/36/42/5i -Ggray -Slightblue -Ba10f5g5 -Lg85/10+c10+w900k+u+l'Scale' -K > cn.ps
gmt psxy CN-border-La.dat -J -R -W0.5p -O >> cn.ps
代码是没什么问题,可以最后的结果并不是我想要的,如下图:
可以看到绘制的图件中明显有设置
MAP_GRID_CROSS_SIZE_PRIMARY
的迹象,可是我的代码里面也并没有用到gmt set MAP_GRID_CROSS_SIZE_PRIMARY
,那肯定.conf文件被修改了,到底是什么时候修改的呢?GMT有时如何知道我修改了配置文件呢?直到我在当前目录中发现了一个文件gmt.conf
,其内容如下:
#
# GMT 5.4.1 Defaults file
# FONT Parameters
#
FONT_ANNOT_PRIMARY = 9p,Helvetica,black
FONT_ANNOT_SECONDARY = 10.5p,Helvetica,black
FONT_LABEL = 12p,Helvetica,black
FONT_TITLE = 18p,Helvetica,black
#
# FORMAT Parameters
#
FORMAT_CLOCK_MAP = hh:mm
FORMAT_DATE_MAP = o dd
FORMAT_GEO_MAP = ddd:mm:ssF
#
# MAP Parameters
#
MAP_ANNOT_OFFSET_PRIMARY = 3.75p
MAP_ANNOT_OFFSET_SECONDARY = 3.75p
MAP_FRAME_TYPE = fancy
MAP_FRAME_WIDTH = 3.75p
MAP_GRID_CROSS_SIZE_PRIMARY = 0.05i
MAP_LABEL_OFFSET = 6p
MAP_TICK_LENGTH_PRIMARY = 3.75p/1.875p
MAP_TICK_LENGTH_SECONDARY = 11.25p/2.8125p
MAP_TITLE_OFFSET = 10.5p
原来,在使用gmtset
命令的时候,其会修改当前目录下的gmt.conf
文件中的相应参数值,若当前目录中没有gmt.conf
文件,则gmtset
会复制系统自带的gmt.conf
文件并修改之。所以以前修改过的文件会一直保存在当前目录中,所以一定要养成一个习惯就是,用过gmt gmtset...
命令后,要将生成的配置文件删除掉,即要rm gmt.conf
或者用gmt clear conf
命令,两者的效果是一样的。这样,我们删除当前目录中的配置文件再用新的代码来绘制上面的例子:
#!/bin/bash
gmt set FONT_ANNOT_PRIMARY 9p FORMAT_GEO_MAP ddd:mm:ssF
gmt pscoast -R70/140/0/60 -JD105/35/36/42/5i -Ggray -Slightblue -Ba10f10g5 -Lg85/10+c10+w900k+u+l'Scale' -K > cn.ps
gmt psxy CN-border-La.dat -J -R -W0.5p -O >> cn.ps
gmt clear conf
得到预期的图像:
所以切记如果用了gmtset
命令,不要忘记删除.conf
文件,以防对后面的绘图产生影响。