如何使用GMT画海洋磁异常图(附带制作色标)

一:裁剪研究区磁异常数据

在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

结果图如下:

 

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值