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表示色标的文字标注位于左侧。
