wcslib (8.2.2)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>WCSLIB: cel.h File 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="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.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 id="projectrow">
<td id="projectalign">
<div id="projectname">WCSLIB<span id="projectnumber"> 8.2.2</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_af99bb3c152a306abd27951285ad1127.html">C</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> |
<a href="#define-members">Macros</a> |
<a href="#enum-members">Enumerations</a> |
<a href="#func-members">Functions</a> |
<a href="#var-members">Variables</a> </div>
<div class="headertitle"><div class="title">cel.h File Reference</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include "<a class="el" href="prj_8h_source.html">prj.h</a>"</code><br />
</div>
<p><a href="cel_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structcelprm.html">celprm</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Celestial transformation parameters. <a href="structcelprm.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a055ad88aa219a0207e221d62e03d2e23" id="r_a055ad88aa219a0207e221d62e03d2e23"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="cel_8h.html#a055ad88aa219a0207e221d62e03d2e23">CELLEN</a>   (sizeof(struct <a class="el" href="structcelprm.html">celprm</a>)/sizeof(int))</td></tr>
<tr class="memdesc:a055ad88aa219a0207e221d62e03d2e23"><td class="mdescLeft"> </td><td class="mdescRight">Size of the <a class="el" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> struct in <em>int</em> units. <br /></td></tr>
<tr class="separator:a055ad88aa219a0207e221d62e03d2e23"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a0474e3e2d6c39249acbe58cedd573e84" id="r_a0474e3e2d6c39249acbe58cedd573e84"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="cel_8h.html#a0474e3e2d6c39249acbe58cedd573e84">celini_errmsg</a>   <a class="el" href="cel_8h.html#a2ac33dbe3aa2efff60543213b0a691f5">cel_errmsg</a></td></tr>
<tr class="memdesc:a0474e3e2d6c39249acbe58cedd573e84"><td class="mdescLeft"> </td><td class="mdescRight">Deprecated. <br /></td></tr>
<tr class="separator:a0474e3e2d6c39249acbe58cedd573e84"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a9e188b582ee4eb815466e86bb684fc82" id="r_a9e188b582ee4eb815466e86bb684fc82"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="cel_8h.html#a9e188b582ee4eb815466e86bb684fc82">celprt_errmsg</a>   <a class="el" href="cel_8h.html#a2ac33dbe3aa2efff60543213b0a691f5">cel_errmsg</a></td></tr>
<tr class="memdesc:a9e188b582ee4eb815466e86bb684fc82"><td class="mdescLeft"> </td><td class="mdescRight">Deprecated. <br /></td></tr>
<tr class="separator:a9e188b582ee4eb815466e86bb684fc82"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a2fe5a30084717036a54e7f0a920da105" id="r_a2fe5a30084717036a54e7f0a920da105"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="cel_8h.html#a2fe5a30084717036a54e7f0a920da105">celset_errmsg</a>   <a class="el" href="cel_8h.html#a2ac33dbe3aa2efff60543213b0a691f5">cel_errmsg</a></td></tr>
<tr class="memdesc:a2fe5a30084717036a54e7f0a920da105"><td class="mdescLeft"> </td><td class="mdescRight">Deprecated. <br /></td></tr>
<tr class="separator:a2fe5a30084717036a54e7f0a920da105"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:af72e24d2f169c3c343c55c880a74050f" id="r_af72e24d2f169c3c343c55c880a74050f"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="cel_8h.html#af72e24d2f169c3c343c55c880a74050f">celx2s_errmsg</a>   <a class="el" href="cel_8h.html#a2ac33dbe3aa2efff60543213b0a691f5">cel_errmsg</a></td></tr>
<tr class="memdesc:af72e24d2f169c3c343c55c880a74050f"><td class="mdescLeft"> </td><td class="mdescRight">Deprecated. <br /></td></tr>
<tr class="separator:af72e24d2f169c3c343c55c880a74050f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ac398f2bea2deac6d86c10a7b3efca966" id="r_ac398f2bea2deac6d86c10a7b3efca966"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="cel_8h.html#ac398f2bea2deac6d86c10a7b3efca966">cels2x_errmsg</a>   <a class="el" href="cel_8h.html#a2ac33dbe3aa2efff60543213b0a691f5">cel_errmsg</a></td></tr>
<tr class="memdesc:ac398f2bea2deac6d86c10a7b3efca966"><td class="mdescLeft"> </td><td class="mdescRight">Deprecated. <br /></td></tr>
<tr class="separator:ac398f2bea2deac6d86c10a7b3efca966"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ab20292954fb236dafb2cd78aee121c31" id="r_ab20292954fb236dafb2cd78aee121c31"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31">cel_errmsg_enum</a> { <br />
  <a class="el" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31a4ca7a593593157772f3788801138dd12">CELERR_SUCCESS</a> = 0
, <a class="el" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31a7fa1e5cb9c23e5f138638dad3f938e1e">CELERR_NULL_POINTER</a> = 1
, <a class="el" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31a33a743bdcdd17bae9c6961234ed6b642">CELERR_BAD_PARAM</a> = 2
, <a class="el" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31a367cf89b74764f9462bfa50c2eb50fb6">CELERR_BAD_COORD_TRANS</a> = 3
, <br />
  <a class="el" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31acb1dec1ea393b198b93a26425ee901a2">CELERR_ILL_COORD_TRANS</a> = 4
, <a class="el" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31a44042efc5a9894182447dfcbcd24e1d4">CELERR_BAD_PIX</a> = 5
, <a class="el" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31aac8beaf37d754d1a7a7aab5307a2140b">CELERR_BAD_WORLD</a> = 6
<br />
}</td></tr>
<tr class="separator:ab20292954fb236dafb2cd78aee121c31"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a1fe1b137ade45ea28e61f44d4708fb77" id="r_a1fe1b137ade45ea28e61f44d4708fb77"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="cel_8h.html#a1fe1b137ade45ea28e61f44d4708fb77">celini</a> (struct <a class="el" href="structcelprm.html">celprm</a> *cel)</td></tr>
<tr class="memdesc:a1fe1b137ade45ea28e61f44d4708fb77"><td class="mdescLeft"> </td><td class="mdescRight">Default constructor for the <a class="el" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> struct. <br /></td></tr>
<tr class="separator:a1fe1b137ade45ea28e61f44d4708fb77"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a39bb7bf8e545c200191d51884ecfb89b" id="r_a39bb7bf8e545c200191d51884ecfb89b"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="cel_8h.html#a39bb7bf8e545c200191d51884ecfb89b">celfree</a> (struct <a class="el" href="structcelprm.html">celprm</a> *cel)</td></tr>
<tr class="memdesc:a39bb7bf8e545c200191d51884ecfb89b"><td class="mdescLeft"> </td><td class="mdescRight">Destructor for the <a class="el" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> struct. <br /></td></tr>
<tr class="separator:a39bb7bf8e545c200191d51884ecfb89b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a8b30f878e56ba62ca7f411e8275e0484" id="r_a8b30f878e56ba62ca7f411e8275e0484"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="cel_8h.html#a8b30f878e56ba62ca7f411e8275e0484">celsize</a> (const struct <a class="el" href="structcelprm.html">celprm</a> *cel, int sizes[2])</td></tr>
<tr class="memdesc:a8b30f878e56ba62ca7f411e8275e0484"><td class="mdescLeft"> </td><td class="mdescRight">Compute the size of a <a class="el" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> struct. <br /></td></tr>
<tr class="separator:a8b30f878e56ba62ca7f411e8275e0484"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:adb2e4565f61a9de5fe278d9035850dc3" id="r_adb2e4565f61a9de5fe278d9035850dc3"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="cel_8h.html#adb2e4565f61a9de5fe278d9035850dc3">celprt</a> (const struct <a class="el" href="structcelprm.html">celprm</a> *cel)</td></tr>
<tr class="memdesc:adb2e4565f61a9de5fe278d9035850dc3"><td class="mdescLeft"> </td><td class="mdescRight">Print routine for the <a class="el" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> struct. <br /></td></tr>
<tr class="separator:adb2e4565f61a9de5fe278d9035850dc3"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a8a8c50a25396bc2d8ff9b3a4e6d6e4c8" id="r_a8a8c50a25396bc2d8ff9b3a4e6d6e4c8"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="cel_8h.html#a8a8c50a25396bc2d8ff9b3a4e6d6e4c8">celperr</a> (const struct <a class="el" href="structcelprm.html">celprm</a> *cel, const char *prefix)</td></tr>
<tr class="memdesc:a8a8c50a25396bc2d8ff9b3a4e6d6e4c8"><td class="mdescLeft"> </td><td class="mdescRight">Print error messages from a <a class="el" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> struct. <br /></td></tr>
<tr class="separator:a8a8c50a25396bc2d8ff9b3a4e6d6e4c8"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ab0f67d1727750616f71c7bfcb3a037b6" id="r_ab0f67d1727750616f71c7bfcb3a037b6"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="cel_8h.html#ab0f67d1727750616f71c7bfcb3a037b6">celset</a> (struct <a class="el" href="structcelprm.html">celprm</a> *cel)</td></tr>
<tr class="memdesc:ab0f67d1727750616f71c7bfcb3a037b6"><td class="mdescLeft"> </td><td class="mdescRight">Setup routine for the <a class="el" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> struct. <br /></td></tr>
<tr class="separator:ab0f67d1727750616f71c7bfcb3a037b6"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a1fe7f134670262eb54b6049c0275a27b" id="r_a1fe7f134670262eb54b6049c0275a27b"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="cel_8h.html#a1fe7f134670262eb54b6049c0275a27b">celx2s</a> (struct <a class="el" href="structcelprm.html">celprm</a> *cel, int nx, int ny, int sxy, int sll, const double x[], const double y[], double phi[], double theta[], double lng[], double lat[], int stat[])</td></tr>
<tr class="memdesc:a1fe7f134670262eb54b6049c0275a27b"><td class="mdescLeft"> </td><td class="mdescRight">Pixel-to-world celestial transformation. <br /></td></tr>
<tr class="separator:a1fe7f134670262eb54b6049c0275a27b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a6661c05703158b0808038b7d551f1ea1" id="r_a6661c05703158b0808038b7d551f1ea1"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="cel_8h.html#a6661c05703158b0808038b7d551f1ea1">cels2x</a> (struct <a class="el" href="structcelprm.html">celprm</a> *cel, int nlng, int nlat, int sll, int sxy, const double lng[], const double lat[], double phi[], double theta[], double x[], double y[], int stat[])</td></tr>
<tr class="memdesc:a6661c05703158b0808038b7d551f1ea1"><td class="mdescLeft"> </td><td class="mdescRight">World-to-pixel celestial transformation. <br /></td></tr>
<tr class="separator:a6661c05703158b0808038b7d551f1ea1"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="var-members" name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a2ac33dbe3aa2efff60543213b0a691f5" id="r_a2ac33dbe3aa2efff60543213b0a691f5"><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="cel_8h.html#a2ac33dbe3aa2efff60543213b0a691f5">cel_errmsg</a> []</td></tr>
<tr class="separator:a2ac33dbe3aa2efff60543213b0a691f5"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Routines in this suite implement the part of the FITS World Coordinate System (WCS) standard that deals with celestial coordinates, as described in </p><div class="fragment"><div class="line"><span class="stringliteral">"Representations of world coordinates in FITS"</span>,</div>
<div class="line">Greisen, E.W., & Calabretta, M.R. 2002, A&A, 395, 1061 (WCS Paper I)</div>
<div class="line"> </div>
<div class="line"><span class="stringliteral">"Representations of celestial coordinates in FITS"</span>,</div>
<div class="line">Calabretta, M.R., & Greisen, E.W. 2002, A&A, 395, 1077 (WCS Paper II)</div>
</div><!-- fragment --><p>These routines define methods to be used for computing celestial world coordinates from intermediate world coordinates (a linear transformation of image pixel coordinates), and vice versa. They are based on the <a class="el" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> struct which contains all information needed for the computations. This struct contains some elements that must be set by the user, and others that are maintained by these routines, somewhat like a C++ class but with no encapsulation.</p>
<p>Routine <a class="el" href="cel_8h.html#a1fe1b137ade45ea28e61f44d4708fb77" title="Default constructor for the celprm struct.">celini()</a> is provided to initialize the <a class="el" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> struct with default values, <a class="el" href="cel_8h.html#a39bb7bf8e545c200191d51884ecfb89b" title="Destructor for the celprm struct.">celfree()</a> reclaims any memory that may have been allocated to store an error message, <a class="el" href="cel_8h.html#a8b30f878e56ba62ca7f411e8275e0484" title="Compute the size of a celprm struct.">celsize()</a> computes its total size including allocated memory, and <a class="el" href="cel_8h.html#adb2e4565f61a9de5fe278d9035850dc3" title="Print routine for the celprm struct.">celprt()</a> prints its contents.</p>
<p><a class="el" href="cel_8h.html#a8a8c50a25396bc2d8ff9b3a4e6d6e4c8" title="Print error messages from a celprm struct.">celperr()</a> prints the error message(s), if any, stored in a <a class="el" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> struct and the prjprm struct that it contains.</p>
<p>A setup routine, <a class="el" href="cel_8h.html#ab0f67d1727750616f71c7bfcb3a037b6" title="Setup routine for the celprm struct.">celset()</a>, computes intermediate values in the <a class="el" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> struct from parameters in it that were supplied by the user. The struct always needs to be set up by <a class="el" href="cel_8h.html#ab0f67d1727750616f71c7bfcb3a037b6" title="Setup routine for the celprm struct.">celset()</a> but it need not be called explicitly - refer to the explanation of <a class="el" href="structcelprm.html#a408a39c1d060d5b32f884f8a8c60aaa2">celprm::flag</a>.</p>
<p><a class="el" href="cel_8h.html#a1fe7f134670262eb54b6049c0275a27b" title="Pixel-to-world celestial transformation.">celx2s()</a> and <a class="el" href="cel_8h.html#a6661c05703158b0808038b7d551f1ea1" title="World-to-pixel celestial transformation.">cels2x()</a> implement the WCS celestial coordinate transformations. In fact, they are high level driver routines for the lower level spherical coordinate rotation and projection routines described in <a class="el" href="sph_8h.html">sph.h</a> and <a class="el" href="prj_8h.html">prj.h</a>. </p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a id="a055ad88aa219a0207e221d62e03d2e23" name="a055ad88aa219a0207e221d62e03d2e23"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a055ad88aa219a0207e221d62e03d2e23">◆ </a></span>CELLEN</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CELLEN   (sizeof(struct <a class="el" href="structcelprm.html">celprm</a>)/sizeof(int))</td>
</tr>
</table>
</div><div class="memdoc">
<p>Size of the <a class="el" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> struct in <em>int</em> units. </p>
<p>Size of the <a class="el" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> struct in <em>int</em> units, used by the Fortran wrappers. </p>
</div>
</div>
<a id="a0474e3e2d6c39249acbe58cedd573e84" name="a0474e3e2d6c39249acbe58cedd573e84"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0474e3e2d6c39249acbe58cedd573e84">◆ </a></span>celini_errmsg</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define celini_errmsg   <a class="el" href="cel_8h.html#a2ac33dbe3aa2efff60543213b0a691f5">cel_errmsg</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Deprecated. </p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000001">Deprecated:</a></b></dt><dd>Added for backwards compatibility, use <a class="el" href="cel_8h.html#a2ac33dbe3aa2efff60543213b0a691f5">cel_errmsg</a> directly now instead. </dd></dl>
</div>
</div>
<a id="a9e188b582ee4eb815466e86bb684fc82" name="a9e188b582ee4eb815466e86bb684fc82"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9e188b582ee4eb815466e86bb684fc82">◆ </a></span>celprt_errmsg</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define celprt_errmsg   <a class="el" href="cel_8h.html#a2ac33dbe3aa2efff60543213b0a691f5">cel_errmsg</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Deprecated. </p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000002">Deprecated:</a></b></dt><dd>Added for backwards compatibility, use <a class="el" href="cel_8h.html#a2ac33dbe3aa2efff60543213b0a691f5">cel_errmsg</a> directly now instead. </dd></dl>
</div>
</div>
<a id="a2fe5a30084717036a54e7f0a920da105" name="a2fe5a30084717036a54e7f0a920da105"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2fe5a30084717036a54e7f0a920da105">◆ </a></span>celset_errmsg</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define celset_errmsg   <a class="el" href="cel_8h.html#a2ac33dbe3aa2efff60543213b0a691f5">cel_errmsg</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Deprecated. </p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000003">Deprecated:</a></b></dt><dd>Added for backwards compatibility, use <a class="el" href="cel_8h.html#a2ac33dbe3aa2efff60543213b0a691f5">cel_errmsg</a> directly now instead. </dd></dl>
</div>
</div>
<a id="af72e24d2f169c3c343c55c880a74050f" name="af72e24d2f169c3c343c55c880a74050f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af72e24d2f169c3c343c55c880a74050f">◆ </a></span>celx2s_errmsg</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define celx2s_errmsg   <a class="el" href="cel_8h.html#a2ac33dbe3aa2efff60543213b0a691f5">cel_errmsg</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Deprecated. </p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000004">Deprecated:</a></b></dt><dd>Added for backwards compatibility, use <a class="el" href="cel_8h.html#a2ac33dbe3aa2efff60543213b0a691f5">cel_errmsg</a> directly now instead. </dd></dl>
</div>
</div>
<a id="ac398f2bea2deac6d86c10a7b3efca966" name="ac398f2bea2deac6d86c10a7b3efca966"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac398f2bea2deac6d86c10a7b3efca966">◆ </a></span>cels2x_errmsg</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define cels2x_errmsg   <a class="el" href="cel_8h.html#a2ac33dbe3aa2efff60543213b0a691f5">cel_errmsg</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Deprecated. </p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000005">Deprecated:</a></b></dt><dd>Added for backwards compatibility, use <a class="el" href="cel_8h.html#a2ac33dbe3aa2efff60543213b0a691f5">cel_errmsg</a> directly now instead. </dd></dl>
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="ab20292954fb236dafb2cd78aee121c31" name="ab20292954fb236dafb2cd78aee121c31"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab20292954fb236dafb2cd78aee121c31">◆ </a></span>cel_errmsg_enum</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="cel_8h.html#ab20292954fb236dafb2cd78aee121c31">cel_errmsg_enum</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ab20292954fb236dafb2cd78aee121c31a4ca7a593593157772f3788801138dd12" name="ab20292954fb236dafb2cd78aee121c31a4ca7a593593157772f3788801138dd12"></a>CELERR_SUCCESS </td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="ab20292954fb236dafb2cd78aee121c31a7fa1e5cb9c23e5f138638dad3f938e1e" name="ab20292954fb236dafb2cd78aee121c31a7fa1e5cb9c23e5f138638dad3f938e1e"></a>CELERR_NULL_POINTER </td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="ab20292954fb236dafb2cd78aee121c31a33a743bdcdd17bae9c6961234ed6b642" name="ab20292954fb236dafb2cd78aee121c31a33a743bdcdd17bae9c6961234ed6b642"></a>CELERR_BAD_PARAM </td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="ab20292954fb236dafb2cd78aee121c31a367cf89b74764f9462bfa50c2eb50fb6" name="ab20292954fb236dafb2cd78aee121c31a367cf89b74764f9462bfa50c2eb50fb6"></a>CELERR_BAD_COORD_TRANS </td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="ab20292954fb236dafb2cd78aee121c31acb1dec1ea393b198b93a26425ee901a2" name="ab20292954fb236dafb2cd78aee121c31acb1dec1ea393b198b93a26425ee901a2"></a>CELERR_ILL_COORD_TRANS </td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="ab20292954fb236dafb2cd78aee121c31a44042efc5a9894182447dfcbcd24e1d4" name="ab20292954fb236dafb2cd78aee121c31a44042efc5a9894182447dfcbcd24e1d4"></a>CELERR_BAD_PIX </td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="ab20292954fb236dafb2cd78aee121c31aac8beaf37d754d1a7a7aab5307a2140b" name="ab20292954fb236dafb2cd78aee121c31aac8beaf37d754d1a7a7aab5307a2140b"></a>CELERR_BAD_WORLD </td><td class="fielddoc"></td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="a1fe1b137ade45ea28e61f44d4708fb77" name="a1fe1b137ade45ea28e61f44d4708fb77"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1fe1b137ade45ea28e61f44d4708fb77">◆ </a></span>celini()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int celini </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structcelprm.html">celprm</a> * </td>
<td class="paramname"><em>cel</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Default constructor for the <a class="el" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> struct. </p>
<p><b>celini</b>() sets all members of a <a class="el" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> struct to default values. It should be used to initialize every <a class="el" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> struct.</p>
<p><b>PLEASE NOTE:</b> If the <a class="el" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> struct has already been initialized, then before reinitializing, it <a class="el" href="cel_8h.html#a39bb7bf8e545c200191d51884ecfb89b" title="Destructor for the celprm struct.">celfree()</a> should be used to free any memory that may have been allocated to store an error message. A memory leak may otherwise result.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[out]</td><td class="paramname">cel</td><td>Celestial transformation parameters.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Status return value:<ul>
<li>0: Success.</li>
<li>1: Null <a class="el" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> pointer passed. </li>
</ul>
</dd></dl>
</div>
</div>
<a id="a39bb7bf8e545c200191d51884ecfb89b" name="a39bb7bf8e545c200191d51884ecfb89b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a39bb7bf8e545c200191d51884ecfb89b">◆ </a></span>celfree()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int celfree </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structcelprm.html">celprm</a> * </td>
<td class="paramname"><em>cel</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Destructor for the <a class="el" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> struct. </p>
<p><b>celfree</b>() frees any memory that may have been allocated to store an error message in the <a class="el" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> struct.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">cel</td><td>Celestial transformation parameters.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Status return value:<ul>
<li>0: Success.</li>
<li>1: Null <a class="el" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> pointer passed. </li>
</ul>
</dd></dl>
</div>
</div>
<a id="a8b30f878e56ba62ca7f411e8275e0484" name="a8b30f878e56ba62ca7f411e8275e0484"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8b30f878e56ba62ca7f411e8275e0484">◆ </a></span>celsize()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int celsize </td>
<td>(</td>
<td class="paramtype">const struct <a class="el" href="structcelprm.html">celprm</a> * </td>
<td class="paramname"><em>cel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>sizes</em>[2] </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Compute the size of a <a class="el" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> struct. </p>
<p><b>celsize</b>() computes the full size of a <a class="el" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> struct, including allocated memory.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">cel</td><td>Celestial transformation parameters. <br />
If NULL, the base size of the struct and the allocated size are both set to zero.</td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">sizes</td><td>The first element is the base size of the struct as returned by sizeof(struct <a class="el" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a>). The second element is the total allocated size, in bytes. This figure includes memory allocated for the constituent struct, <a class="el" href="structcelprm.html#a1b9cbfd7cfa2306464d57dc4acd03b06">celprm::err</a>. <br />
It is not an error for the struct not to have been set up via <a class="el" href="cel_8h.html#ab0f67d1727750616f71c7bfcb3a037b6" title="Setup routine for the celprm struct.">celset()</a>.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Status return value:<ul>
<li>0: Success. </li>
</ul>
</dd></dl>
</div>
</div>
<a id="adb2e4565f61a9de5fe278d9035850dc3" name="adb2e4565f61a9de5fe278d9035850dc3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adb2e4565f61a9de5fe278d9035850dc3">◆ </a></span>celprt()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int celprt </td>
<td>(</td>
<td class="paramtype">const struct <a class="el" href="structcelprm.html">celprm</a> * </td>
<td class="paramname"><em>cel</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Print routine for the <a class="el" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> struct. </p>
<p><b>celprt</b>() prints the contents of a <a class="el" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> struct using <a class="el" href="wcsprintf_8h.html#a46950abaf5a27347da8160741f98f973" title="Print function used by WCSLIB diagnostic routines.">wcsprintf()</a>. Mainly intended for diagnostic purposes.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">cel</td><td>Celestial transformation parameters.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Status return value:<ul>
<li>0: Success.</li>
<li>1: Null <a class="el" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> pointer passed. </li>
</ul>
</dd></dl>
</div>
</div>
<a id="a8a8c50a25396bc2d8ff9b3a4e6d6e4c8" name="a8a8c50a25396bc2d8ff9b3a4e6d6e4c8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8a8c50a25396bc2d8ff9b3a4e6d6e4c8">◆ </a></span>celperr()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int celperr </td>
<td>(</td>
<td class="paramtype">const struct <a class="el" href="structcelprm.html">celprm</a> * </td>
<td class="paramname"><em>cel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>prefix</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Print error messages from a <a class="el" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> struct. </p>
<p><b>celperr</b>() prints the error message(s), if any, stored in a <a class="el" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> struct and the prjprm struct that it contains. If there are no errors then nothing is printed. It uses <a class="el" href="wcserr_8h.html#a6585b9fc3a59b369e3336f3133dd1ca9" title="Print a wcserr struct.">wcserr_prt()</a>, q.v.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">cel</td><td>Coordinate transformation parameters. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">prefix</td><td>If non-NULL, each output line will be prefixed with this string.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Status return value:<ul>
<li>0: Success.</li>
<li>1: Null <a class="el" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> pointer passed. </li>
</ul>
</dd></dl>
</div>
</div>
<a id="ab0f67d1727750616f71c7bfcb3a037b6" name="ab0f67d1727750616f71c7bfcb3a037b6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab0f67d1727750616f71c7bfcb3a037b6">◆ </a></span>celset()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int celset </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structcelprm.html">celprm</a> * </td>
<td class="paramname"><em>cel</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Setup routine for the <a class="el" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> struct. </p>
<p><b>celset</b>() sets up a <a class="el" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> struct according to information supplied within it.</p>
<p>Note that this routine need not be called directly; it will be invoked by <a class="el" href="cel_8h.html#a1fe7f134670262eb54b6049c0275a27b" title="Pixel-to-world celestial transformation.">celx2s()</a> and <a class="el" href="cel_8h.html#a6661c05703158b0808038b7d551f1ea1" title="World-to-pixel celestial transformation.">cels2x()</a> if <a class="el" href="structcelprm.html#a408a39c1d060d5b32f884f8a8c60aaa2">celprm::flag</a> is anything other than a predefined magic value.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in,out]</td><td class="paramname">cel</td><td>Celestial transformation parameters.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Status return value:<ul>
<li>0: Success.</li>
<li>1: Null <a class="el" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> pointer passed.</li>
<li>2: Invalid projection parameters.</li>
<li>3: Invalid coordinate transformation parameters.</li>
<li>4: Ill-conditioned coordinate transformation parameters.</li>
</ul>
For returns > 1, a detailed error message is set in <a class="el" href="structcelprm.html#a1b9cbfd7cfa2306464d57dc4acd03b06">celprm::err</a> if enabled, see <a class="el" href="wcserr_8h.html#a1691b8bd184d40ca6fda255be078fa53" title="Enable/disable error messaging.">wcserr_enable()</a>. </dd></dl>
</div>
</div>
<a id="a1fe7f134670262eb54b6049c0275a27b" name="a1fe7f134670262eb54b6049c0275a27b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1fe7f134670262eb54b6049c0275a27b">◆ </a></span>celx2s()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int celx2s </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structcelprm.html">celprm</a> * </td>
<td class="paramname"><em>cel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>nx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>ny</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>sxy</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>sll</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const double </td>
<td class="paramname"><em>x</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const double </td>
<td class="paramname"><em>y</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double </td>
<td class="paramname"><em>phi</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double </td>
<td class="paramname"><em>theta</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double </td>
<td class="paramname"><em>lng</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double </td>
<td class="paramname"><em>lat</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>stat</em>[] </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Pixel-to-world celestial transformation. </p>
<p><b>celx2s</b>() transforms <picture><source srcset="form_0_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaInl" alt="$(x,y)$" src="form_0.png" width="28" height="14"/></picture> coordinates in the plane of projection to celestial coordinates <picture><source srcset="form_1_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaInl" alt="$(\alpha,\delta)$" src="form_1.png" width="28" height="14"/></picture>.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in,out]</td><td class="paramname">cel</td><td>Celestial transformation parameters.</td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">nx,ny</td><td>Vector lengths. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">sxy,sll</td><td>Vector strides. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">x,y</td><td>Projected coordinates in pseudo "degrees".</td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">phi,theta</td><td>Longitude and latitude <picture><source srcset="form_2_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaInl" alt="$(\phi,\theta)$" src="form_2.png" width="28" height="14"/></picture> in the native coordinate system of the projection [deg]. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">lng,lat</td><td>Celestial longitude and latitude <picture><source srcset="form_1_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaInl" alt="$(\alpha,\delta)$" src="form_1.png" width="28" height="14"/></picture> of the projected point [deg]. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">stat</td><td>Status return value for each vector element:<ul>
<li>0: Success.</li>
<li>1: Invalid value of <picture><source srcset="form_0_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaInl" alt="$(x,y)$" src="form_0.png" width="28" height="14"/></picture>.</li>
</ul>
</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Status return value:<ul>
<li>0: Success.</li>
<li>1: Null <a class="el" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> pointer passed.</li>
<li>2: Invalid projection parameters.</li>
<li>3: Invalid coordinate transformation parameters.</li>
<li>4: Ill-conditioned coordinate transformation parameters.</li>
<li>5: One or more of the <picture><source srcset="form_0_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaInl" alt="$(x,y)$" src="form_0.png" width="28" height="14"/></picture> coordinates were invalid, as indicated by the stat vector.</li>
</ul>
For returns > 1, a detailed error message is set in <a class="el" href="structcelprm.html#a1b9cbfd7cfa2306464d57dc4acd03b06">celprm::err</a> if enabled, see <a class="el" href="wcserr_8h.html#a1691b8bd184d40ca6fda255be078fa53" title="Enable/disable error messaging.">wcserr_enable()</a>. </dd></dl>
</div>
</div>
<a id="a6661c05703158b0808038b7d551f1ea1" name="a6661c05703158b0808038b7d551f1ea1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6661c05703158b0808038b7d551f1ea1">◆ </a></span>cels2x()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int cels2x </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structcelprm.html">celprm</a> * </td>
<td class="paramname"><em>cel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>nlng</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>nlat</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>sll</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>sxy</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const double </td>
<td class="paramname"><em>lng</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const double </td>
<td class="paramname"><em>lat</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double </td>
<td class="paramname"><em>phi</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double </td>
<td class="paramname"><em>theta</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double </td>
<td class="paramname"><em>x</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double </td>
<td class="paramname"><em>y</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>stat</em>[] </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>World-to-pixel celestial transformation. </p>
<p><b>cels2x</b>() transforms celestial coordinates <picture><source srcset="form_1_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaInl" alt="$(\alpha,\delta)$" src="form_1.png" width="28" height="14"/></picture> to <picture><source srcset="form_0_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaInl" alt="$(x,y)$" src="form_0.png" width="28" height="14"/></picture> coordinates in the plane of projection.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir">[in,out]</td><td class="paramname">cel</td><td>Celestial transformation parameters.</td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">nlng,nlat</td><td>Vector lengths. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">sll,sxy</td><td>Vector strides. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">lng,lat</td><td>Celestial longitude and latitude <picture><source srcset="form_1_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaInl" alt="$(\alpha,\delta)$" src="form_1.png" width="28" height="14"/></picture> of the projected point [deg].</td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">phi,theta</td><td>Longitude and latitude <picture><source srcset="form_2_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaInl" alt="$(\phi,\theta)$" src="form_2.png" width="28" height="14"/></picture> in the native coordinate system of the projection [deg]. </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">x,y</td><td>Projected coordinates in pseudo "degrees". </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">stat</td><td>Status return value for each vector element:<ul>
<li>0: Success.</li>
<li>1: Invalid value of <picture><source srcset="form_1_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaInl" alt="$(\alpha,\delta)$" src="form_1.png" width="28" height="14"/></picture>.</li>
</ul>
</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Status return value:<ul>
<li>0: Success.</li>
<li>1: Null <a class="el" href="structcelprm.html" title="Celestial transformation parameters.">celprm</a> pointer passed.</li>
<li>2: Invalid projection parameters.</li>
<li>3: Invalid coordinate transformation parameters.</li>
<li>4: Ill-conditioned coordinate transformation parameters.</li>
<li>6: One or more of the <picture><source srcset="form_1_dark.png" media="(prefers-color-scheme: dark)"/><img class="formulaInl" alt="$(\alpha,\delta)$" src="form_1.png" width="28" height="14"/></picture> coordinates were invalid, as indicated by the stat vector.</li>
</ul>
For returns > 1, a detailed error message is set in <a class="el" href="structcelprm.html#a1b9cbfd7cfa2306464d57dc4acd03b06">celprm::err</a> if enabled, see <a class="el" href="wcserr_8h.html#a1691b8bd184d40ca6fda255be078fa53" title="Enable/disable error messaging.">wcserr_enable()</a>. </dd></dl>
</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a id="a2ac33dbe3aa2efff60543213b0a691f5" name="a2ac33dbe3aa2efff60543213b0a691f5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2ac33dbe3aa2efff60543213b0a691f5">◆ </a></span>cel_errmsg</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const char* cel_errmsg[]</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">extern</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Nov 29 2023 19:09:57 for WCSLIB by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
</small></address>
</body>
</html>