wiggle

贡献者

周茂


官方文档

wiggle

简介

绘制沿轨 z = f(x,y) 异常

从文件或者标准输入中读取 (x,y,z),在沿轨方向绘制 z 值。连续的 (x,y) 坐标对定义了沿轨距离轴,z 轴垂直于距离轴,形成右手坐标系。正异常或者负异常都可以带有阴影。

语法

gmt wiggle [ table ] -Jparameters -Rwest/east/south/north[/zmin/zmax][+r][+uunit] -Zscale [ -A[azimuth] ] [ -B[p|s]parameters ] [ -Ccenter ] [ -Drefpoint ] [ -Fpanel ] [ -Gfill[+n][+p] ] [ -Ifix_az ] [ -Tpen ] [ -U[stamp] ] [ -V[level] ] [ -Wpen ] [ -X[a|c|f|r][xshift] ] [ -Y[a|c|f|r][yshift] ] [ -bibinary ] [ -dinodata[+ccol] ] [ -eregexp ] [ -fflags ] [ -ggaps ] [ -hheaders ] [ -iflags ] [ -pflags ] [ -qiflags ] [ -ttransp ] [ -wflags ] [ -:[i|o] ]

必选选项

table

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

-Jprojection (more …)

设置地图投影方式

-Rxmin/xmax/ymin/ymax[+r][+uunit] (more …)

指定数据范围

-Zscale

以数据坐标单位或距离单位指定异常值的缩放因子(即比例尺)。追加 ci 或者 p 表明距离单位分别为 cm,inch 或 point。如果不指定单位,使用 PROJ_LENGTH_UNIT 默认的单位。

可选参数

-A[azimuth]

设置绘制正异常值的方位角,正异常将被“吸引”到该方向。即:如果轨迹的正法线的方位角在 azimuth ± 90 度的范围内,则沿其正法线方向绘制正异常值。如果正法线的方位角在该范围外,则沿负法线的方向绘制正异常值。[默认为 -A0]

-Bparameters (more …)

设置底图边框和轴属性

-Ccenter

绘图前从数据中减去 center,默认值为 0

-D[g|j|J|n|x]refpoint+wlength[+jjustify][+al|r][+odx[/dy]][+l[label]]

使用四种坐标系统定义比例尺的参考点,详见修饰物-定位

  • glon/lat 指定数据坐标为参考点

  • jcode 或者 Jcode 通过 2 个字母的对齐方式码指定锚点作为参考点

  • nxn/yn 指定归一化坐标系(即 0-1)为参考点

  • xx/y 指定绘图坐标 为参考点,追加 cm, inch, 或者 point 用来指定单位

  • +wlength 指定比例尺的长度,单位和数据(z 坐标)的单位一致

  • +jjustify 指定比例尺的锚点 [默认为 ML]

  • +al 将比例尺标签放在比例尺左边 [默认为比例尺右边]

  • +l[label] 指定将 z 坐标的单位用于比例尺标签 [默认无单位]。

比例尺标签的文字属性由 FONT_ANNOT_PRIMARY 控制。比例尺的刻度属性由 MAP_TICK_PEN_PRIMARY 控制。

备注

-Dj 或者 -DJ 选项将会影响锚点的位置,详见修饰物锚点

-F[+cclearances][+gfill][+i[[gap/]pen]][+p[pen]][+r[radius]][+s[[dx/dy/][shade]]]

绘制比例尺的背景面板,详见修饰物-背景面板

  • +gfill 指定面板填充颜色 [默认不填充]

  • +ppen 绘制面板边框。pen 为边框的画笔属性,若不指定 pen,则默认使用 MAP_DEFAULT_PEN

  • +r[radius] 绘制圆角边框,radius 为圆角的半径

  • +i[[gap/]pen] 在边框内部绘制一个内边框,gap 为内外边框空白距离 [默认为 2p], pen 为内边框的画笔属性 [默认使用 MAP_DEFAULT_PEN]

  • +cclearance 设置修饰物与面板之间的空白距离。默认情况下面板的大小由修饰物的大小决定,使用该子选项可以为面板增加额外的尺寸。 clearance 的具体设置包括下面 3 种情况:

    • gap 为四个方向增加相同的空白距离

    • xgap/ygap 分别为 X 方向和 Y 方向指定不同的空白距离

    • lgap/rgap/bgap/tgap 分别为四个方向指定不同的空白距离

  • +s[[dx/dy/][shade]] 设置面板背景阴影。dx/dy 为阴影区相对于面板的偏移量, shade 为阴影区颜色 [默认为 4p/-4p/gray50]

