MUSE Pipeline Reference Manual  2.1.1
muse_idp.h
1 /* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim:set sw=2 sts=2 et cin: */
3 /*
4  * This file is part of the MUSE Instrument Pipeline
5  * Copyright (C) 2015 European Southern Observatory
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 2 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20  */
21 
22 #ifndef MUSE_IDP_H
23 #define MUSE_IDP_H
24 
25 /*----------------------------------------------------------------------------*
26  * Includes *
27  *----------------------------------------------------------------------------*/
28 #include <cpl.h>
29 
30 #include <muse_processing.h>
31 
32 /*----------------------------------------------------------------------------*
33  * Data structures *
34  *----------------------------------------------------------------------------*/
35 
36 // XXX: Should this just be implemented as a property list?
37 typedef struct muse_idp_properties muse_idp_properties;
38 
39 struct muse_idp_properties {
40  unsigned int ncombine;
41  double exptime;
42  double texptime;
43  double mjd_end;
44  double fovcenter[2];
45  double wlenrange[2];
46  double wlerror;
47  double specres;
48  double skyres;
49  double skyrerr;
50  double pixnoise;
51  double abmaglimit;
52  cpl_array *obid;
53  cpl_array *progid;
54  cpl_propertylist *prov;
55  cpl_array *asson;
56  cpl_array *assoc; /* deprecated */
57  cpl_boolean fluxcal;
58  const char *prodcatg;
59  const char *procsoft;
60  const char *obstech;
61  const char *referenc;
62 };
63 
64 /*----------------------------------------------------------------------------*
65  * Function prototypes *
66  *----------------------------------------------------------------------------*/
67 
68 muse_idp_properties *muse_idp_properties_new(void);
69 void muse_idp_properties_delete(muse_idp_properties *aProperties);
70 
71 muse_idp_properties *muse_idp_properties_collect(muse_processing *aProcessing,
72  const muse_datacube *aCube,
73  const char *aTag);
74 cpl_error_code muse_idp_properties_update(cpl_propertylist *aHeader,
75  const muse_idp_properties *aProperties);
76 cpl_error_code muse_idp_properties_update_fov(muse_image *fov);
77 
78 #endif /* MUSE_IDP_H */
Structure definition of a MUSE datacube.
Definition: muse_datacube.h:48
Structure definition of MUSE three extension FITS file.
Definition: muse_image.h:40