IIINSTRUMENT Pipeline Reference Manual  1.5.13
sofi_pfits.c
1 /* $Id: sofi_pfits.c,v 1.6 2013-03-12 08:04:54 llundin Exp $
2  *
3  * This file is part of the SOFI Pipeline
4  * Copyright (C) 2002,2003 European Southern Observatory
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02111-1307 USA
19  */
20 
21 /*
22  * $Author: llundin $
23  * $Date: 2013-03-12 08:04:54 $
24  * $Revision: 1.6 $
25  * $Name: not supported by cvs2svn $
26  */
27 
28 #ifdef HAVE_CONFIG_H
29 #include <config.h>
30 #endif
31 
32 /*-----------------------------------------------------------------------------
33  Includes
34  -----------------------------------------------------------------------------*/
35 
36 #include <string.h>
37 #include <cpl.h>
38 
39 #include "sofi_pfits.h"
40 
41 /*----------------------------------------------------------------------------*/
46 /*----------------------------------------------------------------------------*/
47 
50 /*-----------------------------------------------------------------------------
51  Function codes
52  -----------------------------------------------------------------------------*/
53 
54 /*----------------------------------------------------------------------------*/
60 /*----------------------------------------------------------------------------*/
61 double sofi_pfits_get_airmass_start(const cpl_propertylist * plist)
62 {
63  return cpl_propertylist_get_double(plist, "ESO TEL AIRM START") ;
64 }
65 
66 /*----------------------------------------------------------------------------*/
72 /*----------------------------------------------------------------------------*/
73 double sofi_pfits_get_airmass_end(const cpl_propertylist * plist)
74 {
75  return cpl_propertylist_get_double(plist, "ESO TEL AIRM END") ;
76 }
77 
78 /*----------------------------------------------------------------------------*/
84 /*----------------------------------------------------------------------------*/
85 const char * sofi_pfits_get_arcfile(const cpl_propertylist * plist)
86 {
87  return (const char *) cpl_propertylist_get_string(plist, "ARCFILE");
88 }
89 
90 /*----------------------------------------------------------------------------*/
96 /*----------------------------------------------------------------------------*/
97 const char * sofi_pfits_get_chip(const cpl_propertylist * plist)
98 {
99  return (const char *) cpl_propertylist_get_string(plist,
100  "ESO DET CHIP NAME");
101 }
102 
103 /*----------------------------------------------------------------------------*/
109 /*----------------------------------------------------------------------------*/
110 double sofi_pfits_get_cumoffsetx(const cpl_propertylist * plist)
111 {
112  return cpl_propertylist_get_double(plist, "ESO SEQ CUMOFFSETX") ;
113 }
114 
115 /*----------------------------------------------------------------------------*/
121 /*----------------------------------------------------------------------------*/
122 double sofi_pfits_get_cumoffsety(const cpl_propertylist * plist)
123 {
124  return cpl_propertylist_get_double(plist, "ESO SEQ CUMOFFSETY") ;
125 }
126 
127 /*----------------------------------------------------------------------------*/
133 /*----------------------------------------------------------------------------*/
134 int sofi_pfits_get_current_exp_nb(const cpl_propertylist * plist)
135 {
136  return cpl_propertylist_get_int(plist, "ESO TPL EXPNO") ;
137 }
138 
139 /*----------------------------------------------------------------------------*/
145 /*----------------------------------------------------------------------------*/
146 const char * sofi_pfits_get_date(const cpl_propertylist * plist)
147 {
148  return (const char *) cpl_propertylist_get_string(plist, "DATE") ;
149 }
150 
151 /*----------------------------------------------------------------------------*/
157 /*----------------------------------------------------------------------------*/
158 const char * sofi_pfits_get_date_obs(const cpl_propertylist * plist)
159 {
160  return (const char *) cpl_propertylist_get_string(plist, "DATE-OBS") ;
161 }
162 
163 /*----------------------------------------------------------------------------*/
169 /*----------------------------------------------------------------------------*/
170 double sofi_pfits_get_dec(const cpl_propertylist * plist)
171 {
172  return cpl_propertylist_get_double(plist, "DEC") ;
173 }
174 
175 /*----------------------------------------------------------------------------*/
181 /*----------------------------------------------------------------------------*/
182 const char * sofi_pfits_get_frame_type(const cpl_propertylist * plist)
183 {
184  return (const char *) cpl_propertylist_get_string(plist,
185  "ESO DET FRAM TYPE") ;
186 }
187 
188 /*----------------------------------------------------------------------------*/
194 /*----------------------------------------------------------------------------*/
195 double sofi_pfits_get_dit(const cpl_propertylist * plist)
196 {
197  return cpl_propertylist_get_double(plist, "ESO DET DIT") ;
198 }
199 
200 /*----------------------------------------------------------------------------*/
206 /*----------------------------------------------------------------------------*/
207 const char * sofi_pfits_get_dpr_catg(const cpl_propertylist * plist)
208 {
209  return (const char *) cpl_propertylist_get_string(plist, "ESO DPR CATG") ;
210 }
211 
212 /*----------------------------------------------------------------------------*/
218 /*----------------------------------------------------------------------------*/
219 const char * sofi_pfits_get_dpr_tech(const cpl_propertylist * plist)
220 {
221  return (const char *) cpl_propertylist_get_string(plist, "ESO DPR TECH") ;
222 }
223 
224 /*----------------------------------------------------------------------------*/
230 /*----------------------------------------------------------------------------*/
231 const char * sofi_pfits_get_dpr_type(const cpl_propertylist * plist)
232 {
233  return (const char *) cpl_propertylist_get_string(plist, "ESO DPR TYPE") ;
234 }
235 
236 /*----------------------------------------------------------------------------*/
242 /*----------------------------------------------------------------------------*/
243 const char * sofi_pfits_get_filter(const cpl_propertylist * plist)
244 {
245  const char * val ;
246 
247  val = cpl_propertylist_get_string(plist, "ESO INS FILT1 ID") ;
248  if (val == NULL) return NULL ;
249  /* If FILT1 is not open, return its value */
250  if (strcmp(val, "open")) return val ;
251  /* FILT1 is open, return value from FILT2 */
252  val = cpl_propertylist_get_string(plist, "ESO INS FILT2 ID") ;
253  if (val == NULL) return NULL ;
254  if (strcmp(val, "open")) return val ;
255  return NULL ;
256 }
257 
258 /*----------------------------------------------------------------------------*/
264 /*----------------------------------------------------------------------------*/
265 double sofi_pfits_get_humidity_level(const cpl_propertylist * plist)
266 {
267  return cpl_propertylist_get_double(plist, "ESO TEL AMBI RHUM") ;
268 }
269 
270 /*----------------------------------------------------------------------------*/
276 /*----------------------------------------------------------------------------*/
277 const char * sofi_pfits_get_instrument(const cpl_propertylist * plist)
278 {
279  return (const char *) cpl_propertylist_get_string(plist, "INSTRUME") ;
280 }
281 
282 /*----------------------------------------------------------------------------*/
288 /*----------------------------------------------------------------------------*/
289 const char * sofi_pfits_get_lamp1_name(const cpl_propertylist * plist)
290 {
291  return (const char *) cpl_propertylist_get_string(plist,
292  "ESO INS LAMP1 NAME") ;
293 }
294 
295 /*----------------------------------------------------------------------------*/
301 /*----------------------------------------------------------------------------*/
302 int sofi_pfits_get_lamp1_status(const cpl_propertylist * plist)
303 {
304  return cpl_propertylist_get_bool(plist, "ESO INS LAMP1 ST") ;
305 }
306 
307 /*----------------------------------------------------------------------------*/
313 /*----------------------------------------------------------------------------*/
314 const char * sofi_pfits_get_lamp2_name(const cpl_propertylist * plist)
315 {
316  return (const char *) cpl_propertylist_get_string(plist,
317  "ESO INS LAMP2 NAME") ;
318 }
319 
320 /*----------------------------------------------------------------------------*/
326 /*----------------------------------------------------------------------------*/
327 int sofi_pfits_get_lamp2_status(const cpl_propertylist * plist)
328 {
329  return cpl_propertylist_get_bool(plist, "ESO INS LAMP2 ST") ;
330 }
331 
332 /*----------------------------------------------------------------------------*/
338 /*----------------------------------------------------------------------------*/
339 double sofi_pfits_get_mjdobs(const cpl_propertylist * plist)
340 {
341  return cpl_propertylist_get_double(plist, "MJD-OBS") ;
342 }
343 
344 /*----------------------------------------------------------------------------*/
350 /*----------------------------------------------------------------------------*/
351 const char * sofi_pfits_get_mode(const cpl_propertylist * plist)
352 {
353  return (const char *) cpl_propertylist_get_string(plist, "ESO INS MODE") ;
354 }
355 
356 /*----------------------------------------------------------------------------*/
362 /*----------------------------------------------------------------------------*/
363 int sofi_pfits_get_naxis2(const cpl_propertylist * plist)
364 {
365  return cpl_propertylist_get_int(plist, "NAXIS2") ;
366 }
367 
368 /*----------------------------------------------------------------------------*/
374 /*----------------------------------------------------------------------------*/
375 int sofi_pfits_get_ndit(const cpl_propertylist * plist)
376 {
377  return cpl_propertylist_get_int(plist, "ESO DET NDIT") ;
378 }
379 
380 /*----------------------------------------------------------------------------*/
386 /*----------------------------------------------------------------------------*/
387 int sofi_pfits_get_numbexp(const cpl_propertylist * plist)
388 {
389  return cpl_propertylist_get_int(plist, "ESO TPL NEXP") ;
390 }
391 
392 /*----------------------------------------------------------------------------*/
398 /*----------------------------------------------------------------------------*/
399 int sofi_pfits_get_obs_id(const cpl_propertylist * plist)
400 {
401  return cpl_propertylist_get_int(plist, "ESO OBS ID") ;
402 }
403 
404 /*----------------------------------------------------------------------------*/
410 /*----------------------------------------------------------------------------*/
411 const char * sofi_pfits_get_targ_name(const cpl_propertylist * plist)
412 {
413  return (const char *) cpl_propertylist_get_string(plist,
414  "ESO OBS TARG NAME") ;
415 }
416 
417 /*----------------------------------------------------------------------------*/
423 /*----------------------------------------------------------------------------*/
424 const char * sofi_pfits_get_opti1_id(const cpl_propertylist * plist)
425 {
426  return (const char *) cpl_propertylist_get_string(plist,
427  "ESO INS OPTI1 ID") ;
428 }
429 
430 /*----------------------------------------------------------------------------*/
436 /*----------------------------------------------------------------------------*/
437 const char * sofi_pfits_get_origfile(const cpl_propertylist * plist)
438 {
439  return (const char *) cpl_propertylist_get_string(plist, "ORIGFILE") ;
440 }
441 
442 /*----------------------------------------------------------------------------*/
448 /*----------------------------------------------------------------------------*/
449 double sofi_pfits_get_pixscale(const cpl_propertylist * plist)
450 {
451  return cpl_propertylist_get_double(plist, "ESO INS PIXSCALE") ;
452 }
453 
454 /*----------------------------------------------------------------------------*/
460 /*----------------------------------------------------------------------------*/
461 double sofi_pfits_get_ra(const cpl_propertylist * plist)
462 {
463  return cpl_propertylist_get_double(plist, "RA") ;
464 }
465 
466 /*----------------------------------------------------------------------------*/
472 /*----------------------------------------------------------------------------*/
473 const char * sofi_pfits_get_resolution(const cpl_propertylist * plist)
474 {
475  return (const char *) cpl_propertylist_get_string(plist,
476  "ESO INS OPTI2 NAME") ;
477 }
478 
479 /*----------------------------------------------------------------------------*/
485 /*----------------------------------------------------------------------------*/
486 int sofi_pfits_get_rom(const cpl_propertylist * plist)
487 {
488  return cpl_propertylist_get_int(plist, "ESO DET NCORRS") ;
489 }
490 
491 /*----------------------------------------------------------------------------*/
497 /*----------------------------------------------------------------------------*/
498 const char * sofi_pfits_get_romode_name(const cpl_propertylist * plist)
499 {
500  return (const char *) cpl_propertylist_get_string(plist,
501  "ESO DET MODE NAME");
502 }
503 
504 /*----------------------------------------------------------------------------*/
510 /*----------------------------------------------------------------------------*/
511 const char * sofi_pfits_get_rom_name(const cpl_propertylist * plist)
512 {
513  return (const char *) cpl_propertylist_get_string(plist,
514  "ESO DET NCORRS NAME");
515 }
516 
517 /*----------------------------------------------------------------------------*/
523 /*----------------------------------------------------------------------------*/
524 int sofi_pfits_get_rspeed(const cpl_propertylist * plist)
525 {
526  return cpl_propertylist_get_int(plist, "ESO DET RSPEED") ;
527 }
528 
529 /*----------------------------------------------------------------------------*/
535 /*----------------------------------------------------------------------------*/
536 const char * sofi_pfits_get_templateid(const cpl_propertylist * plist)
537 {
538  return (const char *) cpl_propertylist_get_string(plist, "ESO TPL ID") ;
539 }
540 
sofi_pfits_get_targ_name
const char * sofi_pfits_get_targ_name(const cpl_propertylist *plist)
find out the target name
Definition: sofi_pfits.c:411
sofi_pfits_get_opti1_id
const char * sofi_pfits_get_opti1_id(const cpl_propertylist *plist)
find out the OPTI1.ID key
Definition: sofi_pfits.c:424
sofi_pfits_get_rom_name
const char * sofi_pfits_get_rom_name(const cpl_propertylist *plist)
find out the read out mode name
Definition: sofi_pfits.c:511
sofi_pfits_get_arcfile
const char * sofi_pfits_get_arcfile(const cpl_propertylist *plist)
find out the arcfile
Definition: sofi_pfits.c:85
sofi_pfits_get_pixscale
double sofi_pfits_get_pixscale(const cpl_propertylist *plist)
find out the pixel scale
Definition: sofi_pfits.c:449
sofi_pfits_get_ndit
int sofi_pfits_get_ndit(const cpl_propertylist *plist)
find out the NDIT keyword
Definition: sofi_pfits.c:375
sofi_pfits_get_chip
const char * sofi_pfits_get_chip(const cpl_propertylist *plist)
find out the chip name
Definition: sofi_pfits.c:97
sofi_pfits_get_ra
double sofi_pfits_get_ra(const cpl_propertylist *plist)
find out the RA
Definition: sofi_pfits.c:461
sofi_pfits_get_dec
double sofi_pfits_get_dec(const cpl_propertylist *plist)
find out the DEC
Definition: sofi_pfits.c:170
sofi_pfits_get_date
const char * sofi_pfits_get_date(const cpl_propertylist *plist)
find out the date of the file creation
Definition: sofi_pfits.c:146
sofi_pfits_get_lamp1_name
const char * sofi_pfits_get_lamp1_name(const cpl_propertylist *plist)
find out the lamp1 name
Definition: sofi_pfits.c:289
sofi_pfits_get_rspeed
int sofi_pfits_get_rspeed(const cpl_propertylist *plist)
find out the read speed
Definition: sofi_pfits.c:524
sofi_pfits_get_dit
double sofi_pfits_get_dit(const cpl_propertylist *plist)
find out the DIT value
Definition: sofi_pfits.c:195
sofi_pfits_get_resolution
const char * sofi_pfits_get_resolution(const cpl_propertylist *plist)
find out the resolution
Definition: sofi_pfits.c:473
sofi_pfits_get_frame_type
const char * sofi_pfits_get_frame_type(const cpl_propertylist *plist)
find out the frame type
Definition: sofi_pfits.c:182
sofi_pfits_get_instrument
const char * sofi_pfits_get_instrument(const cpl_propertylist *plist)
find out the instrument
Definition: sofi_pfits.c:277
sofi_pfits_get_dpr_tech
const char * sofi_pfits_get_dpr_tech(const cpl_propertylist *plist)
find out the data technique
Definition: sofi_pfits.c:219
sofi_pfits_get_romode_name
const char * sofi_pfits_get_romode_name(const cpl_propertylist *plist)
find out the read out mode name
Definition: sofi_pfits.c:498
sofi_pfits_get_lamp2_status
int sofi_pfits_get_lamp2_status(const cpl_propertylist *plist)
find out the lamp2 status
Definition: sofi_pfits.c:327
sofi_pfits_get_airmass_start
double sofi_pfits_get_airmass_start(const cpl_propertylist *plist)
find out airmass start
Definition: sofi_pfits.c:61
sofi_pfits_get_dpr_catg
const char * sofi_pfits_get_dpr_catg(const cpl_propertylist *plist)
find out the data category
Definition: sofi_pfits.c:207
sofi_pfits_get_cumoffsety
double sofi_pfits_get_cumoffsety(const cpl_propertylist *plist)
find out the cumulative offset in Y
Definition: sofi_pfits.c:122
sofi_pfits_get_humidity_level
double sofi_pfits_get_humidity_level(const cpl_propertylist *plist)
find out the humidity level
Definition: sofi_pfits.c:265
sofi_pfits_get_current_exp_nb
int sofi_pfits_get_current_exp_nb(const cpl_propertylist *plist)
find out the current exposure number
Definition: sofi_pfits.c:134
sofi_pfits_get_rom
int sofi_pfits_get_rom(const cpl_propertylist *plist)
find out the read out mode
Definition: sofi_pfits.c:486
sofi_pfits_get_airmass_end
double sofi_pfits_get_airmass_end(const cpl_propertylist *plist)
find out airmass end
Definition: sofi_pfits.c:73
sofi_pfits_get_lamp1_status
int sofi_pfits_get_lamp1_status(const cpl_propertylist *plist)
find out the lamp1 status
Definition: sofi_pfits.c:302
sofi_pfits_get_mode
const char * sofi_pfits_get_mode(const cpl_propertylist *plist)
find out the instrument mode
Definition: sofi_pfits.c:351
sofi_pfits_get_lamp2_name
const char * sofi_pfits_get_lamp2_name(const cpl_propertylist *plist)
find out the lamp2 name
Definition: sofi_pfits.c:314
sofi_pfits_get_numbexp
int sofi_pfits_get_numbexp(const cpl_propertylist *plist)
find out the number of exposures
Definition: sofi_pfits.c:387
sofi_pfits_get_origfile
const char * sofi_pfits_get_origfile(const cpl_propertylist *plist)
find out the original file name
Definition: sofi_pfits.c:437
sofi_pfits_get_naxis2
int sofi_pfits_get_naxis2(const cpl_propertylist *plist)
find out the NAXIS2 keyword
Definition: sofi_pfits.c:363
sofi_pfits_get_templateid
const char * sofi_pfits_get_templateid(const cpl_propertylist *plist)
find out the template ID
Definition: sofi_pfits.c:536
sofi_pfits_get_cumoffsetx
double sofi_pfits_get_cumoffsetx(const cpl_propertylist *plist)
find out the cumulative offset in X
Definition: sofi_pfits.c:110
sofi_pfits_get_date_obs
const char * sofi_pfits_get_date_obs(const cpl_propertylist *plist)
find out the date of observation
Definition: sofi_pfits.c:158
sofi_pfits_get_dpr_type
const char * sofi_pfits_get_dpr_type(const cpl_propertylist *plist)
find out the data type
Definition: sofi_pfits.c:231
sofi_pfits_get_mjdobs
double sofi_pfits_get_mjdobs(const cpl_propertylist *plist)
find out the MJD-OBS
Definition: sofi_pfits.c:339
sofi_pfits_get_obs_id
int sofi_pfits_get_obs_id(const cpl_propertylist *plist)
find out the OBS ID
Definition: sofi_pfits.c:399
sofi_pfits_get_filter
const char * sofi_pfits_get_filter(const cpl_propertylist *plist)
find out which wave band is active in short wavelength
Definition: sofi_pfits.c:243