当前CPT¶
在现代模式下,几乎不需要显式命名CPT。当某个模块创建CPT时,例如grd2cpt,makecpt,或者没有颜色表可用时的grdimage,GMT会将CPT写入会话目录中的隐藏文件中。
当模块需要CPT时,例如,当grdimage未提供-C,或提供-C但没指定名称)时,GMT会读取此隐藏的CPT。该文件称为当前CPT。
实际上,当前的CPT有几个级别,可能全部不同,有些可能不存在。如果在绘制图中图时创建CPT,则只能在绘制该图中图期间访问该CPT。因此,它只能将图中图作为其使用范围。
如果在某个特定子图中时创建CPT,则该CPT同样只能由该子图访问。如果在子图开始之后但在绘图开始之前创建CPT,则该CPT可用于所有子图(但可以被上述子图特定的CPT局部覆盖)。
每次调用图形,都应该创建特定于图形的CPT。如果不存在,则使用会话CPT。 gmt遵循的规则是,始终使CPT具有最受限制的范围,该范围处于绘图层次结构中。
如果在本绘图层次结构中找不到,GMT会将层次结构扩展到范围更广的结构中去寻找CPT。如果最终没有找到CPT(并且绘图模型不同于grdimage,无法单独创建CPT时),会提示出错。
在现代模式下,有些情况下必须使用-H选项以显式创建命名CPT。一种情况是,在制作动图时,因为需要创建一次CPT并多次访问它。由于每个电影帧都是一个单独的会话,因此不能跨会话共享当前cpt。