一:裁剪研究区磁异常数据
在GMT中存在远程磁异常数据EMAG2全球磁异常模型,因此可以通过 gmt grdcut 函数来裁剪自己的研究区数据,其中:@earth_mag_02m为选择的全球磁异常数据,-G选项为裁剪后的输出文件名,-R选项进行选择对应的研究区域。
gmt grdcut ingrid -Goutgrid -Rregion
二:制作色标文件(.cpt文件)
GMT提供了自己制作色标文件的方法。其中制作CPT的格式如下图所示,其中z0,z1等组合代表颜色的上下限(注意:从z0-zn必须单调递增),B选项代表小于 z0 的值的填充色,即背景色,F选项代表大于 zn 的值的填充色,即前景色,N选项代表值为 NaN 时使用的填充色。
z0 color_min_1 z1 color_max_1
z1 color_min_2 z2 color_max_2
...
zn-1 color_min_n zn color_max_n
B fill_background
F fill_foreground
N fill_nan
下面显示的为自制的磁异常图色标文件,颜色采用RGB色彩空间。
gmt begin
# 写一个CPT到文件 discontinuous.cpt
cat > discontinuous.cpt << EOF
-150 164 129 255 -110 78 163 254
-110 78 163 254 -55 2 227 255
-55 2 227 255 -35 1 254 225
-35 1 254 225 -9 2 255 113
-9 2 255 113 7 158 252 112
7 158 252 112 53 255 204 180
53 255 204 180 200 255 214 248
B 164 129 255
F 255 214 248
EOF
gmt end show
三:绘制图像
在GMT中,绘制图像是一层叠加上一层进行绘制的,因此需要先画底图,再叠加想绘制的图层。可以通过 gmt basemap 绘制底图,其中:-J选项确定想要的投影方式;-B选项确定坐标轴刻度间距以及选择绘制东西南北哪一侧的坐标轴。通过 gmt grdimage 绘制裁剪后的区域磁异常图,其中:-C选项为选取色标文件。将磁异常图与底图叠加即可。
磁异常图绘制结束后将陆地进行遮掩,使用 gmt coast 画出海岸线图,并使用-G选项设置其透明度,-A选项不绘制面积过小的湖泊以提高图像整洁度,-W选项控制绘制海岸线的粗细以及颜色。
四:图像修饰
最后,在画好的图像上调用我们制作好的色标文件加入colorbar,使用 gmt colorbar 绘制,其中-D选项确定色标位置,j代表底图锚点,w代表长/宽的大小,o代表相对于锚点的偏移量,分别是x偏移/y偏移。
最后,代码如下:
#!/bin/bash
gmt set PS_CHAR_ENCODING Standard+
gmt begin SCS_mag pdf E600
gmt set MAP_FRAME_TYPE=fancy
gmt set FONT_LABEL 10p
cat > discontinuous.cpt << EOF
-150 164 129 255 -110 78 163 254
-110 78 163 254 -55 2 227 255
-55 2 227 255 -35 1 254 225
-35 1 254 225 -9 2 255 113
-9 2 255 113 7 158 252 112
7 158 252 112 53 255 204 180
53 255 204 180 200 255 214 248
B 164 129 255
F 255 214 248
EOF
gmt grdcut @earth_mag_02m_p -R106/124/4/24 -Gpartmag.grd
gmt basemap -JM15c -R106/124/4/24 -Ba2 -BWSen
gmt grdimage partmag.grd -R106/124/4/24 -JM15c -BWSen -Cdiscontinuous.cpt
gmt coast -R106/124/4/24 -JM15c -BWSen -Ggray80 -A5000 -W0.3p,black
gmt colorbar -Cdiscontinuous.cpt -DjBC+w10c/0.7c+o0c/-1.5c+m -Bxa+l"nT"
gmt end show
结果图如下: