=======================================================================================

​ 原始来源:GMT EXAMPLE 02

原始资料 绘图目的:使用网格数据绘制两个不同的图,高程和大地水准面

​ 绘图模块:gmtset, grd2cpt, grdgradient, grdimage, makecpt, psscale, pstext

=======================================================================================

加注释后的绘图代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
ps=example_02.ps
#Font_TITLE用于控制标题使用的字体,30p;MAP_ANNOT_OBLIQUE控制经纬度标注方向。
gmt set FONT_TITLE 30p MAP_ANNOT_OBLIQUE 0 #全局有效
#######################################################################################
#绘制图a
#makecpt用于制作CPT文件,这里的目的是,选择CPT文件rainbow中进行插值,定义要生成的CPT文件的Z值在。[-2,14]中,间隔为2。
gmt makecpt -Crainbow -T-2/14/2 > g.cpt
#grdimage用于在地图上绘制网格数据,HI_geoid.nc是即将被绘制的网格数据;-R指定了左下角坐标与右上角坐标,-JOc指定Oblique Mercator投影,宽度为4.4i;-E设置投影后网格经度,默认值100;-C指定了绘图时要指定的CPT文件;-X和-Y确定了绘图的原点
gmt grdimage HI_geoid2.nc -R160/20/220/30r -JOc190/25.5/292/69/4.5i -E50 -K -P \
-B10 -Cg.cpt -X1.5i -Y1.25i > $ps
#psscale用于绘制颜色棒,-D指定了色标的尺寸和位置,第一个jRM:放在右边,o:参考点的额外偏移量,w:色标的长度和宽度,mc:将标注和标签共同放在色标的另一边,并垂直打印,e:为前景色和背景色加一三角形;-B,对色标而言,纵向为x,横向为y;-Bx2+lGEOID,设置x的间隔为2,标签为GEOID;-By+lm,间隔值缺失,标签为m.
gmt psscale -Cg.cpt -DjRM+o0.6i/0+jLM+w2.88i/0.4i+mc+e -R -J -O -K -Bx2+lGEOID -By+lm >> $ps

#######################################################################################
#绘制图b
#-Z创建一个连续的颜色面板
gmt grd2cpt HI_topo2.nc -Crelief -Z > t.cpt
#计算网格的方向导数,-G指定输出文件
gmt grdgradient HI_topo2.nc -A0 -Nt -GHI_topo2_int.nc
#-I增加光照,以上一步生成的网格文件来增加光照,MAP_TITLE_OFFSET设置图标题的底部与轴标注的顶部之间的距离
gmt grdimage HI_topo2.nc -IHI_topo2_int.nc -R -J -B+t"H@#awaiian@# T@#opo and @#G@#eoid@#" \
-B10 -E50 -O -K -Ct.cpt -Y4.5i --MAP_TITLE_OFFSET=0.5i >> $ps
gmt psscale -Ct.cpt -DjRM+o0.6i/0+jLM+w2.88i/0.4i+mc -R -J -O -K -I0.3 -Bx2+lTOPO -By+lkm >> $ps
gmt pstext -R0/8.5/0/11 -Jx1i -F+f30p,Helvetica-Bold+jCB -O -N -Y-4.5i >> $ps << END
-0.4 7.5 a)
-0.4 3.0 b)
END
rm -f HI_topo2_int.nc ?.cpt gmt.conf

绘图效果:

需要关注的问题:

(1)gradient求网格文件的梯度,梯度文件可以作为grdimage中-I选项的网格文件用来控制光照强度

(2)-B选项的第二种命令风格

(3)暂时认为修改配置参数的位置会影响作用范围,若出现在开头则会影响整个脚本;若出现在某一行中只会影响当前行

日志:

(1)2018-11-23 添加原始代码