-s 选项

-s 选项用于控制是否输出含有 NaN 的记录。

默认情况下,GMT命令会输出所有记录,包括那些某列值为 NaN 的记录。使用 -s 选项可以控制是否输出含 NaN 的记录。其语法为:

-s[cols][+a][+r]

  • 只使用 -s,则不输出Z值(即第三列)为NaN的记录

  • cols 用于指定要检查的列,即只有指定的所有列都为NaN时,才输出或不输出该记录。 cols 是一系列用逗号分隔的列号或者列号范围。列号范围的格式为 start[:inc]:stop。若省略 inc 则默认其值为1。比如 2,5,7 表示检查第3、6、8列(列号从0开始); 0,2:3 表示检查第1、3、4 列。

  • +a 表示任意一列有NaN则不输出

  • +r 表示反操作,即只输出某列有 NaN 的记录

举几个例子。输入数据 input.dat 的内容为:

1 1 1   0
2 2 NaN 0
3 3 3   NaN
4 4 NaN NaN

不使用 -s 选项则会输出所有记录:

$ gmt convert input.dat
1   1       1       0
2   2       NaN     0
3   3       3       NaN
4   4   NaN NaN

使用 -s 选项则会压制第三列为NaN的记录的输出:

$ gmt convert input.dat -s
1   1       1       0
3   3       3       NaN

使用 -s+a 选项则只有任意一列有NaN则不输出该记录:

$ gmt convert input.dat -s+a
1   1       1       0
3   3       3       NaN

使用 -s3 选项则检查第四列(列号从0开始)是否为NaN:

$ gmt convert input.dat -s3
1   1       1       0
2   2       NaN     0

使用 -s2,3 则压制第3和4列均为NaN的记录的输出:

$ gmt convert input.dat -s2,3
1   1       1       0
2   2       NaN     0
3   3       3       NaN

使用 -s2,3+a 压制第3列或第四列为NaN的记录:

$ gmt convert input.dat -s2,3+a
1   1       1       0

使用 -s2,3+a+r 反向操作输出第三列或第三列为NaN的记录:

$ gmt convert input.dat -s2,3+a+r
2   2       NaN     0
3   3       3       NaN
4   4       NaN     NaN