barb

贡献者:

何星辰

最近更新日期:

2025-10-21


官方文档:

barb

简介:

在 2D 和 3D 中绘制风羽

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

语法

barb [ table ] -Jparameters -Jz|Zparameters -Rwest/east/south/north[/zmin/zmax][+r][+uunit] [ -B[p|s]parameters ] [ -Ccpt ] [ -Ddx/dy[/dz] ] [ -Gfill ] [ -Iintens ] [ -N ] [ -Qlength[+aangle][+g-|fill][+jb|c|e][+p-|pen][+sscale][+wwidth][+z] ] [ -U[stamp] ] [ -V[level] ] [ -W[pen][attr] ] [ -X[a|c|f|r][xshift] ] [ -Y[a|c|f|r][yshift] ] [ -aflags ] [ -bibinary ] [ -dinodata[+ccol] ] [ -eregexp ] [ -fflags ] [ -hheaders ] [ -iflags ] [ -pflags ] [ -ttransp ] [ -:[i|o] ]

必选选项

-Jprojection (more …)

设置地图投影方式

-Rwest/east/south/north[/zmin/zmax][+r][+uunit]

指定感兴趣的区域。 |Add_-Rgeo|

该选项可以通过多种方式来定义区域:

  1. -Rwest/east/south/north 这是在使用经纬线呈直线的地图投影时指定地理区域的标准方式。 坐标可用十进制度表示,也可以使用 [±]dd:mm[:ss.xxx][W|E|S|N] 格式表示。

  2. -Rwest/south/east/north+r 当使用倾斜(斜轴)投影时,经线和纬线不再适合作为地图边界。 在这种情况下,可以通过给出矩形的左下角与右上角的地理坐标,并添加 +r 修饰符, 来保证地图输出区域为矩形,即使经纬线不是直线。

  3. -Rg-Rd 用于快速指定全球范围。-Rg 表示经度 0 到 360,纬度 -90 到 +90; -Rd 表示经度 -180 到 +180,纬度 -90 到 +90。

  4. -Rcode1,code2,…[+e|r|Rincs] 通过查阅 DCW(数字世界地图)数据库,间接地根据一个或多个国家代码来确定边界区域。 可以使用两个字符的 ISO 3166-1 alpha-2 国家代码(例如 NO)或完整国名(例如 Norway)。 如果要选择国家内的某个州(若可用),请追加 .state(如 US.TX),或使用完整州名(如 Texas)。 若要选择整个大陆,请直接拼写完整名称(如 -RAfrica )。 还可指定 DCW数据 的缩写或完整名称。所有名称大小写不敏感。 可附加以下修饰符:

    • +r:将区域边界调整为 incxinc/yincwinc/einc/sinc/ninc 的整数倍(默认不调整)。 例如,-RFR+r1 将法国的边界取整到最接近的整数度。inc 为正数表示扩大范围,负数表示缩小。

    • +R:在区域边界的基础上增加或减少 incxinc/yincwinc/einc/sinc/ninc 的数值(默认不扩展)。 inc 为正数表示扩大区域,负数表示缩小。

    • +e:将区域边界调整为 incxinc/yincwinc/einc/sinc/ninc 的整数倍, 并确保边界至少调整 inc 的 0.25 倍(默认不调整)。

  5. -Rxmin/xmax/ymin/ymax[+uunit] 在投影单位(如 UTM 米制)下指定区域。 其中 xmin/xmax/ymin/ymax 为与所选投影 (-J) 兼容的笛卡尔坐标。 unit 为允许的 单位-j 选项 (默认是 e)。 该选项会反算出实际的矩形地理区域。

    对于以 (0,0) 为中心的投影区域,可使用简写形式 -Rhalfwidth[/halfheight]+uunit, 其中 halfheight 默认为 halfwidth。此简写形式必须带 +u 修饰符。

  6. -Rjustifylon0/lat0/nx/ny 其中 justify 为两字符组合: L|C|R (左,中,右) and T|M|B (上,中,下),(例如, BL 为左下角) justify 指明 lon0/lat0 是矩形区域的哪个点, 而 nxny 与网格间距(通过 -I 设置)共同决定区域范围。 该形式常用于创建网格。 例如:-RCM25/25/50/50 表示一个以 (25,25) 为中心、尺寸为 50×50 的网格区域。

  7. -Rgridfile 从指定网格文件中复制区域范围设置。 根据调用模块的不同,此方式可能同时设置网格间距与网格配准方式 (参见 网格配准 )。

  8. -Ra[uto] 或 -Re[xact] 仅在现代模式下的绘图模块可用。自动从输入数据中确定区域:

    • -Re:精确匹配数据的范围(默认若未指定 -R)。

    • -Ra:在数据范围基础上略微扩大,使区域边界为数据范围的合理倍数。

对于三维透视图(-p 选项) ,可以加上 /zmin/zmax 指定Z轴的范围。

可选选项

table

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

-Bparameters (more …)

设置底图边框和轴属性。

-Ccpt

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

-Ddx/dy[/dz]

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

-Gfill

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

-Iintens

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

-N[c|r]

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

-Qlength[+aangle][+g-|fill][+jb|c|e][+p-|pen][+sscale][+wwidth][+z]

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

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

  • +g - 关闭填充(如果为 -)或设置风羽填充 [默认填充]

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

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

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

  • +w - 设置风羽宽度

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

-U[label][+c][+jjust][+odx/dy] (more …)

在图上绘制GMT时间戳logo

-V[level] (more …)

设置 verbose 等级 [w]

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

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

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

-Y[a|c|f|r][yshift[u]] (more …)

移动绘图原点

-bi[ncols][type][w][+l|b] (more …)

设置二进制输入数据的格式

-dinodata (more …)

将输入数据中值为 nodata 的列替换为 NaN

-e[~]“pattern” | -e[~]/regexp/[i] (more …)

筛选或剔除匹配指定模式的数据记录

-f[i|o]colinfo (more …)

指定输入或输出列的数据类型

-h[i|o][n][+c][+d][+msegheader][+rremark][+ttitle] (more …)

跳过或生成指定数目的头段记录

-icols[+l][+sscale][+ooffset][,][,t[word]] (more …)

设置输入数据列及简单变换(0表示第一列,t 表示文本列)

-p[x|y|z]azim[/elev[/zlevel]][+wlon0/lat0[/z0]][+vx0/y0] (more …)

设置3D透视视角

-t[transp] (more …)

设置图层透明度(百分比)。取值范围为0(不透明)到100(全透明)

-:[i|o] (more …)

交换输入或输出中的第一和第二列

-^-

显示简短的帮助信息,包括模块简介和基本语法信息(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

段头解析

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

-Gfill

使用新的 fill 并开启填充。

-G-

关闭填充。

-G

恢复默认填充(命令行未设置则无填充)。

-Wpen

使用新的 pen 并开启轮廓。

-W

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

-W-

关闭轮廓。

-Zzval

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

-ZNaN

从 CPT 获取 NaN 颜色。

相关模块

colorbar grdbarb, plot3d