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_LSF_H 00023 #define MUSE_LSF_H 00024 00025 /*----------------------------------------------------------------------------* 00026 * Includes * 00027 *----------------------------------------------------------------------------*/ 00028 #include <cpl.h> 00029 00030 #include "muse_cplwrappers.h" 00031 #include "muse_pixtable.h" 00032 #include "muse_processing.h" 00033 #include "muse_wcs.h" 00034 00035 /*----------------------------------------------------------------------------* 00036 * Special variable types * 00037 *----------------------------------------------------------------------------*/ 00041 /*----------------------------------------------------------------------------*/ 00048 /*----------------------------------------------------------------------------*/ 00049 typedef struct { 00051 cpl_propertylist *header; /* this has to be the first component! */ 00053 cpl_imagelist *img; 00055 muse_wcs *wcs; 00056 } muse_lsf_cube; 00057 00058 /*----------------------------------------------------------------------------* 00059 * Function prototypes * 00060 *----------------------------------------------------------------------------*/ 00061 muse_pixtable *muse_lsf_create_arcpixtable(muse_imagelist *, cpl_table *, cpl_table *, cpl_table *, int, double); 00062 cpl_error_code muse_lsf_fit_slice(const muse_pixtable *, cpl_image *, muse_wcs *, double); 00063 00064 muse_lsf_cube *muse_lsf_cube_new(double, cpl_size, cpl_size, const cpl_propertylist *); 00065 void muse_lsf_cube_delete(muse_lsf_cube *); 00066 cpl_error_code muse_lsf_cube_save(muse_lsf_cube *, const char *); 00067 muse_lsf_cube *muse_lsf_cube_load(const char *, unsigned char); 00068 muse_lsf_cube **muse_lsf_cube_load_all(muse_processing *aProcessing); 00069 void muse_lsf_cube_delete_all(muse_lsf_cube **lsf); 00070 00071 cpl_error_code muse_lsf_apply(const cpl_image *, const muse_wcs *, cpl_array *, double); 00072 cpl_image *muse_lsf_average_cube_all(muse_lsf_cube **, muse_pixtable *); 00073 muse_wcs *muse_lsf_cube_get_wcs_all(muse_lsf_cube **); 00074 cpl_error_code muse_lsf_fold_rectangle(cpl_image *, const muse_wcs *, double); 00075 00078 #endif /* MUSE_LSF_H */
1.6.1