00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifdef HAVE_CONFIG_H
00029 #include <config.h>
00030 #endif
00031
00032 #include <fors_data.h>
00033 #include <fors_dfs.h>
00034 #include <fors_instrument.h>
00035 #include <fors_std_cat.h>
00036
00037 #include <test_simulate.h>
00038 #include <test.h>
00039
00040 #include <cpl.h>
00041 #include <math.h>
00042
00050 #undef cleanup
00051 #define cleanup \
00052 do { \
00053 cpl_frameset_delete(cat_frames); \
00054 cpl_frame_delete(raw_frame); \
00055 cpl_frame_delete(phot_table); \
00056 fors_std_star_list_delete(&cat, fors_std_star_delete); \
00057 fors_setting_delete(&setting); \
00058 cpl_propertylist_delete(raw_header); raw_header = NULL; \
00059 } while (0)
00060
00064 static void
00065 test_new(void)
00066 {
00067 cpl_frameset *cat_frames = NULL;
00068 cpl_frame *phot_table = NULL;
00069 const char *filename = "std_cat.fits";
00070 fors_std_star_list *cat = NULL;
00071 fors_setting *setting = NULL;
00072 cpl_propertylist *raw_header = NULL;
00073 double color_term, dcolor_term;
00074 double ext_coeff, dext_coeff;
00075 double expected_zeropoint, dexpected_zeropoint;
00076 char band;
00077
00078
00079 cpl_frame *raw_frame = create_standard("std_cat_raw.fits",
00080 STANDARD_IMG, CPL_FRAME_GROUP_RAW);
00081
00082 phot_table = create_phot_table("std_cat_phot_table.fits",
00083 PHOT_TABLE, CPL_FRAME_GROUP_CALIB);
00084
00085 cat_frames = cpl_frameset_new();
00086 cpl_frameset_insert(cat_frames,
00087 create_std_cat(filename,
00088 FLX_STD_IMG, CPL_FRAME_GROUP_CALIB));
00089
00090 setting = fors_setting_new(raw_frame);
00091
00092 fors_phot_table_load(phot_table, setting,
00093 &color_term, &dcolor_term,
00094 &ext_coeff, &dext_coeff,
00095 &expected_zeropoint, &dexpected_zeropoint);
00096
00097
00098 band = fors_instrument_filterband_get_by_setting(setting);
00099 cat = fors_std_cat_load( cat_frames,
00100 band,
00101 0,
00102 color_term,
00103 dcolor_term);
00104 raw_header = cpl_propertylist_load(cpl_frame_get_filename(raw_frame), 0);
00105 fors_std_star_list_apply_wcs(cat, raw_header);
00106
00107
00108
00109 fors_std_star_print_list(CPL_MSG_DEBUG, cat);
00110 fors_std_star_print_list(CPL_MSG_INFO, cat);
00111
00112 cleanup;
00113 return;
00114 }
00115
00116
00117 static void
00118 test_dist(void)
00119 {
00120 double ra = 34.5;
00121 double dec = -0.4;
00122 double mag = 15;
00123 double dmag = 0.51;
00124 double cmag = 15.2;
00125 double dcmag = 0.21;
00126 double color = 0.2;
00127 double dcolor = dcmag;
00128 double cov_catm_col = dcolor;
00129
00130 double shift_arcsecs;
00131
00132 for (shift_arcsecs = 0.1; shift_arcsecs <= 100; shift_arcsecs *= 2) {
00133
00134 fors_std_star *s = fors_std_star_new(ra, dec, mag, dmag,
00135 cmag, dcmag,
00136 color, dcolor,
00137 cov_catm_col,
00138 "some");
00139 fors_std_star *t = fors_std_star_new(ra + shift_arcsecs/3600,
00140 dec + shift_arcsecs/3600,
00141 mag, dmag,
00142 cmag, dcmag,
00143 color, dcolor,
00144 cov_catm_col,
00145 "star");
00146
00147
00148
00149
00150
00151 test_rel( fors_std_star_dist_arcsec(s, t), sqrt(2)*shift_arcsecs, 0.01 );
00152
00153 fors_std_star_delete(&s);
00154 fors_std_star_delete(&t);
00155 }
00156
00157 return;
00158 }
00159
00163 int main(void)
00164 {
00165 TEST_INIT;
00166
00167
00168 test_new();
00169
00170 test_new();
00171
00172
00173 test_dist();
00174
00175 TEST_END;
00176 }
00177