7.4 调整CPT

GMT模块 makecptgrd2cpt 可以内置CPT文件为基础,针对用户自己的数据制作专门的CPT文件;也可以将用户自定义CPT重新调整为一个新的范围、颜色倒转甚至屏蔽部分颜色的新色标文件。比如某个内置CPT文件定义了从0到1颜色从蓝色变成红色,用 makecpt 可以制作一个从1000到3000颜色从蓝色变成红色的CPT文件。不同的是, makecpt 常用于已知极值范围的表数据,而 grd2cpt 常用于将cpt适用于一个或多个格网数据。此外,两者均可通过以下方式翻转颜色:

  1. 利用 -Iz 选项倒转CPT的z值指向(不包括前景色、背景色)。用于数据的正负颜色表示和惯例不符的情况(比如用正值表示海平面以下的深度,而不是惯常的负高程)。
  2. 利用 -Ic 选项翻转颜色的顺序,包括前景色和背景色(与 psscale 的宽度设为负值效果一致)。
  3. -Icz 表示以上两种效果的叠加,即颜色顺序不变,只调转了前景色和背景色
  4. 利用 -G 选项提取主CPT的一部分颜色
  5. 最后,将初始的内置CPT或修改后的CPT拉伸为自定义数据范围
#!/bin/bash
J=X20c
R=1/10/1/10
PS=GMT_CPT_4.ps
SIZE=w15c/0.25c

gmt makecpt -Chaxby -T-10/10/1 > Icpt.cpt
gmt makecpt -Chaxby -T-10/10/1 -Iz > Icpt_z.cpt
gmt makecpt -Chaxby -T-10/10/1 -Ic > Icpt_c.cpt
gmt makecpt -Chaxby -T-10/10/1 -Icz > Icpt_cz.cpt

gmt psxy -R$R -J$J -K -T > $PS

gmt psscale -R -J -CIcpt.cpt   -Dn0.5/0.25+jCM+$SIZE+h+e+n -B+l"Master CPT"  -K -O >> $PS
gmt psscale -R -J -CIcpt_c.cpt -Dn0.5/0.4+jCM+$SIZE+h+e+n  -B+l"-Ic"  -K -O >> $PS
gmt psscale -R -J -CIcpt_z.cpt -Dn0.5/0.55+jCM+$SIZE+h+e+n -B+l"-Iz"  -K -O >> $PS
gmt psscale -R -J -CIcpt_cz.cpt -Dn0.5/0.7+jCM+$SIZE+h+e+n -B+l"-Icz" -K -O >> $PS

gmt psxy -R -J -O -T >> $PS

rm gmt.*
rm Icpt*.cpt
../../_images/generate-cpt-gmtplot-0.png

注:这些CPT的调整选项顺序也是有优先级的。比如 -Iz 使用后,所有其他的更改都是基于z值反向的前提进行的。