4.2 单位

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

注解

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

4.2.1 长度单位

GMT 中的长度量可以使用厘米(cm)、英寸(inch)或点(point)为单位。它们之间的关系如下:

1 inch = 2.54 cm = 72 point

厘米、英寸和点,在 GMT 中分别用 cip 表示。例如 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 用于指定较小的长度量,比如线宽、文字大小等
  • 长度单位 ci 用于指定较大的长度量,比如底图宽度、圆圈大小等
  • 尽量使用 SI 单位制(c)而不用 US 单位制(i),因为国人对于1厘米要比1英寸更有概念

4.2.2 距离单位

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

  • 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千米。

对于距离量而言,还涉及到如何计算地球或任意星球上两点之间距离的问题。GMT 中提供了三种不同精度的距离计算方式,分别是 Flat Earth 距离、大圆路径距离和测地距离。三种距离计算方式的详细介绍见附录中“三种距离计算方式”一节。本节只介绍如何告诉GMT你想要用哪种距离计算方式。

  1. 大圆路径距离: 将地球当做球体,是GMT中默认使用的距离计算方式。比如距离量 50k 就默认用大圆弧距离来计算
  2. Flat Earth距离: 是大圆弧距离的一阶近似,通过在距离量前加上减号来使用这种计算方式。比如距离量 -50k 则使用Flat Earth方式计算距离
  3. 测地距离: 计算距离时考虑了地球椭率,可以通过在距离量前加上加号来使用这种计算方式。比如距离 +50k 则使用大地测量方式来计算距离

三种距离计算的方式,从计算精度上看:测地距离>大圆路径距离>Flat Earth距离;从计算速度上看,Flat Earth距离>大圆路径距离>测地距离。

4.2.3 小练习

  1. 使用 gmt get PROJ_LENGTH_UNIT 查看 GMT 的默认长度单位。

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

    echo 5 5 | gmt psxy -JX10c/10c -R0/10/0/10 -Baf -Sc3c -W1p > test.ps
    

    -Sc3c 改成 -Sc3i-Sc3 并绘图查看图件的区别。