14.2 绘制地形起伏图

本节描述如何绘制带有颜色和阴影的地形图。主要用到的模块有:

  1. grdcut:裁切地形数据
  2. grdgradient:制作阴影梯度数据
  3. grdimage:绘制地形
  4. coast:绘制政区边界、湿地(水体)、比例尺
  5. colorbar: 绘制色标图例

绘图过程中需要的 Tibet.cpt

代码为:

#!/bin/bash
gmt begin tutor3 pdf,png
gmt set FONT_ANNOT_PRIMARY 10p

# 绘制地形
gmt grdimage @earth_relief_03m.grd -JB90/0/40/30/6.5i -R65/18/117/45+r -B10g10 -BwSEN -CTibet.cpt -I+d

# 利用coast绘制水系、比例尺
gmt coast -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

# 绘制两个色标
gmt colorbar -Dx-0.3i/1.4i+w2.5i/0.15i+ma -CTibet.cpt -G1600/9000 -By+lm -Bxa1000f200
gmt colorbar -Dx-0.3i/0+w1.3i/0.15i+ma -CTibet.cpt -G-3500/0 -L

gmt end
../../_images/earth-relief-gmtplot-0.png

本示例使用GMT提供的earth_relief数据绘制西藏地区的地形图。

  1. grdimage 模块中:-I+d 会自动计算地形梯度并应用到绘图中,使得地形起伏更加明显。
  2. coast 模块绘制行政边界、水体等,为避免被地形覆盖,需在 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样式。
  3. colorbar 模块绘制图中左侧的两个色标。两个色标均绘制了颜色表 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 表示色标的文字标注位于左侧。