GMT6入门教程(5)绘制地形起伏和直方图

1.绘制地形起伏

原文地址:绘制地形起伏 — GMT中文手册

模块:grdimage

1.1全球地形起伏数据

要绘制全球或区域地形起伏图,首先需要拥有地形起伏数据,即不同经纬度处的高程或海深数据。

GMT用户可以通过给定文件名 @earth_relief_xxx 的方式来指定要使用某个精度的地形。xxx 用于指定数据精度,例如:15m、05m、01m和 15s 分别表示数据分辨率为15弧分、5弧分、1弧分和15弧秒。

全球地形起伏数据的详细介绍见: earth_relief: 全球地形起伏数据

1.2绘制全球地形起伏图

命令:gmt grdimage @earth_relief_05m -JH180/10c

1.3绘图区域地形起伏图

命令:gmt grdimage @earth_relief_30s -JM15c -R118/125/20/26 -Baf -BWSen

1.2增加光照效果

为图幅加上光照效果,是为了让地形起伏图更加立体。可以指定光照的方向、强度等参数,也可以直接使用 -I+d 以使用默认的光照效果。

增加光照效果本质上是计算了每个点沿着某个方位角的方向梯度,然后根据每个点的方向梯度的正负以及振幅调节该点颜色的亮度值。对于向阳处,其方向梯度为正值,则增加该点颜色的亮度;对于背阴处,其方向梯度为负值,则降低该点颜色的亮度。由此达到增加光照效果、增强立体感的目的。

命令:gmt grdimage @earth_relief_30s -JM15c -R118/125/20/26 -Baf -BWSen -I+d

1.3添加色标

grdimage 绘制地形起伏数据本质上就是将高程的数值与颜色之间对应起来。二者之间的对应关系由色标文件(即CPT文件)决定。用 colorbar 向图中添加色标。

模块:colorbar

初始命令:gmt colorbar

进一步使用 -B 选项设置色标的标注间隔,并为色标添加一个标签,

命令: gmt colorbar -Bxaf+l"Elevation (m)"

也可以使用了 -D 选项将色标放在了地形起伏图的右侧中间(JMR)向右偏移1.5厘米,色标长度为10厘米,并将标签放在了色标左侧(+ml)

命令:gmt colorbar -DJMR+w10c+o1.5c/0c+ml -Bxa1000f -By+l"m"

1.4制作CPT文件

模块:makecptgrd2cpt

使用 makecpt 模块在GMT内置CPT globe 的基础上生成了一个-8000到8000范围内的新CPT文件。生成的CPT文件将作为当前CPT文件,供接下来的 grdimage 和 colorbar 命令使用。

命令:gmt makecpt -Cglobe -T-8000/8000

gmt grdimage @earth_relief_30s -I+d

gmt colorbar -Bxa2000 -B+l"m"

2.绘制直方图

原文地址:绘制直方图 — GMT中文手册

模块:histogram

使用数据地址:eq.dat

2.1垂直直方图

GMT中默认绘制垂直直方图。绘制直方图只需要一列数据,而上面的示例数据有三列。我们需要使用 -i2 选项将输入数据的第三列(GMT中列号从0开始)传递给 histogram。

命令:gmt histogram eq.dat -Baf -T5 -W1p -i2 -png hist1

解释:

  • -T5 设置了统计时每一个直方的宽度是5。该选项还可以更灵活地设置直方的最大最小值等属性,详见 histogram 模块文档
  • -W1p 设置直方的边框宽度为1p
  • -Baf 则为整张图加了一个自动的边框

2.2增加修饰

命令:gmt histogram eq.dat -JX15c/9c -R0/40/0/600 -Bxaf+l"Depth" -Byaf+l"Counts" -BWSen -D -W1p -Gred -T5 -i2 -png hist2

解释:

  • -JX15c/9c 指定了整张直方图的宽度和高度。若不指定,GMT会自动指定一个合适的值
  • -R0/40/0/600 设置了直方图的数据范围。若不指定,histogram 会自动确定最适合的数据范围。这里我们根据前图的统计结果指定了新的 -R 范围
  • -B 选项用于指定底图边框和坐标轴属性
  • -Gred 表示为直方填充红色
  • -D 会在每个直方的上方标注该直方中的数量。该选项还可以接更多的子选项以控制标注的位置、字体和角度等

2.3水平直方图

绘制水平直方图,需要增加 -A 选项。

命令:gmt histogram eq.dat -JX15c/9c -R0/40/0/600 -Bxaf+l"Depth" -Byaf+l"Counts" -BWSen -A -D -W1p -Gred -T5 -i2 -png hist3

2.4百分比直方图

histogram 的 -Z 选项可以进一步控制统计图的类型。默认纵轴为统计数目。 -Z1 表示绘制百分比直方图。

命令:gmt histogram eq.dat -JX15c/9c -Bxaf+l"Depth" -Byaf+l"Counts"+u"%" -BWSen -Z1 -W1p -Gred -T5 -i2 -png hist4

解释:由于纵轴的含义变了,之前的 -R 选项就不再合适了,因而我们去除了 -R 选项让GMT自动确定最佳数据范围。