spcprm Struct Reference

Spectral transformation parameters. More...

`#include <spc.h>`

## Data Fields

int | flag
char | type [8]
char | code [4]
double | crval
double | restfrq
double | restwav
double | pv [7]
double | w [6]
int | isGrism
int | padding1
struct wcserr * | err
void * | padding2
int(* | spxX2P )(SPX_ARGS)
int(* | spxP2S )(SPX_ARGS)
int(* | spxS2P )(SPX_ARGS)
int(* | spxP2X )(SPX_ARGS)

## Detailed Description

The spcprm struct contains information required to transform spectral coordinates. It consists of certain members that must be set by the user (given) and others that are set by the WCSLIB routines (returned). Some of the latter are supplied for informational purposes while others are for internal use only.

## Field Documentation

## flag

int spcprm::flag

(Given and returned) This flag must be set to zero whenever any of the following spcprm structure members are set or changed:

- spcprm::type,
- spcprm::code,
- spcprm::crval,
- spcprm::restfrq,
- spcprm::restwav,
- spcprm::pv[].

This signals the initialization routine, spcset(), to recompute the returned members of the spcprm struct. spcset() will reset flag to indicate that this has been done.

## type

char spcprm::type

(Given) Four-letter spectral variable type, e.g "ZOPT" for `CTYPEia` = `'ZOPT-F2W'`. (Declared as char[8] for alignment reasons.)

## code

char spcprm::code

(Given) Three-letter spectral algorithm code, e.g "F2W" for `CTYPEia` = `'ZOPT-F2W'`.

## crval

double spcprm::crval

(Given) Reference value (`CRVALia`), SI units.

## restfrq

double spcprm::restfrq

(Given) The rest frequency [Hz], and ...

## restwav

double spcprm::restwav

(Given) ... the rest wavelength in vacuo [m], only one of which need be given, the other should be set to zero. Neither are required if the and spectral variables are both wave-characteristic, or both velocity-characteristic, types.

## pv

double spcprm::pv

(Given) Grism parameters for '`GRI`' and '`GRA`' algorithm codes:

- 0: , grating ruling density.
- 1: , interference order.
- 2: , angle of incidence [deg].
- 3: , refractive index at the reference wavelength, .
- 4: , at the reference wavelength, (/m).
- 5: , grating tilt angle [deg].
- 6: , detector tilt angle [deg].

The remaining members of the spcprm struct are maintained by spcset() and must not be modified elsewhere:

## w

double spcprm::w

(Returned) Intermediate values:

- 0: Rest frequency or wavelength (SI).
- 1: The value of the -type spectral variable at the reference point (SI units).
- 2: at the reference point (SI units).

The remainder are grism intermediates.

## isGrism

int spcprm::isGrism

(Returned) Grism coordinates?

- 0: no,
- 1: in vacuum,
- 2: in air.

## padding1

int spcprm::padding1

(An unused variable inserted for alignment purposes only.)

## err

struct wcserr * spcprm::err

(Returned) If enabled, when an error status is returned, this struct contains detailed information about the error, see wcserr_enable().

## padding2

void * spcprm::padding2

(An unused variable inserted for alignment purposes only.)

## spxX2P

spcprm::spxX2P

(Returned) The first and ...

## spxP2S

spcprm::spxP2S

(Returned) ... the second of the pointers to the transformation functions in the two-step algorithm chain in the pixel-to-spectral direction where the non-linear transformation is from to . The argument list, SPX_ARGS, is defined in spx.h.

## spxS2P

spcprm::spxS2P

(Returned) The first and ...

## spxP2X

spcprm::spxP2X

(Returned) ... the second of the pointers to the transformation functions in the two-step algorithm chain in the spectral-to-pixel direction where the non-linear transformation is from to . The argument list, SPX_ARGS, is defined in spx.h.