✍️ 何星辰 • 📅 2025-10-21

# barb

官方文档:

  barb

简介:

  在 2D 和 3D 中绘制风羽

barb 从 files （或标准输入）读取 (x, y, 方位角, 风速) 数据， 并生成用于在地图上绘制风羽的 PostScript 代码。如果设置了 `-Jz|Z` 则 barb 会将输入数据的第三列解释为 z 值，并在三维中绘制风羽。 如果未通过 `-Q` 指定风羽长度，则 barb 会将输入数据的第三列和第四列分别解释为风羽长度和宽度。 使用 `-G` 选择填充颜色。如果设置了 `-G`，则 `-W` 将控制是否绘制轮廓。

## 语法

barb [ table ] `-J` parameters `-Jz|Z` parameters `-R` west/east/south/north[/zmin/zmax][+r][+u unit] [ `-B`[p|s]parameters ] [ `-C` cpt ] [ `-D` dx/dy[/dz] ] [ `-G` fill ] [ `-I` intens ] [ `-N` ] [ `-Q` length[+a angle][+g-|fill][+jb|c|e][+p-|pen][+s scale][+w width][+z] ] [ `-U`[stamp] ] [ `-V`[level] ] [ `-W`[pen][attr] ] [ `-X`[a|c|f|r][xshift] ] [ `-Y`[a|c|f|r][yshift] ] [ `-a` flags ] [ `-bi` binary ] [ `-di` nodata[+c col] ] [ `-e` regexp ] [ `-f` flags ] [ `-h` headers ] [ `-i` flags ] [ `-p` flags ] [ `-t` transp ] [ `-:`[i|o] ] [ --PAR=value ]

## 输入数据

table

  一个或多个ASCII或二进制表数据。若不提供表数据，则会从标准输入中读取。

## 必须选项

-J

-J projection

  设置地图投影方式。 (参数详细介绍)

-Jz|Z

-J z|Z parameters

  绘制三维图时，设置垂直方向 Z 轴的线性投影尺度。 参数用法与 -Jx|X 相同。

-R

-R west/east/south/north[/zmin/zmax][+r][+u unit]

  指定数据范围。对于三维透视图（-p 选项） ，可以加上 /zmin/zmax 指定Z轴的范围。 (参数详细介绍)

## 可选选项

-B

-B parameters

  设置底图边框和轴属性。 (参数详细介绍)

-C

-C cpt

  指定 CPT，或用 `-C` color1,color2[,color3,...] 来自动构建连续线性 CPT。 此时 color n 可以是 RGB 三元组、颜色名或 HTML 十六进制颜色（如 #aabbcc）。 填充颜色由第三列（或如果设置了 -Jz 则为第四列）的值决定。 其他字段会向后移动一列（例如风羽方位将位于第四而非第五列）。

-D

-D dx/dy[/dz]

  按指定偏移量 dx/dy[dz] 偏移绘图符号或线条位置 [默认无偏移]。

-G

-G fill

  为符号或多边形选择填充颜色或图案 [默认不填充]。 注意 barb 会在所有段头中搜索 `-G` 和 `-W`，并覆盖命令行设置。

-I

-I intens

  使用提供的 intens 值（通常在 ±1 范围内）来调节填充颜色模拟光照 [默认无效果]。

-N

-N[c|r]

  不裁剪落在地图边界之外的符号 [默认只绘制完全在地图内的点]。 该选项不适用于始终裁剪的线条和多边形。对于周期性（360°经度）地图，为避免重复边界裁剪符号需绘制两次。 使用 -Nr 关闭裁剪但保留重复符号，或 -Nc 保留裁剪但不绘制重复符号。

-Q

-Q length[+a angle][+g-|fill][+jb|c|e][+p-|pen][+s scale][+w width][+z]

  修改风羽参数。附加风羽 length [默认 0.5c]。 可添加多个修饰符来指定风羽的位置、形状及对齐方式，下文左/右指从线段起点到终点方向看风羽的两侧：

  - +a - 设置风羽角度 [120]

  - +g - 关闭填充（如果为 -）或设置风羽填充 [默认填充]

  - +p - 设置风羽画笔属性。如果 pen 以 - 开头，则不绘制轮廓 [默认画笔，绘制轮廓]

  - +j - 设置输入 x, y 点相对于风羽的位置。选择 b 起点 [默认]、e 终点或 c 中心

  - +s - 设置对应长风羽的风速 [默认 5]

  - +w - 设置风羽宽度

  - +z - 输入 (u,v) 分量而非 (方位角, 风速)

