File: wcsfix_8h-source.html

package info (click to toggle)
python-pywcs 1.11-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 11,888 kB
  • sloc: ansic: 31,441; lex: 6,170; fortran: 6,080; sh: 3,478; python: 3,122; sed: 408; makefile: 76
file content (417 lines) | stat: -rw-r--r-- 46,012 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>WCSLIB 4.8.2: wcsfix.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
<h1>wcsfix.h</h1><a href="wcsfix_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*============================================================================</span>
<a name="l00002"></a>00002 <span class="comment"></span>
<a name="l00003"></a>00003 <span class="comment">  WCSLIB 4.8 - an implementation of the FITS WCS standard.</span>
<a name="l00004"></a>00004 <span class="comment">  Copyright (C) 1995-2011, Mark Calabretta</span>
<a name="l00005"></a>00005 <span class="comment"></span>
<a name="l00006"></a>00006 <span class="comment">  This file is part of WCSLIB.</span>
<a name="l00007"></a>00007 <span class="comment"></span>
<a name="l00008"></a>00008 <span class="comment">  WCSLIB is free software: you can redistribute it and/or modify it under the</span>
<a name="l00009"></a>00009 <span class="comment">  terms of the GNU Lesser General Public License as published by the Free</span>
<a name="l00010"></a>00010 <span class="comment">  Software Foundation, either version 3 of the License, or (at your option)</span>
<a name="l00011"></a>00011 <span class="comment">  any later version.</span>
<a name="l00012"></a>00012 <span class="comment"></span>
<a name="l00013"></a>00013 <span class="comment">  WCSLIB is distributed in the hope that it will be useful, but WITHOUT ANY</span>
<a name="l00014"></a>00014 <span class="comment">  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS</span>
<a name="l00015"></a>00015 <span class="comment">  FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for</span>
<a name="l00016"></a>00016 <span class="comment">  more details.</span>
<a name="l00017"></a>00017 <span class="comment"></span>
<a name="l00018"></a>00018 <span class="comment">  You should have received a copy of the GNU Lesser General Public License</span>
<a name="l00019"></a>00019 <span class="comment">  along with WCSLIB.  If not, see &lt;http://www.gnu.org/licenses/&gt;.</span>
<a name="l00020"></a>00020 <span class="comment"></span>
<a name="l00021"></a>00021 <span class="comment">  Correspondence concerning WCSLIB may be directed to:</span>
<a name="l00022"></a>00022 <span class="comment">    Internet email: mcalabre@atnf.csiro.au</span>
<a name="l00023"></a>00023 <span class="comment">    Postal address: Dr. Mark Calabretta</span>
<a name="l00024"></a>00024 <span class="comment">                    Australia Telescope National Facility, CSIRO</span>
<a name="l00025"></a>00025 <span class="comment">                    PO Box 76</span>
<a name="l00026"></a>00026 <span class="comment">                    Epping NSW 1710</span>
<a name="l00027"></a>00027 <span class="comment">                    AUSTRALIA</span>
<a name="l00028"></a>00028 <span class="comment"></span>
<a name="l00029"></a>00029 <span class="comment">  Author: Mark Calabretta, Australia Telescope National Facility</span>
<a name="l00030"></a>00030 <span class="comment">  http://www.atnf.csiro.au/~mcalabre/index.html</span>
<a name="l00031"></a>00031 <span class="comment">  $Id: wcsfix.h,v 4.8.1.1 2011/08/15 08:07:06 cal103 Exp cal103 $</span>
<a name="l00032"></a>00032 <span class="comment">*=============================================================================</span>
<a name="l00033"></a>00033 <span class="comment">*</span>
<a name="l00034"></a>00034 <span class="comment">* WCSLIB 4.8 - C routines that implement the FITS World Coordinate System</span>
<a name="l00035"></a>00035 <span class="comment">* (WCS) standard.  Refer to</span>
<a name="l00036"></a>00036 <span class="comment">*</span>
<a name="l00037"></a>00037 <span class="comment">*   "Representations of world coordinates in FITS",</span>
<a name="l00038"></a>00038 <span class="comment">*   Greisen, E.W., &amp; Calabretta, M.R. 2002, A&amp;A, 395, 1061 (Paper I)</span>
<a name="l00039"></a>00039 <span class="comment">*</span>
<a name="l00040"></a>00040 <span class="comment">*   "Representations of celestial coordinates in FITS",</span>
<a name="l00041"></a>00041 <span class="comment">*   Calabretta, M.R., &amp; Greisen, E.W. 2002, A&amp;A, 395, 1077 (Paper II)</span>
<a name="l00042"></a>00042 <span class="comment">*</span>
<a name="l00043"></a>00043 <span class="comment">*   "Representations of spectral coordinates in FITS",</span>
<a name="l00044"></a>00044 <span class="comment">*   Greisen, E.W., Calabretta, M.R., Valdes, F.G., &amp; Allen, S.L.</span>
<a name="l00045"></a>00045 <span class="comment">*   2006, A&amp;A, 446, 747 (Paper III)</span>
<a name="l00046"></a>00046 <span class="comment">*</span>
<a name="l00047"></a>00047 <span class="comment">* Refer to the README file provided with WCSLIB for an overview of the</span>
<a name="l00048"></a>00048 <span class="comment">* library.</span>
<a name="l00049"></a>00049 <span class="comment">*</span>
<a name="l00050"></a>00050 <span class="comment">*</span>
<a name="l00051"></a>00051 <span class="comment">* Summary of the wcsfix routines</span>
<a name="l00052"></a>00052 <span class="comment">* ------------------------------</span>
<a name="l00053"></a>00053 <span class="comment">* Routines in this suite identify and translate various forms of non-standard</span>
<a name="l00054"></a>00054 <span class="comment">* construct that are known to occur in FITS WCS headers.  These range from the</span>
<a name="l00055"></a>00055 <span class="comment">* translation of non-standard values for standard WCS keywords, to the repair</span>
<a name="l00056"></a>00056 <span class="comment">* of malformed coordinate representations.</span>
<a name="l00057"></a>00057 <span class="comment">*</span>
<a name="l00058"></a>00058 <span class="comment">* Non-standard keyvalues:</span>
<a name="l00059"></a>00059 <span class="comment">* -----------------------</span>
<a name="l00060"></a>00060 <span class="comment">*   AIPS-convention celestial projection types, NCP and GLS, and spectral</span>
<a name="l00061"></a>00061 <span class="comment">*   types, 'FREQ-LSR', 'FELO-HEL', etc., set in CTYPEia are translated</span>
<a name="l00062"></a>00062 <span class="comment">*   on-the-fly by wcsset() but without modifying the relevant ctype[], pv[] or</span>
<a name="l00063"></a>00063 <span class="comment">*   specsys members of the wcsprm struct.  That is, only the information</span>
<a name="l00064"></a>00064 <span class="comment">*   extracted from ctype[] is translated when wcsset() fills in wcsprm::cel</span>
<a name="l00065"></a>00065 <span class="comment">*   (celprm struct) or wcsprm::spc (spcprm struct).</span>
<a name="l00066"></a>00066 <span class="comment">*</span>
<a name="l00067"></a>00067 <span class="comment">*   On the other hand, these routines do change the values of wcsprm::ctype[],</span>
<a name="l00068"></a>00068 <span class="comment">*   wcsprm::pv[], wcsprm::specsys and other wcsprm struct members as</span>
<a name="l00069"></a>00069 <span class="comment">*   appropriate to produce the same result as if the FITS header itself had</span>
<a name="l00070"></a>00070 <span class="comment">*   been translated.</span>
<a name="l00071"></a>00071 <span class="comment">*</span>
<a name="l00072"></a>00072 <span class="comment">*   Auxiliary WCS header information not used directly by WCSLIB may also be</span>
<a name="l00073"></a>00073 <span class="comment">*   translated.  For example, the older DATE-OBS date format (wcsprm::dateobs)</span>
<a name="l00074"></a>00074 <span class="comment">*   is recast to year-2000 standard form, and MJD-OBS (wcsprm::mjdobs) will be</span>
<a name="l00075"></a>00075 <span class="comment">*   deduced from it if not already set.</span>
<a name="l00076"></a>00076 <span class="comment">*</span>
<a name="l00077"></a>00077 <span class="comment">*   Certain combinations of keyvalues that result in malformed coordinate</span>
<a name="l00078"></a>00078 <span class="comment">*   systems, as described in Sect. 7.3.4 of Paper I, may also be repaired.</span>
<a name="l00079"></a>00079 <span class="comment">*   These are handled by cylfix().</span>
<a name="l00080"></a>00080 <span class="comment">*</span>
<a name="l00081"></a>00081 <span class="comment">* Non-standard keywords:</span>
<a name="l00082"></a>00082 <span class="comment">* ----------------------</span>
<a name="l00083"></a>00083 <span class="comment">*   The AIPS-convention CROTAn keywords are recognized as quasi-standard and</span>
<a name="l00084"></a>00084 <span class="comment">*   as such are accomodated by the wcsprm::crota[] and translated to</span>
<a name="l00085"></a>00085 <span class="comment">*   wcsprm::pc[][] by wcsset().  These are not dealt with here, nor are any</span>
<a name="l00086"></a>00086 <span class="comment">*   other non-standard keywords since these routines work only on the contents</span>
<a name="l00087"></a>00087 <span class="comment">*   of a wcsprm struct and do not deal with FITS headers per se.  In</span>
<a name="l00088"></a>00088 <span class="comment">*   particular, they do not identify or translate CD00i00j, PC00i00j, PROJPn,</span>
<a name="l00089"></a>00089 <span class="comment">*   EPOCH, VELREF or VSOURCEa keywords; this may be done by the FITS WCS</span>
<a name="l00090"></a>00090 <span class="comment">*   header parser supplied with WCSLIB, refer to wcshdr.h.</span>
<a name="l00091"></a>00091 <span class="comment">*</span>
<a name="l00092"></a>00092 <span class="comment">* wcsfix() and wcsfixi() apply all of the corrections handled by the following</span>
<a name="l00093"></a>00093 <span class="comment">* specific functions which may also be invoked separately:</span>
<a name="l00094"></a>00094 <span class="comment">*</span>
<a name="l00095"></a>00095 <span class="comment">*   - cdfix(): Sets the diagonal element of the CDi_ja matrix to 1.0 if all</span>
<a name="l00096"></a>00096 <span class="comment">*     CDi_ja keywords associated with a particular axis are omitted.</span>
<a name="l00097"></a>00097 <span class="comment">*</span>
<a name="l00098"></a>00098 <span class="comment">*   - datfix(): recast an older DATE-OBS date format in dateobs to year-2000</span>
<a name="l00099"></a>00099 <span class="comment">*     standard form and derive mjdobs from it if not already set.</span>
<a name="l00100"></a>00100 <span class="comment">*     Alternatively, if mjdobs is set and dateobs isn't, then derive dateobs</span>
<a name="l00101"></a>00101 <span class="comment">*     from it.</span>
<a name="l00102"></a>00102 <span class="comment">*</span>
<a name="l00103"></a>00103 <span class="comment">*   - unitfix(): translate some commonly used but non-standard unit strings in</span>
<a name="l00104"></a>00104 <span class="comment">*     the CUNITia keyvalues, e.g. 'DEG' -&gt; 'deg'.</span>
<a name="l00105"></a>00105 <span class="comment">*</span>
<a name="l00106"></a>00106 <span class="comment">*   - celfix(): translate AIPS-convention celestial projection types, NCP and</span>
<a name="l00107"></a>00107 <span class="comment">*     GLS, in ctype[] as set from CTYPEia.</span>
<a name="l00108"></a>00108 <span class="comment">*</span>
<a name="l00109"></a>00109 <span class="comment">*   - spcfix(): translate AIPS-convention spectral types, 'FREQ-LSR',</span>
<a name="l00110"></a>00110 <span class="comment">*     'FELO-HEL', etc., in ctype[] as set from CTYPEia.</span>
<a name="l00111"></a>00111 <span class="comment">*</span>
<a name="l00112"></a>00112 <span class="comment">*   - cylfix(): fixes WCS keyvalues for malformed cylindrical projections that</span>
<a name="l00113"></a>00113 <span class="comment">*     suffer from the problem described in Sect. 7.3.4 of Paper I.</span>
<a name="l00114"></a>00114 <span class="comment">*</span>
<a name="l00115"></a>00115 <span class="comment">*</span>
<a name="l00116"></a>00116 <span class="comment">* wcsfix() - Translate a non-standard WCS struct</span>
<a name="l00117"></a>00117 <span class="comment">* ----------------------------------------------</span>
<a name="l00118"></a>00118 <span class="comment">* wcsfix() is identical to wcsfixi(), but lacks the info argument.</span>
<a name="l00119"></a>00119 <span class="comment">*</span>
<a name="l00120"></a>00120 <span class="comment">*</span>
<a name="l00121"></a>00121 <span class="comment">* wcsfixi() - Translate a non-standard WCS struct</span>
<a name="l00122"></a>00122 <span class="comment">* -----------------------------------------------</span>
<a name="l00123"></a>00123 <span class="comment">* wcsfix() applies all of the corrections handled separately by datfix(),</span>
<a name="l00124"></a>00124 <span class="comment">* unitfix(), celfix(), spcfix() and cylfix().</span>
<a name="l00125"></a>00125 <span class="comment">*</span>
<a name="l00126"></a>00126 <span class="comment">* Given:</span>
<a name="l00127"></a>00127 <span class="comment">*   ctrl      int       Do potentially unsafe translations of non-standard</span>
<a name="l00128"></a>00128 <span class="comment">*                       unit strings as described in the usage notes to</span>
<a name="l00129"></a>00129 <span class="comment">*                       wcsutrn().</span>
<a name="l00130"></a>00130 <span class="comment">*</span>
<a name="l00131"></a>00131 <span class="comment">*   naxis     const int []</span>
<a name="l00132"></a>00132 <span class="comment">*                       Image axis lengths.  If this array pointer is set to</span>
<a name="l00133"></a>00133 <span class="comment">*                       zero then cylfix() will not be invoked.</span>
<a name="l00134"></a>00134 <span class="comment">*</span>
<a name="l00135"></a>00135 <span class="comment">* Given and returned:</span>
<a name="l00136"></a>00136 <span class="comment">*   wcs       struct wcsprm*</span>
<a name="l00137"></a>00137 <span class="comment">*                       Coordinate transformation parameters.</span>
<a name="l00138"></a>00138 <span class="comment">*</span>
<a name="l00139"></a>00139 <span class="comment">* Returned:</span>
<a name="l00140"></a>00140 <span class="comment">*   stat      int [NWCSFIX]</span>
<a name="l00141"></a>00141 <span class="comment">*                       Status returns from each of the functions.  Use the</span>
<a name="l00142"></a>00142 <span class="comment">*                       preprocessor macros NWCSFIX to dimension this vector</span>
<a name="l00143"></a>00143 <span class="comment">*                       and CDFIX, DATFIX, UNITFIX, CELFIX, SPCFIX and CYLFIX</span>
<a name="l00144"></a>00144 <span class="comment">*                       to access its elements.  A status value of -2 is set</span>
<a name="l00145"></a>00145 <span class="comment">*                       for functions that were not invoked.</span>
<a name="l00146"></a>00146 <span class="comment">*</span>
<a name="l00147"></a>00147 <span class="comment">*   info      struct wcserr [NWCSFIX]</span>
<a name="l00148"></a>00148 <span class="comment">*                       Status messages from each of the functions.  Use the</span>
<a name="l00149"></a>00149 <span class="comment">*                       preprocessor macros NWCSFIX to dimension this vector</span>
<a name="l00150"></a>00150 <span class="comment">*                       and CDFIX, DATFIX, UNITFIX, CELFIX, SPCFIX and CYLFIX</span>
<a name="l00151"></a>00151 <span class="comment">*                       to access its elements.</span>
<a name="l00152"></a>00152 <span class="comment">*</span>
<a name="l00153"></a>00153 <span class="comment">* Function return value:</span>
<a name="l00154"></a>00154 <span class="comment">*             int       Status return value:</span>
<a name="l00155"></a>00155 <span class="comment">*                         0: Success.</span>
<a name="l00156"></a>00156 <span class="comment">*                         1: One or more of the translation functions</span>
<a name="l00157"></a>00157 <span class="comment">*                            returned an error.</span>
<a name="l00158"></a>00158 <span class="comment">*</span>
<a name="l00159"></a>00159 <span class="comment">*</span>
<a name="l00160"></a>00160 <span class="comment">* cdfix() - Fix erroneously omitted CDi_ja keywords</span>
<a name="l00161"></a>00161 <span class="comment">* -------------------------------------------------</span>
<a name="l00162"></a>00162 <span class="comment">* cdfix() sets the diagonal element of the CDi_ja matrix to unity if all</span>
<a name="l00163"></a>00163 <span class="comment">* CDi_ja keywords associated with a given axis were omitted.  According to</span>
<a name="l00164"></a>00164 <span class="comment">* Paper I, if any CDi_ja keywords at all are given in a FITS header then those</span>
<a name="l00165"></a>00165 <span class="comment">* not given default to zero.  This results in a singular matrix with an</span>
<a name="l00166"></a>00166 <span class="comment">* intersecting row and column of zeros.</span>
<a name="l00167"></a>00167 <span class="comment">*</span>
<a name="l00168"></a>00168 <span class="comment">* Given and returned:</span>
<a name="l00169"></a>00169 <span class="comment">*   wcs       struct wcsprm*</span>
<a name="l00170"></a>00170 <span class="comment">*                       Coordinate transformation parameters.</span>
<a name="l00171"></a>00171 <span class="comment">*</span>
<a name="l00172"></a>00172 <span class="comment">* Function return value:</span>
<a name="l00173"></a>00173 <span class="comment">*             int       Status return value:</span>
<a name="l00174"></a>00174 <span class="comment">*                        -1: No change required (not an error).</span>
<a name="l00175"></a>00175 <span class="comment">*                         0: Success.</span>
<a name="l00176"></a>00176 <span class="comment">*                         1: Null wcsprm pointer passed.</span>
<a name="l00177"></a>00177 <span class="comment">*</span>
<a name="l00178"></a>00178 <span class="comment">*</span>
<a name="l00179"></a>00179 <span class="comment">* datfix() - Translate DATE-OBS and derive MJD-OBS or vice versa</span>
<a name="l00180"></a>00180 <span class="comment">* --------------------------------------------------------------</span>
<a name="l00181"></a>00181 <span class="comment">* datfix() translates the old DATE-OBS date format set in wcsprm::dateobs to</span>
<a name="l00182"></a>00182 <span class="comment">* year-2000 standard form (yyyy-mm-ddThh:mm:ss) and derives MJD-OBS from it if</span>
<a name="l00183"></a>00183 <span class="comment">* not already set.  Alternatively, if wcsprm::mjdobs is set and</span>
<a name="l00184"></a>00184 <span class="comment">* wcsprm::dateobs isn't, then datfix() derives wcsprm::dateobs from it.  If</span>
<a name="l00185"></a>00185 <span class="comment">* both are set but disagree by more than half a day then status 5 is returned.</span>
<a name="l00186"></a>00186 <span class="comment">*</span>
<a name="l00187"></a>00187 <span class="comment">* Given and returned:</span>
<a name="l00188"></a>00188 <span class="comment">*   wcs       struct wcsprm*</span>
<a name="l00189"></a>00189 <span class="comment">*                       Coordinate transformation parameters.  wcsprm::dateobs</span>
<a name="l00190"></a>00190 <span class="comment">*                       and/or wcsprm::mjdobs may be changed.</span>
<a name="l00191"></a>00191 <span class="comment">*</span>
<a name="l00192"></a>00192 <span class="comment">* Function return value:</span>
<a name="l00193"></a>00193 <span class="comment">*             int       Status return value:</span>
<a name="l00194"></a>00194 <span class="comment">*                        -1: No change required (not an error).</span>
<a name="l00195"></a>00195 <span class="comment">*                         0: Success.</span>
<a name="l00196"></a>00196 <span class="comment">*                         1: Null wcsprm pointer passed.</span>
<a name="l00197"></a>00197 <span class="comment">*                         5: Invalid parameter value.</span>
<a name="l00198"></a>00198 <span class="comment">*</span>
<a name="l00199"></a>00199 <span class="comment">*                       For returns &gt; 1, a detailed error message is set in</span>
<a name="l00200"></a>00200 <span class="comment">*                       wcsprm::err if enabled, see wcserr_enable().</span>
<a name="l00201"></a>00201 <span class="comment">*</span>
<a name="l00202"></a>00202 <span class="comment">* Notes:</span>
<a name="l00203"></a>00203 <span class="comment">*   The MJD algorithms used by datfix() are from D.A. Hatcher, 1984, QJRAS,</span>
<a name="l00204"></a>00204 <span class="comment">*   25, 53-55, as modified by P.T. Wallace for use in SLALIB subroutines CLDJ</span>
<a name="l00205"></a>00205 <span class="comment">*   and DJCL.</span>
<a name="l00206"></a>00206 <span class="comment">*</span>
<a name="l00207"></a>00207 <span class="comment">*</span>
<a name="l00208"></a>00208 <span class="comment">* unitfix() - Correct aberrant CUNITia keyvalues</span>
<a name="l00209"></a>00209 <span class="comment">* ----------------------------------------------</span>
<a name="l00210"></a>00210 <span class="comment">* unitfix() applies wcsutrn() to translate non-standard CUNITia keyvalues,</span>
<a name="l00211"></a>00211 <span class="comment">* e.g. 'DEG' -&gt; 'deg', also stripping off unnecessary whitespace.</span>
<a name="l00212"></a>00212 <span class="comment">*</span>
<a name="l00213"></a>00213 <span class="comment">* Given:</span>
<a name="l00214"></a>00214 <span class="comment">*   ctrl      int       Do potentially unsafe translations described in the</span>
<a name="l00215"></a>00215 <span class="comment">*                       usage notes to wcsutrn().</span>
<a name="l00216"></a>00216 <span class="comment">*</span>
<a name="l00217"></a>00217 <span class="comment">* Given and returned:</span>
<a name="l00218"></a>00218 <span class="comment">*   wcs       struct wcsprm*</span>
<a name="l00219"></a>00219 <span class="comment">*                       Coordinate transformation parameters.</span>
<a name="l00220"></a>00220 <span class="comment">*</span>
<a name="l00221"></a>00221 <span class="comment">* Function return value:</span>
<a name="l00222"></a>00222 <span class="comment">*             int       Status return value:</span>
<a name="l00223"></a>00223 <span class="comment">*                        -1: No change required (not an error).</span>
<a name="l00224"></a>00224 <span class="comment">*                         0: Success.</span>
<a name="l00225"></a>00225 <span class="comment">*                         1: Null wcsprm pointer passed.</span>
<a name="l00226"></a>00226 <span class="comment">*</span>
<a name="l00227"></a>00227 <span class="comment">*</span>
<a name="l00228"></a>00228 <span class="comment">* celfix() - Translate AIPS-convention celestial projection types</span>
<a name="l00229"></a>00229 <span class="comment">* ---------------------------------------------------------------</span>
<a name="l00230"></a>00230 <span class="comment">* celfix() translates AIPS-convention celestial projection types, NCP and</span>
<a name="l00231"></a>00231 <span class="comment">* GLS, set in the ctype[] member of the wcsprm struct.</span>
<a name="l00232"></a>00232 <span class="comment">*</span>
<a name="l00233"></a>00233 <span class="comment">* Two additional pv[] keyvalues are created when translating NCP.  If the</span>
<a name="l00234"></a>00234 <span class="comment">* pv[] array was initially allocated by wcsini() then the array will be</span>
<a name="l00235"></a>00235 <span class="comment">* expanded if necessary.  Otherwise, error 2 will be returned if two empty</span>
<a name="l00236"></a>00236 <span class="comment">* slots are not already available for use.</span>
<a name="l00237"></a>00237 <span class="comment">*</span>
<a name="l00238"></a>00238 <span class="comment">* Given and returned:</span>
<a name="l00239"></a>00239 <span class="comment">*   wcs       struct wcsprm*</span>
<a name="l00240"></a>00240 <span class="comment">*                       Coordinate transformation parameters.  wcsprm::ctype[]</span>
<a name="l00241"></a>00241 <span class="comment">*                       and/or wcsprm::pv[] may be changed.</span>
<a name="l00242"></a>00242 <span class="comment">*</span>
<a name="l00243"></a>00243 <span class="comment">* Function return value:</span>
<a name="l00244"></a>00244 <span class="comment">*             int       Status return value:</span>
<a name="l00245"></a>00245 <span class="comment">*                        -1: No change required (not an error).</span>
<a name="l00246"></a>00246 <span class="comment">*                         0: Success.</span>
<a name="l00247"></a>00247 <span class="comment">*                         1: Null wcsprm pointer passed.</span>
<a name="l00248"></a>00248 <span class="comment">*                         2: Memory allocation failed.</span>
<a name="l00249"></a>00249 <span class="comment">*                         3: Linear transformation matrix is singular.</span>
<a name="l00250"></a>00250 <span class="comment">*                         4: Inconsistent or unrecognized coordinate axis</span>
<a name="l00251"></a>00251 <span class="comment">*                            types.</span>
<a name="l00252"></a>00252 <span class="comment">*                         5: Invalid parameter value.</span>
<a name="l00253"></a>00253 <span class="comment">*                         6: Invalid coordinate transformation parameters.</span>
<a name="l00254"></a>00254 <span class="comment">*                         7: Ill-conditioned coordinate transformation</span>
<a name="l00255"></a>00255 <span class="comment">*                            parameters.</span>
<a name="l00256"></a>00256 <span class="comment">*</span>
<a name="l00257"></a>00257 <span class="comment">*                       For returns &gt; 1, a detailed error message is set in</span>
<a name="l00258"></a>00258 <span class="comment">*                       wcsprm::err if enabled, see wcserr_enable().</span>
<a name="l00259"></a>00259 <span class="comment">*</span>
<a name="l00260"></a>00260 <span class="comment">*</span>
<a name="l00261"></a>00261 <span class="comment">* spcfix() - Translate AIPS-convention spectral types</span>
<a name="l00262"></a>00262 <span class="comment">* ---------------------------------------------------</span>
<a name="l00263"></a>00263 <span class="comment">* spcfix() translates AIPS-convention spectral coordinate types,</span>
<a name="l00264"></a>00264 <span class="comment">* '{FREQ,FELO,VELO}-{LSR,HEL,OBS}' (e.g. 'FREQ-OBS', 'FELO-HEL', 'VELO-LSR')</span>
<a name="l00265"></a>00265 <span class="comment">* set in wcsprm::ctype[], subject to VELREF set in wcsprm::velref.</span>
<a name="l00266"></a>00266 <span class="comment">*</span>
<a name="l00267"></a>00267 <span class="comment">* Given and returned:</span>
<a name="l00268"></a>00268 <span class="comment">*   wcs       struct wcsprm*</span>
<a name="l00269"></a>00269 <span class="comment">*                       Coordinate transformation parameters.  wcsprm::ctype[]</span>
<a name="l00270"></a>00270 <span class="comment">*                       and/or wcsprm::specsys may be changed.</span>
<a name="l00271"></a>00271 <span class="comment">*</span>
<a name="l00272"></a>00272 <span class="comment">* Function return value:</span>
<a name="l00273"></a>00273 <span class="comment">*             int       Status return value:</span>
<a name="l00274"></a>00274 <span class="comment">*                        -1: No change required (not an error).</span>
<a name="l00275"></a>00275 <span class="comment">*                         0: Success.</span>
<a name="l00276"></a>00276 <span class="comment">*                         1: Null wcsprm pointer passed.</span>
<a name="l00277"></a>00277 <span class="comment">*                         2: Memory allocation failed.</span>
<a name="l00278"></a>00278 <span class="comment">*                         3: Linear transformation matrix is singular.</span>
<a name="l00279"></a>00279 <span class="comment">*                         4: Inconsistent or unrecognized coordinate axis</span>
<a name="l00280"></a>00280 <span class="comment">*                            types.</span>
<a name="l00281"></a>00281 <span class="comment">*                         5: Invalid parameter value.</span>
<a name="l00282"></a>00282 <span class="comment">*                         6: Invalid coordinate transformation parameters.</span>
<a name="l00283"></a>00283 <span class="comment">*                         7: Ill-conditioned coordinate transformation</span>
<a name="l00284"></a>00284 <span class="comment">*                            parameters.</span>
<a name="l00285"></a>00285 <span class="comment">*</span>
<a name="l00286"></a>00286 <span class="comment">*                       For returns &gt; 1, a detailed error message is set in</span>
<a name="l00287"></a>00287 <span class="comment">*                       wcsprm::err if enabled, see wcserr_enable().</span>
<a name="l00288"></a>00288 <span class="comment">*</span>
<a name="l00289"></a>00289 <span class="comment">*</span>
<a name="l00290"></a>00290 <span class="comment">* cylfix() - Fix malformed cylindrical projections</span>
<a name="l00291"></a>00291 <span class="comment">* ------------------------------------------------</span>
<a name="l00292"></a>00292 <span class="comment">* cylfix() fixes WCS keyvalues for malformed cylindrical projections that</span>
<a name="l00293"></a>00293 <span class="comment">* suffer from the problem described in Sect. 7.3.4 of Paper I.</span>
<a name="l00294"></a>00294 <span class="comment">*</span>
<a name="l00295"></a>00295 <span class="comment">* Given:</span>
<a name="l00296"></a>00296 <span class="comment">*   naxis     const int []</span>
<a name="l00297"></a>00297 <span class="comment">*                       Image axis lengths.</span>
<a name="l00298"></a>00298 <span class="comment">*</span>
<a name="l00299"></a>00299 <span class="comment">* Given and returned:</span>
<a name="l00300"></a>00300 <span class="comment">*   wcs       struct wcsprm*</span>
<a name="l00301"></a>00301 <span class="comment">*                       Coordinate transformation parameters.</span>
<a name="l00302"></a>00302 <span class="comment">*</span>
<a name="l00303"></a>00303 <span class="comment">* Function return value:</span>
<a name="l00304"></a>00304 <span class="comment">*             int       Status return value:</span>
<a name="l00305"></a>00305 <span class="comment">*                        -1: No change required (not an error).</span>
<a name="l00306"></a>00306 <span class="comment">*                         0: Success.</span>
<a name="l00307"></a>00307 <span class="comment">*                         1: Null wcsprm pointer passed.</span>
<a name="l00308"></a>00308 <span class="comment">*                         2: Memory allocation failed.</span>
<a name="l00309"></a>00309 <span class="comment">*                         3: Linear transformation matrix is singular.</span>
<a name="l00310"></a>00310 <span class="comment">*                         4: Inconsistent or unrecognized coordinate axis</span>
<a name="l00311"></a>00311 <span class="comment">*                            types.</span>
<a name="l00312"></a>00312 <span class="comment">*                         5: Invalid parameter value.</span>
<a name="l00313"></a>00313 <span class="comment">*                         6: Invalid coordinate transformation parameters.</span>
<a name="l00314"></a>00314 <span class="comment">*                         7: Ill-conditioned coordinate transformation</span>
<a name="l00315"></a>00315 <span class="comment">*                            parameters.</span>
<a name="l00316"></a>00316 <span class="comment">*                         8: All of the corner pixel coordinates are invalid.</span>
<a name="l00317"></a>00317 <span class="comment">*                         9: Could not determine reference pixel coordinate.</span>
<a name="l00318"></a>00318 <span class="comment">*                        10: Could not determine reference pixel value.</span>
<a name="l00319"></a>00319 <span class="comment">*</span>
<a name="l00320"></a>00320 <span class="comment">*                       For returns &gt; 1, a detailed error message is set in</span>
<a name="l00321"></a>00321 <span class="comment">*                       wcsprm::err if enabled, see wcserr_enable().</span>
<a name="l00322"></a>00322 <span class="comment">*</span>
<a name="l00323"></a>00323 <span class="comment">*</span>
<a name="l00324"></a>00324 <span class="comment">* Global variable: const char *wcsfix_errmsg[] - Status return messages</span>
<a name="l00325"></a>00325 <span class="comment">* ---------------------------------------------------------------------</span>
<a name="l00326"></a>00326 <span class="comment">* Error messages to match the status value returned from each function.</span>
<a name="l00327"></a>00327 <span class="comment">*</span>
<a name="l00328"></a>00328 <span class="comment">*===========================================================================*/</span>
<a name="l00329"></a>00329 
<a name="l00330"></a>00330 <span class="preprocessor">#ifndef WCSLIB_WCSFIX</span>
<a name="l00331"></a>00331 <span class="preprocessor"></span><span class="preprocessor">#define WCSLIB_WCSFIX</span>
<a name="l00332"></a>00332 <span class="preprocessor"></span>
<a name="l00333"></a>00333 <span class="preprocessor">#include "<a class="code" href="wcs_8h.html">wcs.h</a>"</span>
<a name="l00334"></a>00334 <span class="preprocessor">#include "<a class="code" href="wcserr_8h.html">wcserr.h</a>"</span>
<a name="l00335"></a>00335 
<a name="l00336"></a>00336 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00337"></a>00337 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {
<a name="l00338"></a>00338 <span class="preprocessor">#endif</span>
<a name="l00339"></a>00339 <span class="preprocessor"></span>
<a name="l00340"></a><a class="code" href="wcsfix_8h.html#f23e7b02522c40fa5dfbf3d569348844">00340</a> <span class="preprocessor">#define CDFIX    0</span>
<a name="l00341"></a><a class="code" href="wcsfix_8h.html#7181ebe5e9f0a4058642c56dc848bd5c">00341</a> <span class="preprocessor"></span><span class="preprocessor">#define DATFIX   1</span>
<a name="l00342"></a><a class="code" href="wcsfix_8h.html#8f4a947e2605b35ffa92f08b113d60b2">00342</a> <span class="preprocessor"></span><span class="preprocessor">#define UNITFIX  2</span>
<a name="l00343"></a><a class="code" href="wcsfix_8h.html#f1b99efe520fbd2d4bd0e5a35f87e186">00343</a> <span class="preprocessor"></span><span class="preprocessor">#define CELFIX   3</span>
<a name="l00344"></a><a class="code" href="wcsfix_8h.html#0816c5f2354ee6c0044e11867d7558ea">00344</a> <span class="preprocessor"></span><span class="preprocessor">#define SPCFIX   4</span>
<a name="l00345"></a><a class="code" href="wcsfix_8h.html#4d37e0274dff84649cba075b8761b3fa">00345</a> <span class="preprocessor"></span><span class="preprocessor">#define CYLFIX   5</span>
<a name="l00346"></a><a class="code" href="wcsfix_8h.html#0ed13e54c3eacb9325afbae78ef33b61">00346</a> <span class="preprocessor"></span><span class="preprocessor">#define NWCSFIX  6</span>
<a name="l00347"></a>00347 <span class="preprocessor"></span>
<a name="l00348"></a>00348 <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="wcsfix_8h.html#256ce6281894f65dd15396cc0994e875" title="Status return messages.">wcsfix_errmsg</a>[];
<a name="l00349"></a><a class="code" href="wcsfix_8h.html#3229b126ed844da0a2d4f7abff1de7d0">00349</a> <span class="preprocessor">#define cylfix_errmsg wcsfix_errmsg</span>
<a name="l00350"></a>00350 <span class="preprocessor"></span>
<a name="l00351"></a><a class="code" href="wcsfix_8h.html#0399bbea1e28abad3259a8ea05b25183">00351</a> <span class="keyword">enum</span> <a class="code" href="wcsfix_8h.html#0399bbea1e28abad3259a8ea05b25183">wcsfix_errmsg_enum</a> {
<a name="l00352"></a><a class="code" href="wcsfix_8h.html#0399bbea1e28abad3259a8ea05b25183ec3fdc50ed9f4ca8d80d7ce7751ef0e3">00352</a>   <a class="code" href="wcsfix_8h.html#0399bbea1e28abad3259a8ea05b25183ec3fdc50ed9f4ca8d80d7ce7751ef0e3">FIXERR_NO_CHANGE</a>        = -1, <span class="comment">/* No change. */</span>
<a name="l00353"></a><a class="code" href="wcsfix_8h.html#0399bbea1e28abad3259a8ea05b25183ee9fbc64e56bb6d307d06d8ef8e8b244">00353</a>   <a class="code" href="wcsfix_8h.html#0399bbea1e28abad3259a8ea05b25183ee9fbc64e56bb6d307d06d8ef8e8b244">FIXERR_SUCCESS</a>          =  0, <span class="comment">/* Success. */</span>
<a name="l00354"></a><a class="code" href="wcsfix_8h.html#0399bbea1e28abad3259a8ea05b25183f574a836e251e8a0257da97580bb9354">00354</a>   <a class="code" href="wcsfix_8h.html#0399bbea1e28abad3259a8ea05b25183f574a836e251e8a0257da97580bb9354">FIXERR_NULL_POINTER</a>     =  1, <span class="comment">/* Null wcsprm pointer passed. */</span>
<a name="l00355"></a><a class="code" href="wcsfix_8h.html#0399bbea1e28abad3259a8ea05b251831e4cf4eeb3cd2f4d8c2c1f040aa62f6c">00355</a>   <a class="code" href="wcsfix_8h.html#0399bbea1e28abad3259a8ea05b251831e4cf4eeb3cd2f4d8c2c1f040aa62f6c">FIXERR_MEMORY</a>           =  2, <span class="comment">/* Memory allocation failed. */</span>
<a name="l00356"></a><a class="code" href="wcsfix_8h.html#0399bbea1e28abad3259a8ea05b251838553bf40509263e3c3a198810f83d26e">00356</a>   <a class="code" href="wcsfix_8h.html#0399bbea1e28abad3259a8ea05b251838553bf40509263e3c3a198810f83d26e">FIXERR_SINGULAR_MTX</a>     =  3, <span class="comment">/* Linear transformation matrix is</span>
<a name="l00357"></a>00357 <span class="comment">                                   singular. */</span>
<a name="l00358"></a><a class="code" href="wcsfix_8h.html#0399bbea1e28abad3259a8ea05b25183421fc9b9a2aac54bc832b3c1180f8f07">00358</a>   <a class="code" href="wcsfix_8h.html#0399bbea1e28abad3259a8ea05b25183421fc9b9a2aac54bc832b3c1180f8f07">FIXERR_BAD_CTYPE</a>        =  4, <span class="comment">/* Inconsistent or unrecognized coordinate</span>
<a name="l00359"></a>00359 <span class="comment">                                   axis types. */</span>
<a name="l00360"></a><a class="code" href="wcsfix_8h.html#0399bbea1e28abad3259a8ea05b2518326d787caed068586fbef3d3c0fbce41f">00360</a>   <a class="code" href="wcsfix_8h.html#0399bbea1e28abad3259a8ea05b2518326d787caed068586fbef3d3c0fbce41f">FIXERR_BAD_PARAM</a>        =  5, <span class="comment">/* Invalid parameter value. */</span>
<a name="l00361"></a><a class="code" href="wcsfix_8h.html#0399bbea1e28abad3259a8ea05b251835dd410d6f1a55543c4f7d0f82435eb40">00361</a>   <a class="code" href="wcsfix_8h.html#0399bbea1e28abad3259a8ea05b251835dd410d6f1a55543c4f7d0f82435eb40">FIXERR_BAD_COORD_TRANS</a>  =  6, <span class="comment">/* Invalid coordinate transformation</span>
<a name="l00362"></a>00362 <span class="comment">                                   parameters. */</span>
<a name="l00363"></a><a class="code" href="wcsfix_8h.html#0399bbea1e28abad3259a8ea05b2518381b5390b4f770515ae950d9e382b2885">00363</a>   <a class="code" href="wcsfix_8h.html#0399bbea1e28abad3259a8ea05b2518381b5390b4f770515ae950d9e382b2885">FIXERR_ILL_COORD_TRANS</a>  =  7, <span class="comment">/* Ill-conditioned coordinate transformation</span>
<a name="l00364"></a>00364 <span class="comment">                                   parameters. */</span>
<a name="l00365"></a><a class="code" href="wcsfix_8h.html#0399bbea1e28abad3259a8ea05b251833f4b7a9a303943f6c12ea51cce2240cf">00365</a>   <a class="code" href="wcsfix_8h.html#0399bbea1e28abad3259a8ea05b251833f4b7a9a303943f6c12ea51cce2240cf">FIXERR_BAD_CORNER_PIX</a>   =  8, <span class="comment">/* All of the corner pixel coordinates are</span>
<a name="l00366"></a>00366 <span class="comment">                                   invalid. */</span>
<a name="l00367"></a><a class="code" href="wcsfix_8h.html#0399bbea1e28abad3259a8ea05b25183d6bf7801d043f41f67c54677d6cfcb75">00367</a>   <a class="code" href="wcsfix_8h.html#0399bbea1e28abad3259a8ea05b25183d6bf7801d043f41f67c54677d6cfcb75">FIXERR_NO_REF_PIX_COORD</a> =  9, <span class="comment">/* Could not determine reference pixel</span>
<a name="l00368"></a>00368 <span class="comment">                                   coordinate. */</span>
<a name="l00369"></a><a class="code" href="wcsfix_8h.html#0399bbea1e28abad3259a8ea05b2518315a9e5f9cbb559ef53018e9aade43e88">00369</a>   <a class="code" href="wcsfix_8h.html#0399bbea1e28abad3259a8ea05b2518315a9e5f9cbb559ef53018e9aade43e88">FIXERR_NO_REF_PIX_VAL</a>   = 10  <span class="comment">/* Could not determine reference pixel</span>
<a name="l00370"></a>00370 <span class="comment">                                   value. */</span>
<a name="l00371"></a>00371 };
<a name="l00372"></a>00372 
<a name="l00373"></a>00373 <span class="keywordtype">int</span> <a class="code" href="wcsfix_8h.html#89e1b5b4d2fa89af03f5d1143352b05f" title="Translate a non-standard WCS struct.">wcsfix</a>(<span class="keywordtype">int</span> ctrl, <span class="keyword">const</span> <span class="keywordtype">int</span> naxis[], <span class="keyword">struct</span> <a class="code" href="structwcsprm.html" title="Coordinate transformation parameters.">wcsprm</a> *wcs, <span class="keywordtype">int</span> stat[]);
<a name="l00374"></a>00374 
<a name="l00375"></a>00375 <span class="keywordtype">int</span> <a class="code" href="wcsfix_8h.html#62298e0fb06332a282d9daab718a1286" title="Translate a non-standard WCS struct.">wcsfixi</a>(<span class="keywordtype">int</span> ctrl, <span class="keyword">const</span> <span class="keywordtype">int</span> naxis[], <span class="keyword">struct</span> <a class="code" href="structwcsprm.html" title="Coordinate transformation parameters.">wcsprm</a> *wcs, <span class="keywordtype">int</span> stat[],
<a name="l00376"></a>00376             <span class="keyword">struct</span> <a class="code" href="structwcserr.html" title="Error message handling.">wcserr</a> info[]);
<a name="l00377"></a>00377 
<a name="l00378"></a>00378 <span class="keywordtype">int</span> <a class="code" href="wcsfix_8h.html#25714f1558ecbee6c1b1fef0abf8ea7f" title="Fix erroneously omitted CDi_ja keywords.">cdfix</a>(<span class="keyword">struct</span> <a class="code" href="structwcsprm.html" title="Coordinate transformation parameters.">wcsprm</a> *wcs);
<a name="l00379"></a>00379 
<a name="l00380"></a>00380 <span class="keywordtype">int</span> <a class="code" href="wcsfix_8h.html#77b614a15de67b42040c2be46cbfca1a" title="Translate DATE-OBS and derive MJD-OBS or vice versa.">datfix</a>(<span class="keyword">struct</span> <a class="code" href="structwcsprm.html" title="Coordinate transformation parameters.">wcsprm</a> *wcs);
<a name="l00381"></a>00381 
<a name="l00382"></a>00382 <span class="keywordtype">int</span> <a class="code" href="wcsfix_8h.html#883167275c4d3855ba453364db3d8d66" title="Correct aberrant CUNITia keyvalues.">unitfix</a>(<span class="keywordtype">int</span> ctrl, <span class="keyword">struct</span> <a class="code" href="structwcsprm.html" title="Coordinate transformation parameters.">wcsprm</a> *wcs);
<a name="l00383"></a>00383 
<a name="l00384"></a>00384 <span class="keywordtype">int</span> <a class="code" href="wcsfix_8h.html#c1df72303f64e50d5e3cb320c126443b" title="Translate AIPS-convention celestial projection types.">celfix</a>(<span class="keyword">struct</span> <a class="code" href="structwcsprm.html" title="Coordinate transformation parameters.">wcsprm</a> *wcs);
<a name="l00385"></a>00385 
<a name="l00386"></a>00386 <span class="keywordtype">int</span> <a class="code" href="wcsfix_8h.html#f011e4065b6179e19d2964bc9646b6af" title="Translate AIPS-convention spectral types.">spcfix</a>(<span class="keyword">struct</span> <a class="code" href="structwcsprm.html" title="Coordinate transformation parameters.">wcsprm</a> *wcs);
<a name="l00387"></a>00387 
<a name="l00388"></a>00388 <span class="keywordtype">int</span> <a class="code" href="wcsfix_8h.html#07281faacbec1df800a417bf157751d7" title="Fix malformed cylindrical projections.">cylfix</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> naxis[], <span class="keyword">struct</span> <a class="code" href="structwcsprm.html" title="Coordinate transformation parameters.">wcsprm</a> *wcs);
<a name="l00389"></a>00389 
<a name="l00390"></a>00390 
<a name="l00391"></a>00391 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00392"></a>00392 <span class="preprocessor"></span>}
<a name="l00393"></a>00393 <span class="preprocessor">#endif</span>
<a name="l00394"></a>00394 <span class="preprocessor"></span>
<a name="l00395"></a>00395 <span class="preprocessor">#endif </span><span class="comment">/* WCSLIB_WCSFIX */</span>
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Tue Oct 4 19:02:30 2011 for WCSLIB 4.8.2 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>