✍️ 田冬冬 , 姚家园 , 朱邓达 • 📅 2025-06-08

# 数据类型

GMT 可以绘制地图的经纬度轴、绝对时间轴、相对时间轴以及笛卡尔坐标轴， 具体请参考 -B 选项。不同的坐标轴需要的数据类型也不同。 GMT 所支持的数据类型主要分为四大类：地理坐标、绝对时间坐标、相对时间坐标、一般浮点数。

## 地理坐标

地理坐标（即经纬度）有两种表示方式：

1. 浮点型的度数，如 -123.45 代表 –123.45 度

2. 度分秒：

   > [±]ddd[:mm[:ss[.xxx]]][W|E|S|N]

   - ddd、mm、ss、xxx 分别表示度、分、秒以及秒的小数部分

   - W、E、S、N 分别代表西经、东经、南纬、北纬

   例如，123:27W 代表西经 123 度27分， 123:27:15.120W 表示西经 123 度 27 分 15.12 秒。

## 绝对时间坐标

绝对时间由日期（date）和时间（clock）两部分构成，格式为：

> date T clock

其中，T 是关键字，用于分隔日期和时间。

日期可以是如下格式的一种：

1. 年–月–日：yyyy[-mm[-dd]]， 如 2013、2015-10、2015-01-02

2. 年–一年中的第几日：yyyy[-jjj]，如 2015-040

3. 年–一年中的第几周–该周内第几天：yyyy[-W ww[-d]]， 如 2014-W01-3、2014-W01

时间是 24 小时制，其格式为 hh:[mm:[ss[.xxx]]]， 如 10:10:35.120。

举几个绝对时间的例子：

- 2014-02-10T10:00:00.000

- 2014-040T23:23:54.330

- 2015-01-02 表示 2015 年 1 月 2 日 00:00:00

- T10:20:44.234 表示今天早晨 10 点多

备注

1. GMT 的时间数据的默认输入/输出格式为 yyyy-mm-ddThh:mm:ss.xxx。 若想要输入其它格式的时间数据，需要修改配置参数 FORMAT_DATE_IN 和 FORMAT_CLOCK_IN； 若想要输出其它格式的时间数据，需要修改配置参数 FORMAT_DATE_OUT 和 FORMAT_CLOCK_OUT

2. 若未指定 date，则默认 date 是今日

3. 若未指定 clock，则默认是 00:00:00

4. 若指定了 clock，则必须要加 T，如 T10:20:34 表示今天早晨 10 点多

5. GMT 在程序内部会将所有绝对时间转换成相对于特定时刻的秒数

## 相对时间坐标

相对时间坐标表示某个时刻相对于参考时刻的秒数、小时数、天数或年数。 因而使用相对时间时需要指定两个参数，即参考时刻与相对时间所使用的单位。

默认参考时刻为 1970 年 1 月 1 日午夜，默认相对时间单位为秒。 但可以分别用配置参数 TIME_EPOCH 和 TIME_UNIT 来指定参考时刻和相对时间的单位， 也可以用配置参数 TIME_SYSTEM 同时指定这两个参数。

指定了参考时刻之后，相对时间跟一般浮点数就没什么区别了。 那么，如何区分一般浮点数与相对时间呢？有以下两种方式：

1. 在数据后加上小写的 t，如 30t 表示相对于 TIME_EPOCH 间隔了 30 个 TIME_UNIT 时刻

2. 在命令行中使用 -ft 选项（不需要在数据后加 t），表明当前数据是相对时间坐标

## 一般浮点数

绘制常规的笛卡尔坐标轴时（即输入数据不是地理坐标、绝对时间或相对时间）， 输入数据可以直接用浮点数来表示。此时，不需要在意数据的物理含义及单位。 例如，在 GMT 看来，5 牛顿的力或 5 千克的质量都只是浮点数 5。

浮点数坐标可以用两种方式表示：

1. 一般表示：[±]xxx.xxx，如 123.45

2. 指数表示：[±]xxx.xx[E|e|D|d[±]xx]， 如 1.23E10