sample1d

Resample 1-D table data using splines

Synopsis

gmt sample1d [ table ] [ -Af|p|m|r|R[+l] ] [ -Fl|a|c|n[+1|2] ] [ -Ncol ] [ -T[min/max/]inc[+a|n] | -Tfile|list ] [ -V[level] ] [ -bbinary ] [ -dnodata ] [ -eregexp ] [ -fflags ] [ -ggaps ] [ -hheaders ] [ -iflags ] [ -jflags ] [ -oflags ] [ -:[i|o] ] [ --PAR=value ]

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) when that is not the first column in data set. 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 -Tunit 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.
-Ncol
Sets the column number of the independent time variable [Default is 0 (first)].
-T[min/max/]inc[+a|n] | -Tfile|list
Make evenly spaced time-steps from min to max by inc [Default uses input times]. For details on array creation, see Generate 1D Array.
-V[level] (more …)
Select verbosity level [c].
-bi[ncols][t] (more …)
Select native binary format for primary 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]zgap[u][+n|p] (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][,][,t[word]] (more …)
Select input columns and transformations (0 is first column, t is trailing text, append word to read one word only).
-je|f|g (more …)
Determine how spherical distances are calculated.
-ocols[,…][t[word]] (more …)
Select output columns (0 is first column; t is trailing text, append word to write one word only).
-^ 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.
--PAR=value
Temporarily override a GMT default setting; repeatable. See gmt.conf for parameters.

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 (-jg) using the authalic radius (see PROJ_MEAN_RADIUS). You can use -jf to perform “Flat Earth” calculations (quicker but less accurate) or -je to perform exact geodesic calculations (slower but more accurate; see PROJ_GEODESIC for method used).

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.

Generate 1D Array

Make an evenly spaced coordinate array from min to max in steps of inc. Append +b if we should take log2 of min and max and build an equidistant log2-array using inc integer increments in log2. Append +l if we should take log10 of min and max and build an array where inc can be 1 (every magnitude), 2, (1, 2, 5 times magnitude) or 3 (1-9 times magnitude). For less than every magnitude, use a negative integer inc. Append +n if inc is meant to indicate the number of equidistant coordinates instead. Alternatively, give a file with output coordinates in the first column, or provide a comma-separated list of coordinates. If you only want a single value then you must append a comma to distinguish the list from the setting of inc.

If the module allows you to set up an absolute time series, append a valid time unit from the list year, month, week, day, hour, minute, and second to the given increment; add +t to ensure time column (or use -f) Note: The internal time unit is still controlled independently by TIME_UNIT. Some modules allow for +a which will paste the coordinate array to the output table.

Likewise, if the module allows you to set up a spatial distance series (with distance computed from the first two data columns), specify the increment as inc[unit] with a geospatial distance unit from the list degree (arc), minute (arc), second (arc), meter, foot, kilometer, Miles (statute), nautical miles, or survey foot; see -j for calculation mode. For Cartesian distances, you must use the special unit c.

Finally, if you are only providing an increment and obtain min and max from the data, then it is possible (max - min)/inc is not an integer, as required. If so then inc will be adjusted to accordingly. Alternatively, append +e to keep inc exact and adjust max instead.

Examples

Note: Below are some examples of valid syntax for this module. The examples that use remote files (file names starting with @) can be cut and pasted into your terminal for testing. Other commands requiring input files are just dummy examples of the types of uses that are common but cannot be run verbatim as written.

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 -N1 -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.txt -Tgrav_pos.dg -Fc > new_depths.txt

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 -T0/6/0.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 -T2n -AR > new_track.txt

To do approximately the same, but make sure the original points are included, use

gmt sample1d track.txt -T2n -Af > new_track.txt

To obtain a rhumb line (loxodrome) sampled every 5 km instead, use

gmt sample1d track.txt -T5k -AR+l > new_track.txt

To sample temperatures.txt every month from 2000 to 2018, use

gmt sample1d temperatures.txt -T2000T/2018T/1o > monthly_temp.txt