-Gfill[+n][+p]

设置异常值下的阴影填充的颜色和样式。 [默认不填充] 追加 +p 子选项为填充正异常区域 [默认]。追加 +n 子选项为填充负异常区域。追加 +n+p 为使用相同的方式填充正异常和负异常区域。

:如果需要设置正异常和负异常使用不同的填充方式,需要重复使用 -G 选项。

-Ifix_az

绘制异常值时使用固定方位角(见 -A 选项)。使用该选项时,轨迹法线的方位角将被 fixed_az 覆盖。

-Tpen

绘制轨迹 [默认不绘制]。可以附加画笔属性 [默认值为: width = 0.25p,color = black,style = solid]。

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

在图上绘制GMT时间戳logo

-V[level] (more …)

设置 verbose 等级 [w]

-Wpen

设置异常值轮廓画笔属性 [默认没有轮廓]

-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 …)

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

-g[a]x|y|d|X|Y|D|[col]zgap[+n|p] (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透视视角

-qi[~]rows[+ccol][+a|f|s] (more …)

筛选输入的行或数据范围

-t[transp] (more …)

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

-wy|a|w|d|h|m|s|cperiod[/phase][+ccol] (more …)

将输入坐标转换为循环坐标

-:[i|o] (more …)

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

-^-

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

-++

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

-? 或无参数

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

--PAR=value

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

示例

下面的示例展示了如果使用 wiggle 模块绘图。示例中使用的数据为 temp.dat

gmt begin wiggle_exam
gmt wiggle temp.dat -R-10/10/-3/3 -JM6i -B -Z100i -DjRM+w100+lnT -Tfaint -Gred+p -W1p -BWSne
gmt end show
../../_images/a4b87202969df8607a2924f80601d718.png

考虑另外一个示例:使用 track.xym 文件绘制沿轨磁异常,移去均值(32000 nTesla),比例尺设置为图上 1 cm 代表实际 500 nTesla。使用 15 cm 宽的立体等角投影,设置刻度间隔为 5 度,正异常阴影为红色,轨迹线宽度为 0.25p,颜色为蓝色:

gmt wiggle track.xym -R-20/10/-80/-60 -JS0/90/15c -Z500 -B5 \
-C32000 -Gred -T0.25p,blue -DjRM+w1000+lnT -V -pdf track_xym

上述示例中,正异常绘制方向为北方向,使用 -D 选项设置比例尺长度为 1000 nT 。如果要设置绘制正异常的方位角为固定的 45 度,可使用 -I 选项:

gmt wiggle track.xym -R-20/10/-80/-60 -JS0/90/15c -Z1000 -B5 \
-C32000 -Gred -I45 -T0.25p,blue -DjRM+w1000+lnT -V -pdf track_xym

除测线数据外,wiggle 模块也常用于绘制卫星沿轨观测序列,如 GMT 官方示例 。该示例使用 Geosat 卫星观测的沿轨海面高梯度数据来揭示海底构造和海岭。

Bugs

某些情况下,(x,y) 坐标的有效数字位数不足,导致局部方位角变化较大,异常摆动也较大。使用下面命令可以查看是否存在这种情况:

gmt mapproject -Af yourdata.xyz

如果存在上述情况,可以使用 filter1d 对数据滤波:

awk '{ print NR, $0 }' yourdata.xyz \
| gmt filter1d -Fb5 -N4 --FORMAT_FLOAT_OUT=%.12g > smoothed.xyz

上述命令使用了 5 个点的 boxcar 滤波,然后可以使用处理后的数据绘图。

相关模块

filter1d, basemap, gmtsplit