14.7 绘制地形起伏图¶
本节描述如何绘制带有颜色和阴影的地形图。主要用到的模块有:
grdcut
:裁切地形数据grdgradient
:制作阴影梯度数据grdimage
:绘制地形pscoast
:绘制政区边界、湿地(水体)、比例尺psscale
: 绘制色标图例
绘图过程中需要的 Tibet.cpt 。
代码为:
#!/bin/bash
R=65/18/117/45+r
J=B90/0/40/30/6.5i
PS=GMT_tutor3.ps
D=earth_relief_03m.grd
gmt gmtset FONT_ANNOT_PRIMARY 10p
# 裁剪区域地形数据
gmt grdcut $D -R55/120/10/50 -GTibet.grd
# 计算区域地形梯度
gmt grdgradient Tibet.grd -A0 -Nt -Gint.grad
# 利用psbasemap确定格网标注等参数
gmt psbasemap -R$R -J$J -B10g10 -BwSEN -K > $PS
# 绘制地形
gmt grdimage -R$R -J$J -Bg10 Tibet.grd -Iint.grad -CTibet.cpt -K -O >> $PS
# 利用pscoast绘制水系、比例尺
gmt pscoast -R$R -J$J -N1/0.5p,white -Ia/0.15p,177/178/183 -I1/0.5p,61/99/172 -C81/174/254 -Lg86/18+c30+w1000+u+f -K -O >> $PS
# 绘制两个色标
gmt psscale -Dx-0.3i/1.4i+w2.5i/0.15i+ma -CTibet.cpt -G1600/9000 -By+lm -Bxa1000f200 -K -O >> $PS
gmt psscale -Dx-0.3i/0+w1.3i/0.15i+ma -CTibet.cpt -G-3500/0 -L -O >> $PS
rm gmt.* Tibet.grd int.grad
结果:
主要参数解释:
grdcut
指从大区域地形中裁剪出自定义范围的数据(本例中为55-120°E,纬度10-50°N),该操作可降低后续梯度计算的复杂度,提高绘图效率。grdgradient
模块中:-A
设置梯度计算的角度(以北为起始,顺时针计算),也可用-Aazim/azim2
表示计算两个方向梯度并取最大值。-N
表示归一化算法,一般有-Nt
(累积Cauchy分布)和-Ne
(累积Laplace分布)两种。-N
后可接参数,具体参考帮助手册,一般使用默认即可。grdimage
模块中:-I
接grdgradient
计算得到的梯度文件,-C
接地形渲染颜色表文件。GMT5.4版本中,-I
若未指定文件,则自动调用grdgradient
计算梯度。pscoast
模块绘制行政边界、水体等,为避免被地形覆盖,需在grdimage
之后进行。-N1/0.5p,white
表示以0.5p
宽的白色线条绘制国界。-Ia/0.15p,177/178/183
指绘制所有自然河流、人工运河,177/178/183
为线条颜色的RGB参数(浅灰)。-I1
表示绘制主要的恒流河,颜色为61/99/172
(深蓝)。-C
绘制湖泊,颜色为81/174/254``(天蓝色)。 ``-L
绘制比例尺,其中g86/18
指比例尺在图中的位置是86°E、 18°N;+c30
指所绘为30°N,中心经度之处的比例尺;+w1000
指比例尺长度为1000km;+u
表示在文字标注后显示长度单位,即km
;+f
表示比例尺样式为黑白相间的fancy样式。psscale
模块绘制图中左侧的两个色标。两个色标均绘制了颜色表Tibet.cpt
的一部分,用-G
表示截断范围。-D
选项表示色标在图中的位置:如第一句中-Dx-0.3i/1.4i
表示第一个色标绘在左下角原点左移0.3 inch,上移1.4 inch的位置,+w2.5i/0.15i
表示色标高2.5 inch,宽0.15 inch,+ma
表示色标的文字标注位于左侧。