sample1d¶
sample1d - Resample 1-D table data using splines
Synopsis¶
sample1d [ table ] [ -Af|p|m|r|R[+l] ] [ -Fl|a|c|n[+1|+2] ] [ -Iinc[unit] ] [ -Nknotfile ] [ -Sstart[/stop] ] [ -Tcol ] [ -V[level] ] [ -bbinary ] [ -dnodata ] [ -eregexp ] [ -fflags ] [ -ggaps ] [ -hheaders ] [ -iflags ] [ -oflags ]
Note: No space is allowed between the option flag and the associated arguments.
Description¶
sample1d reads a multi-column ASCII [or binary] data set from file [or standard input] and interpolates the time-series or spatial profile at locations where the user needs the values. The user must provide the column number of the independent (monotonically increasing or decreasing) variable, here called time (it may of course be any type of quantity). Equidistant or arbitrary sampling can be selected. All columns are resampled based on the new sampling interval. Several interpolation schemes are available. Extrapolation outside the range of the input data is not supported.
Required Arguments¶
None.
Optional Arguments¶
- table
- This is one or more ASCII [of binary, see -bi] files with one column containing the independent time variable (which must be monotonically in/de-creasing) and the remaining columns holding other data values. If no file is provided, sample1d reads from standard input.
- -Af|p|m|r|R
- For track resampling (if -T...unit is set) we can select how this is to be performed. Append f to keep original points, but add intermediate points if needed; note this selection does not necessarily yield equidistant points [Default], m as f, but first follow meridian (along y) then parallel (along x), p as f, but first follow parallel (along y) then meridian (along x), r to resample at equidistant locations; input points are not necessarily included in the output, and R as r, but adjust given spacing to fit the track length exactly. Finally, append +l if distances should be measured along rhumb lines (loxodromes).
- -Fl|a|c|n[+1|+2]
- Choose from l (Linear), a (Akima spline), c (natural cubic spline), and n (no interpolation: nearest point) [Default is -Fa]. You may change the default interpolant; see GMT_INTERPOLANT in your gmt.conf file. You may optionally evaluate the first or second derivative of the spline by appending 1 or 2, respectively.
- -Iinc[unit]
- inc defines the sampling interval [Default is the separation between the first and second abscissa point in the table]. Append a distance unit (see UNITS) to indicate that the first two columns contain longitude, latitude and you wish to resample this path with a spacing of inc in the chosen units. For sampling of (x, y) Cartesian tracks, specify the unit as c. Use -A to control how path resampling is performed.
- -Nknotfile
- knotfile is an optional ASCII file with the time locations where the data set will be resampled in the first column. Note: If -H is selected it applies to both table and knotfile. Also note that -i never applies to knotfile since we always consider the first column only.
- -Sstart[stop]
- For equidistant sampling, start indicates the time of the first output value. [Default is the smallest even multiple of inc inside the range of table]. Optionally, append /stop to indicate the time of the last output value [Default is the largest even multiple of inc inside the range of table].
- -Tcol
- Sets the column number of the independent time variable [Default is 0 (first)].
- -V[level] (more ...)
- Select verbosity level [c].
- -bi[ncols][t] (more ...)
- Select native binary input. [Default is 2 (or at least the number of columns implied by -T)].
- -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.
- -e[~]"pattern" | -e[~]/regexp/[i] (more ...)
- Only accept data records that match the given pattern.
- -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 and transformations (0 is first column).
- -ocols[,...] (more ...)
- Select output columns (0 is first column).
- -^ or just -
- Print a short message about the syntax of the command, then exits (NOTE: on Windows just use -).
- -+ 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 all options, then exits.
Units¶
For map distance unit, append unit d for arc degree, m for arc minute, and s for arc second, or e for meter [Default], f for foot, k for km, M for statute mile, n for nautical mile, and u for US survey foot. By default we compute such distances using a spherical approximation with great circles. Prepend - to a distance (or the unit is no distance is given) to perform "Flat Earth" calculations (quicker but less accurate) or prepend + to perform exact geodesic calculations (slower but more accurate).
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, absolute time is under the control of FORMAT_DATE_OUT and FORMAT_CLOCK_OUT, whereas general floating point values are formatted according to FORMAT_FLOAT_OUT. Be aware that the format in effect can lead to loss of precision in ASCII 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.
Calendar Time Sampling¶
If the abscissa are calendar times then you must use the -f option to indicate this. Furthermore, -I then expects an increment in the current TIME_UNIT units. There is not yet support for variable intervals such as months.
Examples¶
To resample the file profiles.tdgmb, which contains (time,distance,gravity,magnetics,bathymetry) records, at 1km equidistant intervals using Akima's spline, use
gmt sample1d profiles.tdgmb -I1 -Fa -T1 > profiles_equi_d.tdgmb
To resample the file depths.dt at positions listed in the file grav_pos.dg, using a cubic spline for the interpolation, use
gmt sample1d depths.dt -Ngrav_pos.dg -Fc > new_depths.dt
To resample the file points.txt every 0.01 from 0-6, using a cubic spline for the interpolation, but output the first derivative instead (the slope), try
gmt sample1d points.txt S0/6 -I0.01 -Fc+1 > slopes.txt
To resample the file track.txt which contains lon, lat, depth every 2 nautical miles, use
gmt sample1d track.txt -I2n -AR > new_track.dt
To do approximately the same, but make sure the original points are included, use
gmt sample1d track.txt -I2n -Af > new_track.dt
To obtain a rhumb line (loxodrome) sampled every 5 km instead, use
gmt sample1d track.txt -I5k -AR+l > new_track.dt