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) 2005-2014 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_DATACUBE_H 00023 #define MUSE_DATACUBE_H 00024 00025 /*----------------------------------------------------------------------------* 00026 * Includes * 00027 *----------------------------------------------------------------------------*/ 00028 #include <cpl.h> 00029 00030 #include "muse_cplwrappers.h" 00031 #include "muse_image.h" 00032 #include "muse_imagelist.h" 00033 00037 /*----------------------------------------------------------------------------*/ 00046 /*----------------------------------------------------------------------------*/ 00047 typedef struct { 00056 cpl_propertylist *header; /* this has to be the first component! */ 00057 00063 muse_imagelist *recimages; /* this has to be the second component! */ 00064 00070 cpl_array *recnames; /* this has to be the third component! */ 00071 00075 cpl_imagelist *data; 00076 00080 cpl_imagelist *dq; 00081 00085 cpl_imagelist *stat; 00086 } muse_datacube; 00087 00088 /*----------------------------------------------------------------------------*/ 00095 /*----------------------------------------------------------------------------*/ 00096 typedef struct { 00103 cpl_propertylist *header; /* this has to be the first component! */ 00104 00110 muse_imagelist *recimages; /* this has to be the second component! */ 00111 00117 cpl_array *recnames; /* this has to be the third component! */ 00118 00122 cpl_table *dtable; 00123 00130 cpl_propertylist *hdata; 00131 00135 cpl_table *gtable; 00136 00142 cpl_propertylist *hgroup; 00143 } muse_euro3dcube; 00144 00147 /*----------------------------------------------------------------------------* 00148 * Function prototypes * 00149 *----------------------------------------------------------------------------*/ 00150 cpl_error_code muse_euro3dcube_save(muse_euro3dcube *, const char *); 00151 void muse_euro3dcube_delete(muse_euro3dcube *); 00152 cpl_error_code muse_datacube_convert_dq(muse_datacube *); 00153 muse_datacube *muse_datacube_load(const char *); 00154 cpl_error_code muse_datacube_concat(muse_datacube *, const muse_datacube *); 00155 cpl_error_code muse_datacube_save(muse_datacube *, const char *); 00156 cpl_error_code muse_datacube_save_recimages(const char *, muse_imagelist *, cpl_array *); 00157 void muse_datacube_delete(muse_datacube *); 00158 00159 muse_image *muse_euro3dcube_collapse(muse_euro3dcube *, cpl_table *); 00160 muse_image *muse_datacube_collapse(muse_datacube *, cpl_table *); 00161 00162 #endif /* MUSE_DATACUBE_H */
1.6.1