vfory 发表于 2013-4-11 20:33:19

制作GMT的调色板CPT文件

xyz文件格式利用xyz2grd即可将其转换为GMT的栅格文件。然后重要的就是颜色的问题,zmap自带的invertjet色标对描述b值就比较恰当,一般认为,低b值对应高应力状态,属危险区域,用暖色调表示,而高b值刚好相反。GMT中的seis也可以达到类似的效果,但颜色的区分度不够好,所以我想自己做一个。
首先要找到GMT自带的调色板都放在/usr/local/gmt/share/cpt目录里(假设GMT的安装目录为/usr/local/gmt),打开某个cpt文件,比如GMT_seis.cpt,发现其格式为:
#       $Id: GMT_seis.cpt,v 1.1 2001/09/23 23:11:20 pwessel Exp $
#
# Colormap using in seismic tomographic images
# Designed by Suzan van der Lee
# COLOR_MODEL = RGB
-1.00   170     0       0       -.777   255     0       0
-.777   255     0       0       -.555   255     85      0
-.555   255     85      0       -.333   255     170     0
-.333   255     170     0       -.111   255     255     0
-.111   255     255     0       .111    255     255     0
.111    255     255     0       .333    90      255     30
.333    90      255     30      .555    0       240     110
.555    0       240     110     .777    0       80      255
.777    0       80      255     1.00    0       0       205

井号开头的是注释行,颜色模式为RGB,四列数据分别为z值,R,G,B。
z值归一化到[-1,1]之内,两组连续的数据并列排放;另起一行时,需要把上一行右侧的数据重复一次,不然会造成gap。
按此规律,我们从zmap的colormap editor中读取了invertjet的z值及对应的RGB值,归一化后按GMT_seis.cpt的格式生成了一个叫GMT_bv.cpt的文件,内容如下:
# Colormap using in seismic tomographic images
# Designed by Sichuan earthquake administration
# COLOR_MODEL = RGB
-1.00   128     0       0  -.750   255     0       0
-.750   255     0       0  -0.50   255     128     0
-0.50   255     128     0   -.250   255     255     0
-.250   255     255     0   0       128     255     128
0       128     255     128   .250    0       255     255
.250    0       255     255   0.50    0       128     255
0.50    0       128     255   .750    0       0       255
.7500    0      0       255   1.00    0       0       143
 
然后利用makecpt来制作cpt文件
makecpt -Cbv -T0.5/1.5/0.1 -Z > color.cpt
之后用grdimage调用-C即可。
页: [1]
查看完整版本: 制作GMT的调色板CPT文件