<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.4"/> <title>WCSLIB 4.18: spcprm Struct Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">WCSLIB 4.18 </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.4 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="functions.html"><span>Data Fields</span></a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#pub-attribs">Data Fields</a> </div> <div class="headertitle"> <div class="title">spcprm Struct Reference</div> </div> </div><!--header--> <div class="contents"> <p>Spectral transformation parameters. <a href="structspcprm.html#details">More...</a></p> <p><code>#include <<a class="el" href="spc_8h_source.html">spc.h</a>></code></p> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a> Data Fields</h2></td></tr> <tr class="memitem:afeeb5f4056f271fd37291a712a7b6791"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structspcprm.html#afeeb5f4056f271fd37291a712a7b6791">flag</a></td></tr> <tr class="separator:afeeb5f4056f271fd37291a712a7b6791"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a387d74de3215763d7e22c222b19a2c44"><td class="memItemLeft" align="right" valign="top">char </td><td class="memItemRight" valign="bottom"><a class="el" href="structspcprm.html#a387d74de3215763d7e22c222b19a2c44">type</a> [8]</td></tr> <tr class="separator:a387d74de3215763d7e22c222b19a2c44"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5f9a48a52144f8ced93baaffc107a3a6"><td class="memItemLeft" align="right" valign="top">char </td><td class="memItemRight" valign="bottom"><a class="el" href="structspcprm.html#a5f9a48a52144f8ced93baaffc107a3a6">code</a> [4]</td></tr> <tr class="separator:a5f9a48a52144f8ced93baaffc107a3a6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2c5c2d97e6c5f617272834b1516c84de"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="structspcprm.html#a2c5c2d97e6c5f617272834b1516c84de">crval</a></td></tr> <tr class="separator:a2c5c2d97e6c5f617272834b1516c84de"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a74433ae0e7e1ec426777bafb402b50c4"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="structspcprm.html#a74433ae0e7e1ec426777bafb402b50c4">restfrq</a></td></tr> <tr class="separator:a74433ae0e7e1ec426777bafb402b50c4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4dbc8c7064ae790483017b6c81e7ded2"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="structspcprm.html#a4dbc8c7064ae790483017b6c81e7ded2">restwav</a></td></tr> <tr class="separator:a4dbc8c7064ae790483017b6c81e7ded2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae11db8d7ff8b605eed87298a32fd094d"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="structspcprm.html#ae11db8d7ff8b605eed87298a32fd094d">pv</a> [7]</td></tr> <tr class="separator:ae11db8d7ff8b605eed87298a32fd094d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8ef0c963f1b0ee957f3403da7559a81c"><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="structspcprm.html#a8ef0c963f1b0ee957f3403da7559a81c">w</a> [6]</td></tr> <tr class="separator:a8ef0c963f1b0ee957f3403da7559a81c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aec5d37c00d382a84a090d4f52d9a4346"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structspcprm.html#aec5d37c00d382a84a090d4f52d9a4346">isGrism</a></td></tr> <tr class="separator:aec5d37c00d382a84a090d4f52d9a4346"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a844792d006c308f465ce8ca593a37df3"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structspcprm.html#a844792d006c308f465ce8ca593a37df3">padding1</a></td></tr> <tr class="separator:a844792d006c308f465ce8ca593a37df3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6d4124d4db8f7addcbfee99a8634522e"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structwcserr.html">wcserr</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structspcprm.html#a6d4124d4db8f7addcbfee99a8634522e">err</a></td></tr> <tr class="separator:a6d4124d4db8f7addcbfee99a8634522e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa38c41f28ffff233bc7ffa0f3947b075"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="structspcprm.html#aa38c41f28ffff233bc7ffa0f3947b075">padding2</a></td></tr> <tr class="separator:aa38c41f28ffff233bc7ffa0f3947b075"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a20db4194170d78054908acf94b41d9d9"><td class="memItemLeft" align="right" valign="top">int(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structspcprm.html#a20db4194170d78054908acf94b41d9d9">spxX2P</a> )(<a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>)</td></tr> <tr class="separator:a20db4194170d78054908acf94b41d9d9"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:add01b70b4a074a7bdccff378ab61a948"><td class="memItemLeft" align="right" valign="top">int(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structspcprm.html#add01b70b4a074a7bdccff378ab61a948">spxP2S</a> )(<a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>)</td></tr> <tr class="separator:add01b70b4a074a7bdccff378ab61a948"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:afb6a33994ad13f402efb68d20a97eee1"><td class="memItemLeft" align="right" valign="top">int(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structspcprm.html#afb6a33994ad13f402efb68d20a97eee1">spxS2P</a> )(<a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>)</td></tr> <tr class="separator:afb6a33994ad13f402efb68d20a97eee1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6727d3a30592e54c7361e0434a795832"><td class="memItemLeft" align="right" valign="top">int(* </td><td class="memItemRight" valign="bottom"><a class="el" href="structspcprm.html#a6727d3a30592e54c7361e0434a795832">spxP2X</a> )(<a class="el" href="spx_8h.html#a777e5c4790da397aefcada61445a1bb3">SPX_ARGS</a>)</td></tr> <tr class="separator:a6727d3a30592e54c7361e0434a795832"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>The <b>spcprm</b> struct contains information required to transform spectral coordinates. It consists of certain members that must be set by the user (<em>given</em>) and others that are set by the WCSLIB routines (<em>returned</em>). Some of the latter are supplied for informational purposes while others are for internal use only. </p> </div><h2 class="groupheader">Field Documentation</h2> <a class="anchor" id="afeeb5f4056f271fd37291a712a7b6791"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int spcprm::flag</td> </tr> </table> </div><div class="memdoc"> <p>(Given and returned) This flag must be set to zero whenever any of the following <b>spcprm</b> structure members are set or changed:</p> <ul> <li> <a class="el" href="structspcprm.html#a387d74de3215763d7e22c222b19a2c44">spcprm::type</a>, </li> <li> <a class="el" href="structspcprm.html#a5f9a48a52144f8ced93baaffc107a3a6">spcprm::code</a>, </li> <li> <a class="el" href="structspcprm.html#a2c5c2d97e6c5f617272834b1516c84de">spcprm::crval</a>, </li> <li> <a class="el" href="structspcprm.html#a74433ae0e7e1ec426777bafb402b50c4">spcprm::restfrq</a>, </li> <li> <a class="el" href="structspcprm.html#a4dbc8c7064ae790483017b6c81e7ded2">spcprm::restwav</a>, </li> <li> <a class="el" href="structspcprm.html#ae11db8d7ff8b605eed87298a32fd094d">spcprm::pv</a>[]. </li> </ul> <p>This signals the initialization routine, <a class="el" href="spc_8h.html#af2ee6399a65f2467841be79e4bbb41c3" title="Setup routine for the spcprm struct. ">spcset()</a>, to recompute the returned members of the <b>spcprm</b> struct. <a class="el" href="spc_8h.html#af2ee6399a65f2467841be79e4bbb41c3" title="Setup routine for the spcprm struct. ">spcset()</a> will reset flag to indicate that this has been done. </p> </div> </div> <a class="anchor" id="a387d74de3215763d7e22c222b19a2c44"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">char spcprm::type</td> </tr> </table> </div><div class="memdoc"> <p>(<em>Given</em>) Four-letter spectral variable type, e.g "ZOPT" for <code><b>CTYPE</b>ia</code> = <code><b>'ZOPT-F2W'</b></code>. (Declared as char[8] for alignment reasons.) </p> </div> </div> <a class="anchor" id="a5f9a48a52144f8ced93baaffc107a3a6"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">char spcprm::code</td> </tr> </table> </div><div class="memdoc"> <p>(<em>Given</em>) Three-letter spectral algorithm code, e.g "F2W" for <code><b>CTYPE</b>ia</code> = <code><b>'ZOPT-F2W'</b></code>. </p> </div> </div> <a class="anchor" id="a2c5c2d97e6c5f617272834b1516c84de"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double spcprm::crval</td> </tr> </table> </div><div class="memdoc"> <p>(<em>Given</em>) Reference value (<code><b>CRVAL</b>ia</code>), SI units. </p> </div> </div> <a class="anchor" id="a74433ae0e7e1ec426777bafb402b50c4"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double spcprm::restfrq</td> </tr> </table> </div><div class="memdoc"> <p>(<em>Given</em>) The rest frequency [Hz], and ... </p> </div> </div> <a class="anchor" id="a4dbc8c7064ae790483017b6c81e7ded2"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double spcprm::restwav</td> </tr> </table> </div><div class="memdoc"> <p>(<em>Given</em>) ... 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 <img class="formulaInl" alt="$X$" src="form_10.png"/> and <img class="formulaInl" alt="$S$" src="form_32.png"/> spectral variables are both wave-characteristic, or both velocity-characteristic, types. </p> </div> </div> <a class="anchor" id="ae11db8d7ff8b605eed87298a32fd094d"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double spcprm::pv</td> </tr> </table> </div><div class="memdoc"> <p>(<em>Given</em>) Grism parameters for '<code><b>GRI</b></code>' and '<code><b>GRA</b></code>' algorithm codes: </p> <ul> <li> 0: <img class="formulaInl" alt="$G$" src="form_36.png"/>, grating ruling density. </li> <li> 1: <img class="formulaInl" alt="$m$" src="form_37.png"/>, interference order. </li> <li> 2: <img class="formulaInl" alt="$\alpha$" src="form_38.png"/>, angle of incidence [deg]. </li> <li> 3: <img class="formulaInl" alt="$n_r$" src="form_39.png"/>, refractive index at the reference wavelength, <img class="formulaInl" alt="$\lambda_r$" src="form_40.png"/>. </li> <li> 4: <img class="formulaInl" alt="$n'_r$" src="form_41.png"/>, <img class="formulaInl" alt="$dn/d\lambda$" src="form_42.png"/> at the reference wavelength, <img class="formulaInl" alt="$\lambda_r$" src="form_40.png"/> (/m). </li> <li> 5: <img class="formulaInl" alt="$\epsilon$" src="form_43.png"/>, grating tilt angle [deg]. </li> <li> 6: <img class="formulaInl" alt="$\theta$" src="form_25.png"/>, detector tilt angle [deg]. </li> </ul> <p>The remaining members of the <b>spcprm</b> struct are maintained by <a class="el" href="spc_8h.html#af2ee6399a65f2467841be79e4bbb41c3" title="Setup routine for the spcprm struct. ">spcset()</a> and must not be modified elsewhere: </p> </div> </div> <a class="anchor" id="a8ef0c963f1b0ee957f3403da7559a81c"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double spcprm::w</td> </tr> </table> </div><div class="memdoc"> <p>(<em>Returned</em>) Intermediate values: </p> <ul> <li> 0: Rest frequency or wavelength (SI). </li> <li> 1: The value of the <img class="formulaInl" alt="$X$" src="form_10.png"/>-type spectral variable at the reference point (SI units). </li> <li> 2: <img class="formulaInl" alt="$dX/dS$" src="form_34.png"/> at the reference point (SI units). </li> </ul> <p>The remainder are grism intermediates. </p> </div> </div> <a class="anchor" id="aec5d37c00d382a84a090d4f52d9a4346"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int spcprm::isGrism</td> </tr> </table> </div><div class="memdoc"> <p>(<em>Returned</em>) Grism coordinates? </p> <ul> <li> 0: no, </li> <li> 1: in vacuum, </li> <li> 2: in air. </li> </ul> </div> </div> <a class="anchor" id="a844792d006c308f465ce8ca593a37df3"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int spcprm::padding1</td> </tr> </table> </div><div class="memdoc"> <p>(An unused variable inserted for alignment purposes only.) </p> </div> </div> <a class="anchor" id="a6d4124d4db8f7addcbfee99a8634522e"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">struct <a class="el" href="structwcserr.html">wcserr</a> * spcprm::err</td> </tr> </table> </div><div class="memdoc"> <p>(<em>Returned</em>) If enabled, when an error status is returned this structure contains detailed information about the error, see <a class="el" href="wcserr_8h.html#a1691b8bd184d40ca6fda255be078fa53" title="Enable/disable error messaging. ">wcserr_enable()</a>. </p> </div> </div> <a class="anchor" id="aa38c41f28ffff233bc7ffa0f3947b075"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void * spcprm::padding2</td> </tr> </table> </div><div class="memdoc"> <p>(An unused variable inserted for alignment purposes only.) </p> </div> </div> <a class="anchor" id="a20db4194170d78054908acf94b41d9d9"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">spcprm::spxX2P</td> </tr> </table> </div><div class="memdoc"> <p>(<em>Returned</em>) The first and ... </p> </div> </div> <a class="anchor" id="add01b70b4a074a7bdccff378ab61a948"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">spcprm::spxP2S</td> </tr> </table> </div><div class="memdoc"> <p>(<em>Returned</em>) ... the second of the pointers to the transformation functions in the two-step algorithm chain <img class="formulaInl" alt="$X\leadsto P\rightarrow S$" src="form_44.png"/> in the pixel-to-spectral direction where the non-linear transformation is from <img class="formulaInl" alt="$X$" src="form_10.png"/> to <img class="formulaInl" alt="$P$" src="form_33.png"/>. The argument list, SPX_ARGS, is defined in <a class="el" href="spx_8h.html">spx.h</a>. </p> </div> </div> <a class="anchor" id="afb6a33994ad13f402efb68d20a97eee1"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">spcprm::spxS2P</td> </tr> </table> </div><div class="memdoc"> <p>(<em>Returned</em>) The first and ... </p> </div> </div> <a class="anchor" id="a6727d3a30592e54c7361e0434a795832"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">spcprm::spxP2X</td> </tr> </table> </div><div class="memdoc"> <p>(<em>Returned</em>) ... the second of the pointers to the transformation functions in the two-step algorithm chain <img class="formulaInl" alt="$S\rightarrow P\leadsto X$" src="form_45.png"/> in the spectral-to-pixel direction where the non-linear transformation is from <img class="formulaInl" alt="$P$" src="form_33.png"/> to <img class="formulaInl" alt="$X$" src="form_10.png"/>. The argument list, SPX_ARGS, is defined in <a class="el" href="spx_8h.html">spx.h</a>. </p> </div> </div> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Sat Jul 13 2013 20:00:27 for WCSLIB 4.18 by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.4 </small></address> </body> </html>