8.8 -b 选项

-b 选项用于控制二进制文件的输入/输出格式。

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

-b 的语法是:

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

-bi 表示对输入有效,-bo 表示对输出有效。 <ncols><type> 表示有 <ncols> 列个 <type> 类型的数据。多个 <ncols><type> 可以用逗号分隔。每个 <ncols><type> 都可以 w 表示对这些列数据强制做字节序转换。 +L+B 表示整个数据按照little-endian或big-endian字节序读入。

其中GMT支持的数据类型 <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> 个字节

若未指定 <ncols>,则假定 <ncols> 为程序所期望的数据列数,所有列均为 <type> 所指定的数据类型。

还可以使用 -h 选项 跳过二进制文件开头的若干个字节。

举几个例子:

  1. -bi2f,1i 表示要读入的二进制数据中有3列,前两列是单精度浮点型,最后一列为四字节有符号整型