00001 /* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 00002 /* vim:set sw=2 sts=2 et cin: */ 00003 /* 00004 * This file is part of the MUSE Instrument Pipeline 00005 * Copyright (C) 2015 European Southern Observatory 00006 * 00007 * This program is free software; you can redistribute it and/or modify 00008 * it under the terms of the GNU General Public License as published by 00009 * the Free Software Foundation; either version 2 of the License, or 00010 * (at your option) any later version. 00011 * 00012 * This program is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 * GNU General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU General Public License 00018 * along with this program; if not, write to the Free Software 00019 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 00020 */ 00021 00022 #ifndef MUSE_IDP_H 00023 #define MUSE_IDP_H 00024 00025 /*----------------------------------------------------------------------------* 00026 * Includes * 00027 *----------------------------------------------------------------------------*/ 00028 #include <cpl.h> 00029 00030 #include <muse_processing.h> 00031 00032 /*----------------------------------------------------------------------------* 00033 * Data structures * 00034 *----------------------------------------------------------------------------*/ 00035 00036 // XXX: Should this just be implemented as a property list? 00037 typedef struct muse_idp_properties muse_idp_properties; 00038 00039 struct muse_idp_properties { 00040 unsigned int ncombine; 00041 double exptime; 00042 double texptime; 00043 double mjd_end; 00044 double fovcenter[2]; 00045 double wlenrange[2]; 00046 double wlerror; 00047 double specres; 00048 double skyres; 00049 double skyrerr; 00050 double pixnoise; 00051 double abmaglimit; 00052 cpl_array *obid; 00053 cpl_array *progid; 00054 cpl_propertylist *prov; 00055 cpl_array *asson; 00056 cpl_array *assoc; /* deprecated */ 00057 cpl_boolean fluxcal; 00058 const char *prodcatg; 00059 const char *procsoft; 00060 const char *obstech; 00061 const char *referenc; 00062 }; 00063 00064 /*----------------------------------------------------------------------------* 00065 * Function prototypes * 00066 *----------------------------------------------------------------------------*/ 00067 00068 muse_idp_properties *muse_idp_properties_new(void); 00069 void muse_idp_properties_delete(muse_idp_properties *aProperties); 00070 00071 muse_idp_properties *muse_idp_properties_collect(muse_processing *aProcessing, 00072 const muse_datacube *aCube, 00073 const char *aTag); 00074 cpl_error_code muse_idp_properties_update(cpl_propertylist *aHeader, 00075 const muse_idp_properties *aProperties); 00076 cpl_error_code muse_idp_properties_update_fov(muse_image *fov); 00077 00078 #endif /* MUSE_IDP_H */
1.6.1