filter1d

官方文档

filter1d

简介

对1D表数据做时间域滤波

filter1d 用于对多列时间序列数据做时间域滤波。用户需要指定哪一列数据代表时间(即自变量)。若输入的时间序列是等间隔且无间断或outliers则滤波速度较快。对于有间断的不等间隔数据,需要使用 -L -Q-S 选项。

对于空间序列数据,提供了一个选项用于计算沿着测线的距离,并以此作为滤波的自变量。

语法

gmt filter1d [ table ] -Ftype<width>[modifier] [ -Dincrement ] [ -E ] [ -Llack_width ] [ -Nt_col ] [ -Qq_factor ] [ -Ssymmetry_factor ] [ -T[min/max/]inc[+e|+a|n] | -Tfile|list ] [ -V[level] ] [ -bbinary ] [ -dnodata ] [ -eregexp ] [ -fflags ] [ -ggaps ] [ -hheaders ] [ -iflags ] [ -jflags ] [ -oflags ] [ -:[i|o] ] [ --PAR=value ]

必选选项

-Ftypewidth[modifier]

设置滤波器类型

滤波器分为两大类,卷积滤波器和非卷积滤波器。 type 用于指定滤波器类型, width 指定滤波器宽度(单位与时间数据相同)。

对于卷积滤波器,type 可以取:

  • b Boxcar: 所有权重相同

  • c Cosine Arch: 权重为cosine曲线

  • g Gaussian: 权重为高斯函数

  • f Custom: 不指定 width 而是给定一个含单列数据的文件,以指定权重系数

对于非卷积滤波器,type 可以取:

  • m Median: 返回中位数

  • p Maximum likelihood probability (a mode estimator): Return modal value. If more than one mode is found we return their average value. Append - or + to the filter width if you rather want to return the smallest or largest of the modal values.

  • l Lower: 返回所有值中的最小值

  • L Lower: 返回所有正值中的最小值

  • u Upper: 返回所有值中的最大值

  • U Upper: 返回所有负值中的最大值

大写的 B|C|G|M|P|F 会使用健壮滤波器。即在滤波时会将outliers替换为中位数。outliers 定义为偏离中位数 2.5 倍的 L1 sacle (1.4826倍的Median absolute deviation)。

对于 L|U 可能会出现没有数据大于或小于0,此时滤波器会返回0.0。

该模块默认对数据进行低通滤波,加上 +h 选项则对数据进行高通滤波。

选项

table

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

-Dincrement

当输入的时间序列是不等间隔采样时,需要使用该选项设置输出数据的分辨率 increment。所有横坐标(时间)都会被rounded off到 increment 的整数倍。当然,也可以使用 sample1d 对时间序列做重采样。

-E

输出时间序列的首尾端数据。默认情况下,首尾两端都会丢失半滤波器宽度的数据点

-Llack_width

检查数据间断。若输入数据存在超过 lack_width 的间断,则该数据点不输出值。

-Nt_col

指定哪一列数据包含自变量(即时间)。默认值为0,即第一列。

-Qq_factor

通过检查卷积过程中的平均权重以评估输出值的质量因子。

q_factor 的取值为0到1,若某点的卷积的平均权重小于 q_factor 则不输出该点。

-Ssymmetry_factor

检查数据关于时间窗中心的对称性。

symmetry_factor 的取值范围为0到1。若 ( (abs(n_left - n_right)) / (n_left + n_right) ) > factor,则该点不输出值。

-T[min/max/]inc[+e|+a|n] | -Tfile|list

生成时间序列

生成从 minmax 间隔为 inc 的等间隔数列。

-V[level] (more …)

设置 verbose 等级 [w]

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

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

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

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

-d[i|o]nodata (more …)

将输入数据中等于 nodata 的记录替换为 NaN,或将输出数据中值为 NaN 的记录替换为 nodata

-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 表示文本列)

-je|f|g (more …)

设置球面距离的计算方式

-ocols[,…][,t[word]] (more …)

设置输出数据列(0表示第一列,t 表示文本列)

-:[i|o] (more …)

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

-^-

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

-++

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

-? 或无参数

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

--PAR=value

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

相关模块

gmt , sample1d, splitxyz