-U

-U[label][+c][+j just][+o dx/dy]

  在图上绘制GMT时间戳logo。 (参数详细介绍)

-V

-V[level]

  设置 verbose 等级 [w]。 (参数详细介绍)

-W

-W[pen][attr] (more ...)

  设置线条或符号轮廓画笔属性 [默认：宽度=默认，颜色=黑色，样式=实线]。 若附加 +cl 修饰符，则线条颜色取自 CPT (`-C`)；若附加 +cf， 则符号填充取 CPT 颜色。使用 +c 可同时应用两者。

-X

-Y

-X[a|c|f|r][xshift[u]]

-Y[a|c|f|r][yshift[u]]

  移动绘图原点。 (参数详细介绍)

-a

-a[[col=]name][,...]

  控制输入或输出为 OGR/GMT 格式时对非空间元数据的处理方式。 (参数详细介绍)

-bi

-bi[ncols][type][w][+l|b]

  控制二进制文件的输入格式。 (参数详细介绍)

-di

-di nodata

  将输入数据某些特定值当作NaN。 (参数详细介绍)

-e

-e[~]"pattern" | -e[~]/regexp/[i]

  筛选或剔除匹配指定模式的数据记录。 (参数详细介绍)

-f

-f[i|o]colinfo

  显式指定当前输入或输出数据中每一列的数据类型。 (参数详细介绍)

-h

-h[i|o][n][+c][+d][+m segheader][+r remark][+t title]

  在读/写数据时跳过文件开头的若干个记录。 (参数详细介绍)

-i

-i cols[+l][+s scale][+o offset][,...][,t[word]]

  对输入的数据进行列选择以及简单的代数运算。 (参数详细介绍)

-p

-p[x|y|z]azim[/elev[/zlevel]][+w lon0/lat0[/z0]][+v x0/y0]

  设置3D透视视角。 (参数详细介绍)

-t

-t[transp]

  设置图层透明度（百分比）。取值范围为0（不透明）到100（全透明）。 (参数详细介绍)

-:

-:[i|o]

  交换输入或输出数据的前两列。 (参数详细介绍)

-^ 或 -

  显示简短的帮助信息，包括模块简介和基本语法信息（Windows下只能使用 -）

-+ 或 +

  显示帮助信息，包括模块简介、基本语法以及模块特有选项的说明

-? 或无参数

  显示完整的帮助信息，包括模块简介、基本语法以及所有选项的说明

--PAR=value

  临时修改GMT参数的值，可重复多次使用。参数列表见 配置参数

## 示例

注: 下面是该模块的一些有效语法示例。使用远程文件（文件名以 `@` 开头）的示例可以剪切并粘贴到您的终端中进行测试。其他需要输入文件的命令只是常见的使用类型的虚拟示例，但不能按编写的原样运行。

在三维空间 (0-10), (0-10), (0-100) 上绘制蓝色柱状图（宽度 = 1.25 cm）， 位置由 heights.xyz 文件指定，每 2, 2, 10 设置刻度，从东南方向以 30° 仰角观察，可使用:

    gmt barb heights.xyz -R0/10/0/10/0/100 -Jx1.25c -Jz0.125c -So1.25c -Gblue \
         -Bx2+lXLABEL -By2+lYLABEL -Bz10+lZLABEL -B+t"3-D PLOT" -p135/30 -Uc -W -pdf heights

## 段头解析

段头记录可以包含以下一个或多个选项：

-G fill

  使用新的 fill 并开启填充。

-G-

  关闭填充。

-G

  恢复默认填充（命令行未设置则无填充）。

-W pen

  使用新的 pen 并开启轮廓。

-W

  恢复默认画笔 MAP_DEFAULT_PEN （如果命令行未设置）。

-W-

  关闭轮廓。

-Z zval

  根据 z 值 zval 从 CPT 获取填充颜色。

-Z NaN

  从 CPT 获取 NaN 颜色。

## 相关模块

colorbar, grdbarb, plot3d