sddsinterp

**description:**`sddsinterp`does polynomial interpolation of one or more columns of data as a function of a common independent variable. Interpolation may be done at specified points, at a sequence of points, or at points given in another SDDS file.**examples:**Do second-order polynomial interpolation of Twiss parameters at 250 points to get smoother-looking data:`sddsinterp APS.twi APS.interp -column=s,betax,betay -order=2 -sequence=250`**synopsis:**`sddsinterp [-pipe[=input][,output]] [`*inputFile*] [*outputFile*] [-columns=*independentQuantity*,*name*[,*name*...]]

{ -atValues=*valuesList*|

-fillIn |

-sequence=*points*[,*start*,*end*] |

-fileValues=*valuesFile*[,column=*columnName*][,parallelPages] }

[-order=*number*] [-printOut[=bare][,stdout]]

[-belowRange={value=*value*| skip | saturate | extrapolate | wrap}[,{abort | warn}]

[-aboveRange={value=*value*| skip | saturate | extrapolate | wrap}[,{abort | warn}]

**files:***inputFile*is an SDDS file containing columns of data to be interpolated. One column is selected as the independent variable. Any number of others may be specified as dependent variables. If*inputFile*contains multiple data pages, each is treated separately.*outputFile*contains the independent variable values at which interpolation was performed, in a column with the same name as the independent variable in*inputFile*. Similarly, the interpolated values are placed in*outputFile*under the same names as the independent columns from*inputFile*.**switches:**`-pipe[=input][,output]`-- The standard SDDS Toolkit pipe option.`-columns=`-- Specifies the names of the independent and dependent variable columns.*independentQuantity*,*name*[,*name*...]`-atValues=`-- Specifies a comma-separated list of values at which interpolation is done.*valuesList*`-sequence=`-- Specifies a sequence of equispaced points at which interpolation is done. If*points*[,*start*,*end*]*start*and*end*are given, they specify the range of these points. If they are not given, the range is the range of the independent data.`-fillIn`--Somewhat like`-sequence=`, except the number of points is chosen so that the spacing of the interpolation points is equal to the minimum point spacing in the file. In other words, if you have a data file with non- equidistant points, this option interpolates to give you equidistant points with the same minimum spacing as the original data. This tends to fill in the space between widely-spaced points, hence the name.*points*`-fileValues=`-- Specifies a set of values at which interpolation is to be done. In this case, the values are extracted from a column (*valuesFile*[,column=*columnName*][,parallelPages]*columnName*) of an SDDS file (*valuesFile*). If`parallelPages`is given, then successive pages of*inputFile*are interpolated at points given by successive pages of*valuesFile*. Otherwise, each page of*inputFile*is interpolated at the values in all pages of*valuesFile*; this can take quite some time if both files have many pages with many rows.`-order=`-- The order of the polynomials to use for interpolation. The default is 1, indicating linear interpolation.*number*`-printOut[=bare][,stdout]`-- Specifies that interpolated values should be printed to stderr. By default, the printout contains text identifying the quantities; this may be suppressed by specifying`bare`. Output may be directed to the standard output by specifying`stdout`.-
`-belowRange={value=`,*value*| skip | saturate | extrapolate | wrap}[,{ abort | warn}`-aboveRange={value=`*value*| skip | saturate | extrapolate | wrap}[,{ abort | warn}`saturate`. One may specify use of a specific value with`value=`.*value*`skip`specifies that offending points should be discarded.`extrapolate`specifies extrapolation beyond the limits of the data.`wrap`specifies that the data should be treated as periodic.`abort`specifies that the program should terminate.`warn`requests warnings for out-of-bounds points.

**see also:****author:**M. Borland, H. Shang, R. Soliday ANL/APS.