數據類型

GMT可以繪製笛卡爾座標軸、地圖的經緯度軸以及絕對時間軸、相對時間軸。對於不同的座標軸,需要的數據類型也不同。GMT所支持的數據類型主要分爲四大類:

  • 地理座標
  • 絕對時間座標
  • 相對時間座標
  • 一般浮點數

地理座標

地理座標(即經緯度)有兩種表示方式:

  1. 以浮點型的度數表示。比如 -123.45 代表-123.45度

  2. 度分秒錶示:

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

    其中,dddmmssxxx 分別表示弧度、弧分、弧秒、弧毫秒。 WESN 分別代表西經、東經、北緯、南緯。例如 123:27W 代表西經123度27分,123:27:15.120W 表示西經123度27分15.12秒。

絕對時間座標

絕對時間由兩部分構成,即日期和時間,表示爲:

<date>T<clock>

其中 T 是關鍵字,用於分隔日期和時間。

日期 <date> 可以是如下格式的一種:

  1. yyyy[-mm[-dd]]:年-月-日,例如 20132015-102015-01-02
  2. yyyy[-jjj]:年-一年中的第幾日,例如 2015-040
  3. yyyy[-Www[-d]]:年-第幾周-該周內第幾天,例如 2014-W01-32014-W01

時間 <clock> 是24小時制,其格式爲:

hh:[mm:[ss[.xxx]]]

例如 10:10:35.120

使用過程中需要注意:

  1. GMT的時間數據的輸入/輸出格式默認爲 yyyy-mm-ddThh:mm:ss.xxx。若想要輸入其他格式的時間數據,需要修改 FORMAT_DATE_INFORMAT_CLOCK_IN;若想要輸出其他格式的時間數據,需要修改 FORMAT_DATE_OUTFORMAT_CLOCK_OUT
  2. 若未指定 <date> 則假定 <date> 爲今日
  3. 若未指定 <clock> 則認爲是 00:00:00
  4. 若指定了 <clock> 則必須要加 T,比如 T10:20:34 表示今天的早晨10點多
  5. 所有絕對時間在程序內部都會被轉換成相對於特定時刻的秒數

下面舉幾個絕對日期的例子:

  • 2014-02-10T10:00:00.000
  • T10:20:44.234
  • 2014-040T23:23:54.330

相對時間座標

相對時間座標即某個時間相對於參考時刻的秒數、小時數、天數或年數。因而在使用相對時間時,首先要給定兩個參數:參考時刻以及相對時間所使用的單位。

GMT參數 TIME_EPOCH 用於指定參考時刻, TIME_UNIT 用於指定相對時間的單位。也可以用參數 TIME_SYSTEM 同時指定這兩個參數。默認的參考時刻爲1970年1月1日午夜,默認的相對時間單位爲秒。

在指定了參考時刻後,相對時間就跟一般的浮點數沒什麼區別了。那如何區分一般的浮點數與相對時間呢?有兩種方式:

  1. 在數據後加上小寫的 t,比如 30t 表示相對於 TIME_EPOCH 間隔了 30 個 TIME_UNIT 時間單位的時刻
  2. 在命令行中使用 -ft 選項表明當前數據是相對時間,此時不需要在數字後加 t

一般座標值

在繪製常規的笛卡爾座標軸時,即輸入數據不是地理座標、絕對時間或相對時間時,輸入數據可以直接用浮點數表示,而不去在意其物理含義及單位。比如,5牛頓的力,5千克的質量,在 GMT 看來都只是浮點數 5

這些浮點數座標可以用兩種方式表示:

  1. 一般表示: [±]xxx.xxx,比如 123.45
  2. 指數表示: [±]xxx.xx[E|e|D|d[±]xx],比如 1.23E10