STScI Logo

compspec stsdas.toolbox.testdata



compspec -- Create a spectrum from an algebraic expression.


compspec spectrum expr npoints fstwave lstwave units


This task creates artificial spectra (1-dimensional images) where the spectrum can be expressed as an algebraic function. The algebraic expression has the same syntax as an expression in a CL script, with a few extensions. The expression can only contain one variable of up to 31 characters. The expression is evaluated at each point in the spectrum, with the value of the variable varying linearly between the value of fstwave and lstwave. Integer and real values are distinguished while evaluating the expression, just as in CL or Fortran, so that 3./5. is 0.6, but 3/5 is 0.

This task will create a new image with only the default header and group parameters. This task creates only one group in an image. If you wish to create a new multi-group image, set spectrum to an image name of the form <image>.<ext>[1/<ngroups>] for the first run. For example, an FOS spectrum with six groups might have the name ytest.hhh[1/6]. Then make subsequent runs of this task, changing the spectrum value to an image name of the form <image>.<ext>[<group>]. For example, to create the remaining five groups of the FOS spectrum, make five more runs of this task, changing spectrum to ytest.hhh[2] through ytest.hhh[6]. The following tables summarize the syntax of the algebraic expression. The following mathematical operators can be used in an expression.

-	unary minus
+	addition
-	subtraction
*	multiplication
/	division
**	exponentiation

The following functions are also available. All angles in the trigonometric functions are in degrees.

abs	absolute value
acos	arc cosine
asin	arcsine
atan	arc tangent
atan2	arc tangent with two arguments
cos	cosine
exp	exponent
int	integer truncation
log	natural logarithm (base e)
log10	common logarithm (base 10)
max	maximum of two arguments
min	minimum of two arguments
mod	first argument modulus second argument
nint	nearest integer
sin	sine
sqrt	square root
tan	tangent

Conditional expressions can also be used. These expressions have the form <boolean expr> ? <expr> : <expr>. If the boolean expression is true, then the expression before the colon is evaluated, if it is false, the expression after the colon is evaluated. The following expression could be used to create a step function: "x > 256 ? 1.0 : 0.0". These operators are available for use in the boolean expression.

<	less than
<=	less than or equal
>	greater than
>= 	greater than or equal
==	equal
!=	not equal
&&	and
||	or
!	not


spectrum [file name]
The name of the output spectrum file created by this task.
expr [string]
An algebraic expression in one variable. The syntax for this parameter is explained in the Description section, above.
npoints [integer, min=2]
The number of points in the spectrum.
fstwave [real]
The value of the variable in the expression at the first point in the spectrum.
lstwave [real]
The value of the variable in the expression at the last point in the spectrum.
units [string]
The units of the variable in the expression.


1. Create a spectrum with 512 points named ytest.hhh, which contains a ramp function. The ramp function goes from 0 to 1000:

  to> compspec ytest.hhh wave 512 0. 1000. pixel

2. Create a spectrum with 1024 points named ytest.hhh containing a sine wave:

  to> compspec ytest.hhh "1+sin(theta)" 1024 0. 360. degree



Source Code · Package Help · Search Form · STSDAS