filter1d man page

filter1d — Do time domain filtering of 1-D data tables


filter1d [ table ] type<width>[mode] [ increment ] [ ] [ ignore_val ] [ lack_width ] [ t_col ] [ q_factor ] [ symmetry_factor ] [ t_min/t_max/t_inc[+] ] [ [level] ] [ -b<binary> ] [ -d<nodata> ] [ -f<flags> ] [ -g<gaps> ] [ -h<headers> ] [ -i<flags> ] [ -o<flags> ] [ -:[i|o] ]

Note: No space is allowed between the option flag and the associated arguments.


filter1d is a general time domain filter for multiple column time series data. The user specifies which column is the time (i.e., the independent variable). (See -N option below). The fastest operation occurs when the input time series are equally spaced and have no gaps or outliers and the special options are not needed. filter1d has options -L, -Q, and -S for unevenly sampled data with gaps.

Required Arguments

Sets the filter type. Choose among convolution and non-convolution filters. Append the filter code followed by the full filter <width> in same units as time column. Available convolution filters are:

(b) Boxcar: All weights are equal.

(c) Cosine Arch: Weights follow a cosine arch curve.

(g) Gaussian: Weights are given by the Gaussian function.

(f) Custom: Instead of width give name of a one-column file with your own weight coefficients.

Non-convolution filters are:

(m) Median: Returns median value.

(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: Return the minimum of all values.

(L) Lower: Return minimum of all positive values only.

(u) Upper: Return maximum of all values.

(U) Upper: Return maximum or all negative values only.

Upper case type B, C, G, M, P, F will use robust filter versions: i.e., replace outliers (2.5 L1 scale off median) with median during filtering.

In the case of L|U it is possible that no data passes the initial sign test; in that case the filter will return 0.0.

Optional Arguments

One or more ASCII (or binary, see -bi[ncols][type]) data table file(s) holding a number of data columns. If no tables are given then we read from standard input.
increment is used when series is NOT equidistantly sampled. Then increment will be the abscissae resolution, i.e., all abscissae will be rounded off to a multiple of increment. Alternatively, resample data with sample1d.
Include Ends of time series in output. Default loses half the filter-width of data at each end.
To ignore values; If an input value equals ignore_val it will be set to NaN.
Checks for Lack of data condition. If input data has a gap exceeding width then no output will be given at that point [Default does not check Lack].
Indicates which column contains the independent variable (time). The left-most column is # 0, the right-most is # (n_cols - 1). [Default is 0].
Assess Quality of output value by checking mean weight in convolution. Enter q_factor between 0 and 1. If mean weight < q_factor, output is suppressed at this point [Default does not check Quality].
Checks symmetry of data about window center. Enter a factor between 0 and 1. If ( (abs(n_left - n_right)) / (n_left + n_right) ) > factor, then no output will be given at this point [Default does not check Symmetry].
Make evenly spaced time-steps from t_min to t_max by t_inc [Default uses input times]. Append + to t_inc if you are specifying the number of equidistant points instead.
-V[level] (more ...)
Select verbosity level [c].
-bi[ncols][t] (more ...)
Select native binary input.
-bo[ncols][type] (more ...)
Select native binary output. [Default is same as input].
-d[i|o]nodata (more ...)
Replace input columns that equal nodata with NaN and do the reverse on output.
-f[i|o]colinfo (more ...)
Specify data types of input and/or output columns.
-g[a]x|y|d|X|Y|D|[col]z[+|-]gap[u] (more ...)
Determine data gaps and line breaks.
-h[i|o][n][+c][+d][+rremark][+rtitle] (more ...)
Skip or produce header record(s).
-icols[l][sscale][ooffset][,...] (more ...)
Select input columns (0 is first column).
-ocols[,...] (more ...)
Select output columns (0 is first column).
-:[i|o] (more ...)
Swap 1st and 2nd column on input and/or output.
-^ or just -
Print a short message about the syntax of the command, then exits (NOTE: on Windows use just -).
-+ or just +
Print an extensive usage (help) message, including the explanation of any module-specific option (but not the GMT common options), then exits.
-? or no arguments
Print a complete usage (help) message, including the explanation of options, then exits.
Print GMT version and exit.
Print full path to GMT share directory and exit.

ASCII Format Precision

The ASCII output formats of numerical data are controlled by parameters in your gmt.conf file. Longitude and latitude are formatted according to FORMAT_GEO_OUT, whereas other values are formatted according to FORMAT_FLOAT_OUT. Be aware that the format in effect can lead to loss of precision in the output, which can lead to various problems downstream. If you find the output is not written with enough precision, consider switching to binary output (-bo if available) or specify more decimals using the FORMAT_FLOAT_OUT setting.


To filter the data set in the file cruise.gmtd containing evenly spaced gravity, magnetics, topography, and distance (in m) with a 10 km Gaussian filter, removing outliers, and output a filtered value every 2 km between 0 and 100 km:

gmt filter1d cruise.gmtd -T0/1.0e5/2000 -FG10000 -N3 -V > filtered_cruise.gmtd

Data along track often have uneven sampling and gaps which we do not want to interpolate using sample1d. To find the median depth in a 50 km window every 25 km along the track of cruise v3312, stored in v3312.dt, checking for gaps of 10km and asymmetry of 0.3:

gmt filter1d v3312.dt -FM50 -T0/100000/25 -L10 -S0.3 > v3312_filt.dt

See Also

gmt , sample1d , splitxyz


GMT 5.2.1 November 12, 2015