fors_photometry-test.c

00001 /* $Id: fors_photometry-test.c,v 1.9 2009/02/17 12:18:28 hlorch Exp $
00002  *
00003  * This file is part of the FORS Library
00004  * Copyright (C) 2002-2006 European Southern Observatory
00005  *
00006  * This program is free software; you can redistribute it and/or modify
00007  * it under the terms of the GNU General Public License as published by
00008  * the Free Software Foundation; either version 2 of the License, or
00009  * (at your option) any later version.
00010  *
00011  * This program is distributed in the hope that it will be useful,
00012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014  * GNU General Public License for more details.
00015  *
00016  * You should have received a copy of the GNU General Public License
00017  * along with this program; if not, write to the Free Software
00018  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
00019  */
00020 
00021 /*
00022  * $Author: hlorch $
00023  * $Date: 2009/02/17 12:18:28 $
00024  * $Revision: 1.9 $
00025  * $Name: fors-4_8_6 $
00026  */
00027 
00028 #ifdef HAVE_CONFIG_H
00029 #include <config.h>
00030 #endif
00031 
00032 #include <fors_photometry_impl.h>
00033 #include <fors_dfs.h>
00034 #include <fors_utils.h>
00035 #include <test_simulate.h>
00036 #include <test.h>
00037 
00044 #undef cleanup
00045 #define cleanup \
00046 do { \
00047     cpl_frameset_delete(frames); \
00048     cpl_parameterlist_delete(parameters); \
00049     cpl_propertylist_delete(header); \
00050 } while(0)
00051 
00054 static void
00055 test_photometry(void)
00056 {
00057     cpl_parameterlist *parameters = cpl_parameterlist_new();
00058     cpl_frameset *frames = cpl_frameset_new();
00059 
00060     const char *filename[] = {"photometry_aligned0.fits",
00061                   "photometry_aligned1.fits",
00062                   "photometry_aligned2.fits",
00063                   "photometry_aligned3.fits"};
00064     cpl_propertylist *header = cpl_propertylist_new();
00065     double exptime = 10.0;
00066     cpl_frameset_insert(frames, create_sky_flat("photometry_master_flat.fits",
00067                         MASTER_SKY_FLAT_IMG,
00068                         CPL_FRAME_GROUP_RAW,
00069                         10.0));
00070 
00071     cpl_frameset_insert(frames, create_phot_table("photometry_phot_table.fits",
00072                                                   PHOT_TABLE,
00073                                                   CPL_FRAME_GROUP_CALIB));
00074 
00075     create_standard_keys(header, exptime);
00076     /* required by fors_photometry parameter --fite=pernight */
00077     cpl_propertylist_update_string(header, "ORIGIN", "ESO");
00078     cpl_propertylist_update_double(header, "MJD-OBS", 0.5);
00079     
00080     {
00081     int i;
00082     for (i = 0; i < (int)(sizeof(filename)/sizeof(*filename)); i++)
00083     {
00084         double  airmass;
00085         airmass = 1.1 + 0.1*i;
00086         
00087         /* create an airmass range for fitting the atm. ext. */
00088         cpl_propertylist_update_double(header, "AIRMASS", airmass);
00089 
00090         /* Probably better would be to use fors_create_sources_table()
00091            to create the ALIGNED_PHOT table */
00092         
00093         cpl_table *aligned = cpl_table_new(1);
00094         
00095         cpl_frame *f = cpl_frame_new();
00096         cpl_frame_set_tag(f, ALIGNED_PHOT);
00097         cpl_frame_set_filename(f, filename[i]);
00098         cpl_frameset_insert(frames, f);
00099         
00100         cpl_table_new_column(aligned, "INSTR_MAG", CPL_TYPE_DOUBLE);
00101         cpl_table_new_column(aligned, "DINSTR_MAG", CPL_TYPE_DOUBLE);
00102         cpl_table_new_column(aligned, "MAG", CPL_TYPE_DOUBLE);
00103         cpl_table_new_column(aligned, "DMAG", CPL_TYPE_DOUBLE);
00104         cpl_table_new_column(aligned, "CAT_MAG", CPL_TYPE_DOUBLE);
00105         cpl_table_new_column(aligned, "DCAT_MAG", CPL_TYPE_DOUBLE);
00106         cpl_table_new_column(aligned, "COLOR", CPL_TYPE_DOUBLE);
00107         cpl_table_new_column(aligned, "RA", CPL_TYPE_DOUBLE);
00108         cpl_table_new_column(aligned, "DEC", CPL_TYPE_DOUBLE);
00109         cpl_table_new_column(aligned, "X", CPL_TYPE_DOUBLE);
00110         cpl_table_new_column(aligned, "Y", CPL_TYPE_DOUBLE);
00111         cpl_table_new_column(aligned, "A", CPL_TYPE_DOUBLE);
00112         cpl_table_new_column(aligned, "B", CPL_TYPE_DOUBLE);
00113         cpl_table_new_column(aligned, "FWHM", CPL_TYPE_DOUBLE);
00114         cpl_table_new_column(aligned, "THETA", CPL_TYPE_DOUBLE);
00115         cpl_table_new_column(aligned, "CLASS_STAR", CPL_TYPE_DOUBLE);
00116         cpl_table_new_column(aligned, "OBJECT", CPL_TYPE_STRING);
00117         cpl_table_new_column(aligned, "USE_CAT", CPL_TYPE_INT);
00118         
00119         cpl_table_set_double(aligned, "INSTR_MAG", 0, -13.8 + (airmass-1)*0.1);
00120         cpl_table_set_double(aligned, "DINSTR_MAG", 0, 0.1);
00121         cpl_table_set_double(aligned, "MAG", 0, 14.4);
00122         cpl_table_set_double(aligned, "DMAG", 0, 0.004);
00123         cpl_table_set_double(aligned, "CAT_MAG", 0, 14.2);
00124         cpl_table_set_double(aligned, "DCAT_MAG", 0, 0.002);
00125         cpl_table_set_double(aligned, "COLOR", 0, 0.4);
00126         
00127         cpl_table_set_double(aligned, "RA", 0, 100);
00128         cpl_table_set_double(aligned, "DEC", 0, 1);
00129         
00130         cpl_table_set_double(aligned, "X", 0, 400);
00131         cpl_table_set_double(aligned, "Y", 0, 500);
00132         cpl_table_set_double(aligned, "A", 0, 2);
00133         cpl_table_set_double(aligned, "B", 0, 1);
00134         cpl_table_set_double(aligned, "FWHM", 0, 1.4);
00135         cpl_table_set_double(aligned, "THETA", 0, 0.1);
00136         cpl_table_set_double(aligned, "CLASS_STAR", 0, 0.1);
00137         
00138         cpl_table_set_string(aligned, "OBJECT", 0, "MOBJEKT");
00139         cpl_table_set_int(aligned, "USE_CAT", 0, 1);        
00140         
00141         cpl_table_save(aligned, header, NULL, filename[i], CPL_IO_DEFAULT);
00142 
00143         cpl_table_delete(aligned); aligned = NULL;
00144     }
00145     }
00146 
00147     assure( !cpl_error_get_code(), return, NULL );
00148 
00149     fors_photometry_define_parameters(parameters);
00150     cpl_parameter_set_int(cpl_parameterlist_find(parameters,
00151                          "fors.fors_photometry.degreef1"),
00152               0);
00153     
00154     fors_photometry(frames, parameters);
00155 
00156     cleanup;
00157     return;
00158 }
00159 
00160 
00164 int main(void)
00165 {
00166     TEST_INIT;
00167     //cpl_msg_set_level(CPL_MSG_DEBUG);
00168     test_photometry();
00169 
00170     TEST_END;
00171 }
00172 

Generated on Fri Mar 4 09:46:00 2011 for FORS Pipeline Reference Manual by  doxygen 1.4.7