00001 #include <fors_data.h>
00002 #include <fors_pfits.h>
00003 #include <fors_dfs.h>
00004
00005 #include <cpl.h>
00006
00007 #include <stdio.h>
00008 #include <string.h>
00009 #include <errno.h>
00010
00011 #define HARDCODED 0
00012
00013 #define DIE \
00014 do { \
00015 fprintf(stderr, "Error at %s:%d\n", __func__, __LINE__); \
00016 if (errno) perror(NULL); \
00017 cpl_end(); \
00018 exit(EXIT_FAILURE); \
00019 } while (0)
00020
00021 #define CHECK \
00022 do { \
00023 if (cpl_error_get_code()) { \
00024 cpl_msg_error(cpl_func, "%s %s", cpl_error_get_where(), cpl_error_get_message()); \
00025 DIE; \
00026 } \
00027 } while (0)
00028
00029 int main(int argc, char *argv[])
00030 {
00031 cpl_init(CPL_INIT_DEFAULT);
00032
00033 errno = 0;
00034
00035 if (argc != 1) {
00036 fprintf(stderr,
00037 "Usage:\n %s\n", argv[0]);
00038 DIE;
00039 }
00040
00041
00042
00043
00044
00045
00046
00047 double exti_old_u = 0.425;
00048 double exti_old_b = 0.245;
00049 double exti_old_v = 0.125;
00050 double exti_old_r = 0.081;
00051 double exti_old_i = 0.038;
00052
00053 double colo_old_u = 0.067;
00054 double colo_old_b = -0.078;
00055 double colo_old_v = 0.035;
00056 double colo_old_r = 0.042;
00057 double colo_old_i = -0.038;
00058
00059 double exti_old_u_high = 0.000;
00060 double exti_old_b_high = 0.000;
00061 double exti_old_v_high = 0.000;
00062 double exti_old_g_high = 0.000;
00063
00064 double colo_old_u_high = 0.000;
00065 double colo_old_b_high = 0.000;
00066 double colo_old_v_high = 0.000;
00067 double colo_old_g_high = 0.000;
00068
00069 double zero_old_u = 99.99;
00070 double zero_old_b = 99.99;
00071 double zero_old_v = 99.99;
00072 double zero_old_r = 99.99;
00073 double zero_old_i = 99.99;
00074 double zero_old_g = 99.99;
00075
00076 struct {
00077 const char *instrument;
00078 struct {
00079 const char *base_filename;
00080 const char *chip_id;
00081 struct {
00082 const char *filtername;
00083 enum filter filter;
00084 double exti, dexti;
00085 double colo, dcolo;
00086 double zero, dzero;
00087 } data[9];
00088 } chips[2];
00089 }
00090 dat[] = {
00091
00092 {"FORS1",
00093 {
00094 {"fors1_TK", "TK2048EB4-1",
00095 {{"U_BESS", FILTER_U, .exti = exti_old_u , .dexti = 0, .colo = colo_old_u , .dcolo = 0, .zero = zero_old_u, .dzero = 0},
00096 {"u_HIGH", FILTER_U, .exti = exti_old_u_high, .dexti = 0, .colo = colo_old_u_high, .dcolo = 0, .zero = zero_old_u, .dzero = 0},
00097 {"B_BESS", FILTER_B, .exti = exti_old_b , .dexti = 0, .colo = colo_old_b , .dcolo = 0, .zero = zero_old_b, .dzero = 0},
00098 {"b_HIGH", FILTER_B, .exti = exti_old_b_high, .dexti = 0, .colo = colo_old_b_high, .dcolo = 0, .zero = zero_old_b, .dzero = 0},
00099 {"g_HIGH", FILTER_G, .exti = exti_old_g_high, .dexti = 0, .colo = colo_old_g_high, .dcolo = 0, .zero = zero_old_g, .dzero = 0},
00100 {"V_BESS", FILTER_V, .exti = exti_old_v , .dexti = 0, .colo = colo_old_v , .dcolo = 0, .zero = zero_old_v, .dzero = 0},
00101 {"v_HIGH", FILTER_V, .exti = exti_old_v_high, .dexti = 0, .colo = colo_old_v_high, .dcolo = 0, .zero = zero_old_v, .dzero = 0},
00102 {"R_BESS", FILTER_R, .exti = exti_old_r , .dexti = 0, .colo = colo_old_r , .dcolo = 0, .zero = zero_old_r, .dzero = 0},
00103 {"I_BESS", FILTER_I, .exti = exti_old_i , .dexti = 0, .colo = colo_old_i , .dcolo = 0, .zero = zero_old_i, .dzero = 0}}
00104 },
00105 {NULL, NULL,
00106 {{"U_BESS", FILTER_U, .exti = exti_old_u , .dexti = 0, .colo = colo_old_u , .dcolo = 0, .zero = zero_old_u, .dzero = 0},
00107 {"u_HIGH", FILTER_U, .exti = exti_old_u_high, .dexti = 0, .colo = colo_old_u_high, .dcolo = 0, .zero = zero_old_u, .dzero = 0},
00108 {"B_BESS", FILTER_B, .exti = exti_old_b , .dexti = 0, .colo = colo_old_b , .dcolo = 0, .zero = zero_old_b, .dzero = 0},
00109 {"b_HIGH", FILTER_B, .exti = exti_old_b_high, .dexti = 0, .colo = colo_old_b_high, .dcolo = 0, .zero = zero_old_b, .dzero = 0},
00110 {"g_HIGH", FILTER_G, .exti = exti_old_g_high, .dexti = 0, .colo = colo_old_g_high, .dcolo = 0, .zero = zero_old_g, .dzero = 0},
00111 {"V_BESS", FILTER_V, .exti = exti_old_v , .dexti = 0, .colo = colo_old_v , .dcolo = 0, .zero = zero_old_v, .dzero = 0},
00112 {"v_HIGH", FILTER_V, .exti = exti_old_v_high, .dexti = 0, .colo = colo_old_v_high, .dcolo = 0, .zero = zero_old_v, .dzero = 0},
00113 {"R_BESS", FILTER_R, .exti = exti_old_r , .dexti = 0, .colo = colo_old_r , .dcolo = 0, .zero = zero_old_r, .dzero = 0},
00114 {"I_BESS", FILTER_I, .exti = exti_old_i , .dexti = 0, .colo = colo_old_i , .dcolo = 0, .zero = zero_old_i, .dzero = 0}}
00115 }
00116 }
00117 },
00118
00119
00120 #if HARDCODED
00121
00122
00123 {"FORS1",
00124 {
00125 {"fors1_Norma", "Norma III",
00126 {{"U_BESS", FILTER_U, .exti = 0.456, .dexti = 0, .colo = 0.091, .dcolo = 0, .zero = 26.080, .dzero = 0.031},
00127 {"u_HIGH", FILTER_U, .exti = 0.440, .dexti = 0, .colo = 0.106, .dcolo = 0, .zero = 26.572, .dzero = 0.049},
00128 {"B_BESS", FILTER_B, .exti = 0.255, .dexti = 0, .colo = -0.107, .dcolo = 0, .zero = 28.163, .dzero = 0.023},
00129 {"b_HIGH", FILTER_B, .exti = 0.230, .dexti = 0, .colo = 0.069, .dcolo = 0, .zero = 28.539, .dzero = 0.031},
00130 {"g_HIGH", FILTER_G, .exti = 0.182, .dexti = 0, .colo = 0.031, .dcolo = 0, .zero = 28.867, .dzero = 0.032},
00131 {"V_BESS", FILTER_V, .exti = 0.132, .dexti = 0, .colo = 0.020, .dcolo = 0, .zero = 28.227, .dzero = 0.023},
00132 {"v_HIGH", FILTER_V, .exti = 0.115, .dexti = 0, .colo = 0.049, .dcolo = 0, .zero = 28.410, .dzero = 0.029},
00133 {"R_BESS", FILTER_R, .exti = 0.090, .dexti = 0, .colo = 0.000, .dcolo = 0, .zero = 28.024, .dzero = 0.025},
00134 {"I_BESS", FILTER_I, .exti = 0.051, .dexti = 0, .colo = -0.060, .dcolo = 0, .zero = 27.023, .dzero = 0.034}}
00135 },
00136 {"fors1_Marlene", "Marlene ",
00137 {{"U_BESS", FILTER_U, .exti = 0.456, .dexti = 0, .colo = 0.091, .dcolo = 0, .zero = 26.080, .dzero = 0.031},
00138 {"u_HIGH", FILTER_U, .exti = 0.440, .dexti = 0, .colo = 0.106, .dcolo = 0, .zero = 26.572, .dzero = 0.049},
00139 {"B_BESS", FILTER_B, .exti = 0.255, .dexti = 0, .colo = -0.107, .dcolo = 0, .zero = 28.163, .dzero = 0.023},
00140 {"b_HIGH", FILTER_B, .exti = 0.230, .dexti = 0, .colo = 0.069, .dcolo = 0, .zero = 28.539, .dzero = 0.031},
00141 {"g_HIGH", FILTER_G, .exti = 0.182, .dexti = 0, .colo = 0.031, .dcolo = 0, .zero = 28.867, .dzero = 0.032},
00142 {"V_BESS", FILTER_V, .exti = 0.132, .dexti = 0, .colo = 0.020, .dcolo = 0, .zero = 28.227, .dzero = 0.023},
00143 {"v_HIGH", FILTER_V, .exti = 0.115, .dexti = 0, .colo = 0.049, .dcolo = 0, .zero = 28.410, .dzero = 0.029},
00144 {"R_BESS", FILTER_R, .exti = 0.090, .dexti = 0, .colo = 0.000, .dcolo = 0, .zero = 28.024, .dzero = 0.025},
00145 {"I_BESS", FILTER_I, .exti = 0.051, .dexti = 0, .colo = -0.060, .dcolo = 0, .zero = 27.023, .dzero = 0.034}}
00146 },
00147 }
00148 },
00149
00150 {"FORS2",
00151 {
00152 {"fors2_1453", "CCID20-14-5-3",
00153 {{"U_SPECIAL", FILTER_U, .exti = 0.443, .dexti = 0, .colo = 0.076, .dcolo = 0, .zero = 24.365, .dzero = 0.045},
00154 {"B_BESS" , FILTER_B, .exti = 0.217, .dexti = 0, .colo = -0.033, .dcolo = 0, .zero = 27.740, .dzero = 0.032},
00155 {"V_BESS" , FILTER_V, .exti = 0.127, .dexti = 0, .colo = 0.022, .dcolo = 0, .zero = 28.186, .dzero = 0.025},
00156 {"R_SPECIAL", FILTER_R, .exti = 0.098, .dexti = 0, .colo = -0.009, .dcolo = 0, .zero = 28.404, .dzero = 0.037},
00157 {"I_BESS" , FILTER_I, .exti = 0.060, .dexti = 0, .colo = -0.017, .dcolo = 0, .zero = 27.773, .dzero = 0.034},
00158 {NULL , FILTER_I, 0, 0, 0, 0, 0, 0},
00159 {NULL , FILTER_I, 0, 0, 0, 0, 0, 0},
00160 {NULL , FILTER_I, 0, 0, 0, 0, 0, 0},
00161 {NULL , FILTER_I, 0, 0, 0, 0, 0, 0}}
00162 },
00163
00164 {"fors2_1456", "CCID20-14-5-6",
00165 {{"U_SPECIAL", FILTER_U, .exti = 0.443, .dexti = 0, .colo = 0.076, .dcolo = 0, .zero = 24.365, .dzero = 0.045},
00166 {"B_BESS" , FILTER_B, .exti = 0.217, .dexti = 0, .colo = -0.033, .dcolo = 0, .zero = 27.740, .dzero = 0.032},
00167 {"V_BESS" , FILTER_V, .exti = 0.127, .dexti = 0, .colo = 0.022, .dcolo = 0, .zero = 28.186, .dzero = 0.025},
00168 {"R_SPECIAL", FILTER_R, .exti = 0.098, .dexti = 0, .colo = -0.009, .dcolo = 0, .zero = 28.404, .dzero = 0.037},
00169 {"I_BESS" , FILTER_I, .exti = 0.060, .dexti = 0, .colo = -0.017, .dcolo = 0, .zero = 27.773, .dzero = 0.034},
00170 {NULL , FILTER_I, 0, 0, 0, 0, 0, 0},
00171 {NULL , FILTER_I, 0, 0, 0, 0, 0, 0},
00172 {NULL , FILTER_I, 0, 0, 0, 0, 0, 0},
00173 {NULL , FILTER_I, 0, 0, 0, 0, 0, 0}}
00174 }
00175 }
00176 }
00177
00178 #else
00179
00180
00181 {"FORS1",
00182 {
00183 {"fors1_Norma", "Norma III",
00184 {{"U_BESS", FILTER_U, .exti = 0.447, .dexti = 0.018, .colo = 0.043, .dcolo = 0.008, .zero = 26.080, .dzero = 0.031},
00185 {"u_HIGH", FILTER_U, .exti = 0.437, .dexti = 0.033, .colo = 0.066, .dcolo = 0.012, .zero = 26.572, .dzero = 0.049},
00186 {"B_BESS", FILTER_B, .exti = 0.241, .dexti = 0.013, .colo = -0.128, .dcolo = 0.008, .zero = 28.163, .dzero = 0.023},
00187 {"b_HIGH", FILTER_B, .exti = 0.222, .dexti = 0.020, .colo = 0.048, .dcolo = 0.009, .zero = 28.539, .dzero = 0.031},
00188 {"g_HIGH", FILTER_G, .exti = 0.209, .dexti = 0.022, .colo = -0.096, .dcolo = 0.008, .zero = 28.867, .dzero = 0.032},
00189 {"V_BESS", FILTER_V, .exti = 0.112, .dexti = 0.012, .colo = -0.015, .dcolo = 0.007, .zero = 28.227, .dzero = 0.023},
00190 {"v_HIGH", FILTER_V, .exti = 0.139, .dexti = 0.018, .colo = 0.019, .dcolo = 0.008, .zero = 28.410, .dzero = 0.029},
00191 {"R_BESS", FILTER_R, .exti = 0.087, .dexti = 0.014, .colo = -0.097, .dcolo = 0.015, .zero = 28.024, .dzero = 0.025},
00192 {"I_BESS", FILTER_I, .exti = 0.027, .dexti = 0.021, .colo = -0.101, .dcolo = 0.011, .zero = 27.023, .dzero = 0.034}}
00193 },
00194 {"fors1_Marlene", "Marlene ",
00195 {{"U_BESS", FILTER_U, .exti = 0.470, .dexti = 0.024, .colo = 0.039, .dcolo = 0.013, .zero = 26.069, .dzero = 0.041},
00196 {"u_HIGH", FILTER_U, .exti = 0.445, .dexti = 0.051, .colo = 0.063, .dcolo = 0.018, .zero = 26.548, .dzero = 0.070},
00197 {"B_BESS", FILTER_B, .exti = 0.316, .dexti = 0.019, .colo = -0.124, .dcolo = 0.012, .zero = 28.221, .dzero = 0.032},
00198 {"b_HIGH", FILTER_B, .exti = 0.282, .dexti = 0.036, .colo = 0.059, .dcolo = 0.016, .zero = 28.563, .dzero = 0.052},
00199 {"g_HIGH", FILTER_G, .exti = 0.287, .dexti = 0.063, .colo = -0.106, .dcolo = 0.019, .zero = 28.938, .dzero = 0.082},
00200 {"V_BESS", FILTER_V, .exti = 0.158, .dexti = 0.018, .colo = -0.011, .dcolo = 0.012, .zero = 28.247, .dzero = 0.033},
00201 {"v_HIGH", FILTER_V, .exti = 0.155, .dexti = 0.030, .colo = 0.019, .dcolo = 0.014, .zero = 28.388, .dzero = 0.046},
00202 {"R_BESS", FILTER_R, .exti = 0.111, .dexti = 0.018, .colo = -0.047, .dcolo = 0.022, .zero = 28.009, .dzero = 0.033},
00203 {"I_BESS", FILTER_I, .exti = 0.037, .dexti = 0.019, .colo = -0.100, .dcolo = 0.012, .zero = 27.038, .dzero = 0.035}}
00204 },
00205 }
00206 },
00207
00208 {"FORS2",
00209 {
00210 {"fors2_1453", "CCID20-14-5-3",
00211 {{"U_SPECIAL", FILTER_U, .exti = 0.531, .dexti = 0.025, .colo = 0.069, .dcolo = 0.009, .zero = 24.365, .dzero = 0.045},
00212 {"B_BESS" , FILTER_B, .exti = 0.236, .dexti = 0.015, .colo = -0.026, .dcolo = 0.009, .zero = 27.740, .dzero = 0.032},
00213 {"V_BESS" , FILTER_V, .exti = 0.117, .dexti = 0.012, .colo = -0.002, .dcolo = 0.006, .zero = 28.186, .dzero = 0.025},
00214 {"R_SPECIAL", FILTER_R, .exti = 0.067, .dexti = 0.020, .colo = -0.039, .dcolo = 0.016, .zero = 28.404, .dzero = 0.037},
00215 {"I_BESS" , FILTER_I, .exti = 0.049, .dexti = 0.016, .colo = -0.044, .dcolo = 0.007, .zero = 27.773, .dzero = 0.034},
00216 {NULL , FILTER_I, 0, 0, 0, 0, 0, 0},
00217 {NULL , FILTER_I, 0, 0, 0, 0, 0, 0},
00218 {NULL , FILTER_I, 0, 0, 0, 0, 0, 0},
00219 {NULL , FILTER_I, 0, 0, 0, 0, 0, 0}}
00220 },
00221
00222 {"fors2_1456", "CCID20-14-5-6",
00223 {{"U_SPECIAL", FILTER_U, .exti = 0.526, .dexti = 0.042, .colo = 0.067, .dcolo = 0.014, .zero = 24.476, .dzero = 0.066},
00224 {"B_BESS" , FILTER_B, .exti = 0.272, .dexti = 0.023, .colo = -0.062, .dcolo = 0.011, .zero = 27.837, .dzero = 0.040},
00225 {"V_BESS" , FILTER_V, .exti = 0.123, .dexti = 0.014, .colo = -0.008, .dcolo = 0.006, .zero = 28.207, .dzero = 0.028},
00226 {"R_SPECIAL", FILTER_R, .exti = 0.065, .dexti = 0.022, .colo = -0.036, .dcolo = 0.013, .zero = 28.400, .dzero = 0.037},
00227 {"I_BESS" , FILTER_I, .exti = 0.023, .dexti = 0.013, .colo = -0.080, .dcolo = 0.008, .zero = 27.777, .dzero = 0.039},
00228 {NULL , FILTER_I, 0, 0, 0, 0, 0, 0},
00229 {NULL , FILTER_I, 0, 0, 0, 0, 0, 0},
00230 {NULL , FILTER_I, 0, 0, 0, 0, 0, 0},
00231 {NULL , FILTER_I, 0, 0, 0, 0, 0, 0}}
00232 }
00233 }
00234 }
00235 #endif
00236 };
00237
00238 CHECK;
00239
00240 #if 1
00241
00242
00243 unsigned i;
00244 for(i = 0; i < sizeof(dat) / sizeof(*dat); i++) {
00245
00246
00247 unsigned chips;
00248 for(chips = 0;
00249 chips < sizeof(dat[i].chips) / sizeof(*dat[i].chips);
00250 chips++) {
00251
00252 if (dat[i].chips[chips].chip_id == NULL) break;
00253
00254 cpl_table *t = cpl_table_new(9999);
00255 int size = 0;
00256
00257 cpl_propertylist *header = cpl_propertylist_new();
00258
00259 cpl_propertylist_update_string(header, FORS_PFITS_CHIP_ID, dat[i].chips[chips].chip_id);
00260 cpl_propertylist_update_string(header, "ESO PRO CATG", PHOT_TABLE);
00261 cpl_propertylist_update_string(header, FORS_PFITS_INSTRUME, dat[i].instrument);
00262
00263
00264
00265
00266 cpl_table_new_column(t, FORS_DATA_PHOT_FILTER , CPL_TYPE_STRING);
00267 cpl_table_new_column(t, FORS_DATA_PHOT_EXTCOEFF , CPL_TYPE_DOUBLE);
00268 cpl_table_new_column(t, FORS_DATA_PHOT_DEXTCOEFF , CPL_TYPE_DOUBLE);
00269 cpl_table_new_column(t, FORS_DATA_PHOT_COLORTERM, CPL_TYPE_DOUBLE);
00270 cpl_table_new_column(t, FORS_DATA_PHOT_DCOLORTERM, CPL_TYPE_DOUBLE);
00271 cpl_table_new_column(t, FORS_DATA_PHOT_ZEROPOINT, CPL_TYPE_DOUBLE);
00272 cpl_table_new_column(t, FORS_DATA_PHOT_DZEROPOINT, CPL_TYPE_DOUBLE);
00273
00274
00275
00276 unsigned j;
00277 for(j = 0;
00278 j < sizeof(dat[i].chips[chips].data) / sizeof(*dat[i].chips[chips].data);
00279 j++)
00280 {
00281 if (dat[i].chips[chips].data[j].filtername == NULL) break;
00282
00283
00284
00285 cpl_table_set_string(t, FORS_DATA_PHOT_FILTER, size, dat[i].chips[chips].data[j].filtername);
00286 cpl_table_set_double(t, FORS_DATA_PHOT_EXTCOEFF , size,
00287 dat[i].chips[chips].data[j].exti);
00288 cpl_table_set_double(t, FORS_DATA_PHOT_COLORTERM, size,
00289 dat[i].chips[chips].data[j].colo);
00290 cpl_table_set_double(t, FORS_DATA_PHOT_ZEROPOINT, size,
00291 dat[i].chips[chips].data[j].zero);
00292 cpl_table_set_double(t, FORS_DATA_PHOT_DEXTCOEFF , size,
00293 dat[i].chips[chips].data[j].dexti);
00294 cpl_table_set_double(t, FORS_DATA_PHOT_DCOLORTERM, size,
00295 dat[i].chips[chips].data[j].dcolo);
00296 cpl_table_set_double(t, FORS_DATA_PHOT_DZEROPOINT, size,
00297 dat[i].chips[chips].data[j].dzero);
00298
00299 size++;
00300 }
00301
00302 cpl_table_set_size(t, size);
00303
00304
00305 #if HARDCODED
00306 const char *full_filename = cpl_sprintf("%s_phot_old.fits",
00307 dat[i].chips[chips].base_filename);
00308 #else
00309 const char *full_filename = cpl_sprintf("%s_phot.fits",
00310 dat[i].chips[chips].base_filename);
00311 #endif
00312
00313 cpl_table_save(t, header, NULL, full_filename, CPL_IO_DEFAULT);
00314
00315 CHECK;
00316 fprintf(stdout, "Created %s\n", full_filename);
00317
00318 cpl_table_delete(t); t = NULL;
00319 cpl_propertylist_delete(header); header = NULL;
00320 cpl_free((void *)full_filename);
00321 }
00322 }
00323
00324 #else
00325
00326
00327 cpl_table *t = cpl_table_new(9999);
00328 int size = 0;
00329
00330 cpl_propertylist *header = cpl_propertylist_new();
00331
00332 cpl_table_new_column(t, "Instrument" , CPL_TYPE_STRING);
00333 cpl_table_new_column(t, FORS_DATA_PHOT_FILTER , CPL_TYPE_STRING);
00334 cpl_table_new_column(t, "Chip" , CPL_TYPE_STRING);
00335 cpl_table_new_column(t, FORS_DATA_PHOT_EXTCOEFF , CPL_TYPE_DOUBLE);
00336 cpl_table_new_column(t, FORS_DATA_PHOT_COLORTERM, CPL_TYPE_DOUBLE);
00337 cpl_table_new_column(t, FORS_DATA_PHOT_ZEROPOINT, CPL_TYPE_DOUBLE);
00338
00339 unsigned i;
00340 for(i = 0; i < sizeof(dat) / sizeof(*dat); i++) {
00341
00342 unsigned j;
00343 for(j = 0;
00344 j < sizeof(dat[i].chips[chips].data) / sizeof(*dat[i].chips[chips].data);
00345 j++) {
00346
00347 if (dat[i].chips[chips].data[j].filtername == NULL) break;
00348
00349
00350 unsigned chips;
00351 for(chips = 0;
00352 chips < sizeof(dat[i].chip_id) / sizeof(*dat[i].chip_id);
00353 chips++) {
00354
00355 if (dat[i].chip_id[chips] == NULL) break;
00356
00357 cpl_table_set_string(t, "Instrument", size, dat[i].instrument);
00358 cpl_table_set_string(t, "Chip", size, dat[i].chip_id[chips]);
00359 cpl_table_set_string(t, FORS_DATA_PHOT_FILTER, size, dat[i].chips[chips].data[j].filtername);
00360 cpl_table_set_double(t, FORS_DATA_PHOT_EXTCOEFF , size,
00361 dat[i].chips[chips].data[j].exti);
00362 cpl_table_set_double(t, FORS_DATA_PHOT_COLORTERM, size,
00363 dat[i].chips[chips].data[j].colo);
00364 cpl_table_set_double(t, FORS_DATA_PHOT_ZEROPOINT, size,
00365 dat[i].chips[chips].data[j].zero);
00366
00367 size++;
00368
00369 }
00370 }
00371 }
00372
00373 cpl_table_set_size(t, size);
00374
00375 cpl_table_save(t, NULL, NULL, filename, CPL_IO_DEFAULT);
00376
00377 CHECK;
00378 fprintf(stdout, "Created %s\n", filename);
00379
00380
00381 #endif
00382
00383
00384
00385
00386
00387
00388
00389 #if 0
00390
00391
00392
00393
00394
00395 t = cpl_table_new(FORS_NUM_FILTER);
00396
00397
00398 double *exti[FORS_NUM_FILTER] = {&exti_u,
00399 &exti_b,
00400 NULL,
00401 &exti_v,
00402 &exti_r,
00403 &exti_i,
00404 NULL};
00405
00406 double *colo[FORS_NUM_FILTER] = {&colo_u,
00407 &colo_b,
00408 NULL,
00409 &colo_v,
00410 &colo_r,
00411 &colo_i,
00412 NULL};
00413
00414 double *zero[FORS_NUM_FILTER] = {&zero_u,
00415 &zero_b,
00416 NULL,
00417 &zero_v,
00418 &zero_r,
00419 &zero_i,
00420 NULL};
00421
00422 cpl_table_new_column(t, FORS_DATA_PHOT_FILTER , CPL_TYPE_STRING);
00423 cpl_table_new_column(t, FORS_DATA_PHOT_EXTCOEFF , CPL_TYPE_DOUBLE);
00424 cpl_table_new_column(t, FORS_DATA_PHOT_COLORTERM, CPL_TYPE_DOUBLE);
00425 cpl_table_new_column(t, FORS_DATA_PHOT_ZEROPOINT, CPL_TYPE_DOUBLE);
00426
00427 int row = 0;
00428 {
00429 int i;
00430 for(i = 0; i < cpl_table_get_nrow(t); i++) {
00431 if (exti[i] != NULL && colo[i] != NULL && zero[i] != NULL) {
00432 cpl_table_set_string(t, FORS_DATA_PHOT_FILTER , row, FORS_DATA_STD_MAG[i]);
00433 cpl_table_set_double(t, FORS_DATA_PHOT_EXTCOEFF, row, *(exti[i]));
00434 cpl_table_set_double(t, FORS_DATA_PHOT_COLORTERM, row, *(colo[i]));
00435 cpl_table_set_double(t, FORS_DATA_PHOT_ZEROPOINT, row, *(zero[i]));
00436 row++;
00437 }
00438 }
00439 }
00440
00441 CHECK;
00442
00443 cpl_table_set_size(t, row);
00444
00445 cpl_table_save(t, NULL, NULL, filename, CPL_IO_DEFAULT);
00446
00447 CHECK;
00448
00449 fprintf(stdout, "Created %s\n", filename);
00450 cpl_table_delete(t);
00451
00452 #endif
00453
00454 return 0;
00455 }