7.10 -b 选项

GMT中的很多程序都需要读入表数据,表数据可以是ASCII格式、二进制格式,也可以是 netCDF格式。

ASCII格式的数据很直观,可以直接看到有多少列数据。而二进制格式的数据,GMT在读入数据时是无法知道有多少列数据,也无法知道每一列数据的格式的。因而就需要使用 -b 选项告诉GMT输入或输出数据的具体格式。

-b 的语法是:

-b[i|o][<ncols>][<type>][w][+L|+B]

-bi 表示对输入有效, -bo 表示对输出有效。其后可以跟一个或多个用逗号分隔的 <ncols><type> ,表示有 <ncols> 列类型为是 <type> 的数据。其中 <type> 可以取:

  • c :即 int8_t ,字符型
  • u :即 uint8_t ,无符号字符型
  • h :即 int16_t ,两字节有符号整型
  • H :即 uint16_t ,两字节无符号整型
  • i :即 int32_t ,四字节有符号整型
  • I :即 uint32_t ,四字节无符号整型
  • l :即 int64_t ,八字节有符号整型
  • L :即 uint64_t ,八字节无符号整型
  • f :四字节单精度浮点型
  • d :八字节双精度浮点型
  • x :不代表某种数据类型,表示跳过 <ncols> 个字节

例如,要读入的二进制数据中有3列,前两列是单精度浮点型,最后一列是 int32_t 型,则在读入时可以用 -bi2f,1i

对于每一个 <ncols><type> 还可以加上 w 表示对数据强制做字节序转换。

+L+B 表示整个数据按照little-endian或big-endian字节序读入。

若未指定 <ncols> 则假定 <type> 适用于所有列, 读数据时 <ncols> 的值由数据期望得到的值决定。