✍️ 田冬冬 • 📅 2024-09-09

# 单位

GMT 中的单位有两类：长度单位和距离单位。

备注

本手册中，长度单位专用于度量纸张上的距离，而距离单位则用于度量真实地球上的距离。

## 长度单位

GMT 中的长度量（如宽度、偏移量、符号大小等）可以使用厘米（cm）、 英寸（inch）或点（point）为单位， 它们之间的关系为 \(1 inch = 2.54 cm = 72 point\)。

厘米、英寸和点，在 GMT 中分别用 c、i 和 p 表示。例如 5c 表示 5 厘米，3i 表示 3 英寸，2p 表示 2 点。

GMT 有两种方式可以指定长度量的单位，即显式指定单位和隐式指定单位。

显式指定单位

  在长度量后直接加上单位以显式地指定当前长度量的单位。 比如 -X4c 意味着传给 -X 选项的长度量是 4 厘米

隐式指定单位

  若长度量后没有给定长度单位，则 GMT 会根据参数 PROJ_LENGTH_UNIT 所指定的默认长度单位对该长度量进行解释。 比如 -X4 中的长度量 4 会根据 PROJ_LENGTH_UNIT 取值的不同而被解释为 4 厘米、4 英寸或 4 点。

小技巧

使用长度单位时，建议遵循如下几条：

- 始终显式指定长度量的单位，不依赖于 PROJ_LENGTH_UNIT 的值， 以免导致同一脚本在不同机器上由于 GMT 参数配置的差异而导致结果不同

- 长度单位 p 用于指定较小的长度量，比如线宽、文字大小等

- 长度单位 c 和 i 用于指定较大的长度量，比如底图宽度、圆圈大小等

- 尽量使用 SI 单位制（c）而不用 US 单位制（i）， 因为国人对于 1 厘米要比 1 英寸更有概念

## 距离单位

对于真实地球上的距离量而言，常用单位包括：

- d：度（degree of arc）

- m：分（minute of arc）

- s：秒（second of arc）

- k：千米（kilometer）

- e：米（meter） 默认单位

还有几个不常用的单位：

- f：英尺（foot）

- M：Statute mile

- n：Nautical mile

- u：US Survey foot

对于一个距离量而言，若不指定单位，则默认其单位为 e （即 “米”）。 当然还是建议为每个距离量显式指定其单位，使得命令更加清晰。 比如在地球上以某点为中心画一个特定半径的圆，半径取 30 等效于 30e 表示 30 米， 半径取 30k 则表示 30 千米。

## 小练习

1. 执行命令 `gmt get PROJ_LENGTH_UNIT` 查看 GMT 的默认长度单位。

2. 如下命令在一个长宽均为 10 厘米（由 `-JX10c/10c` 控制）的矩形底图中心， 绘制了一个直径为 3 厘米（由 `-Sc3c` 控制）的圆:

       echo 5 5 | gmt plot -JX10c/10c -R0/10/0/10 -Baf -Sc3c -W1p -pdf units

   将 `-Sc3c` 改成 `-Sc3i` 或 `-Sc3` 并绘图，比较圆圈的大小差异以理解 单位的作用。