Changeset 38852
- Timestamp:
- Oct 13, 2015, 11:40:43 AM (11 years ago)
- Location:
- trunk/Ohana/src/addstar
- Files:
-
- 2 edited
-
src/mkcmf.c (modified) (7 diffs)
-
test (modified) (1 prop)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/addstar/src/mkcmf.c
r38441 r38852 25 25 void writeStars_PS1_DEV_0 (FTable *ftable, double *X, double *Y, double *M, int Nstars); 26 26 27 int WriteXSRCtable (FILE *fits, char *extroot, double *X, double *Y, double *M, unsigned int *Flag, int Nstars); 28 int WriteXFITtable (FILE *fits, char *extroot, double *X, double *Y, double *M, unsigned int *Flag, int Nstars); 29 int WriteXRADtable (FILE *fits, char *extroot, double *X, double *Y, double *M, unsigned int *Flag, int Nstars); 30 int WriteDETFtable (FILE *fits, char *extroot, double *X, double *Y, double *M, unsigned int *Flag, int Nstars); 31 27 32 int ADDNOISE = TRUE; 28 33 float BAD_PSFQF_FRAC = 0.0; … … 54 59 } 55 60 61 int WriteXSRC = FALSE; 62 int WriteXFIT = FALSE; 63 int WriteXRAD = FALSE; 64 int WriteDETF = FALSE; 65 if ((N = get_argument (argc, argv, "-stack"))) { 66 remove_argument (N, &argc, argv); 67 WriteXSRC = WriteXFIT = WriteXRAD = WriteDETF = TRUE; 68 } 69 56 70 static char *photcode = "SIMTEST.r.Chip"; 57 71 if ((N = get_argument (argc, argv, "-photcode"))) { … … 83 97 } 84 98 85 char extname[80], exthead[80]; 99 char extname[80], exthead[80], extroot[80]; 100 strcpy (extroot, "Chip"); 86 101 strcpy (extname, "Chip.psf"); 87 102 strcpy (exthead, "Chip.hdr"); 88 if ((N = get_argument (argc, argv, "-extname"))) { 89 remove_argument (N, &argc, argv); 103 if ((N = get_argument (argc, argv, "-extroot"))) { 104 remove_argument (N, &argc, argv); 105 snprintf (extroot, 80, "%s", argv[N]); 90 106 snprintf (extname, 80, "%s.psf", argv[N]); 91 107 snprintf (exthead, 80, "%s.hdr", argv[N]); … … 280 296 gfits_print (&header, "IMNAXIS1", "%d", 1, (int)(Xmax)); 281 297 gfits_print (&header, "IMNAXIS2", "%d", 1, (int)(Ymax)); 298 gfits_print (&header, "NAXIS1", "%d", 1, (int)(Xmax)); 299 gfits_print (&header, "NAXIS2", "%d", 1, (int)(Ymax)); 282 300 283 301 gfits_modify (&header, "NSTARS", "%d", 1, Nstars); … … 301 319 PutCoords (&coords, &header); 302 320 gfits_modify (&header, "EXTNAME", "%s", 1, exthead); 321 322 // various other fields needed to ipptopsps 323 gfits_modify (&header, "FWHM_MAJ", "%f", 1, FX*2.8); 324 gfits_modify (&header, "FWHM_MIN", "%f", 1, FY*2.8); 325 gfits_modify (&header, "MSKY_MN", "%f", 1, SKY); 326 gfits_modify (&header, "MSKY_SIG", "%f", 1, DSKY); 327 gfits_modify (&header, "DETEFF.MAGREF", "%f", 1, -5.0); 328 gfits_modify (&header, "ZPT_OBS", "%f", 1, 25.0); 329 gfits_modify (&header, "ZPT_ERR", "%f", 1, 0.03); 330 gfits_modify (&header, "ANGLE", "%f", 1, 0.1); 331 gfits_modify (&header, "IQ_FW1", "%f", 1, FX*2.8); 332 gfits_modify (&header, "IQ_FW2", "%f", 1, FX*2.8); 333 gfits_modify (&header, "IQ_M2C", "%f", 1, FX*2.8); 334 gfits_modify (&header, "IQ_M2S", "%f", 1, FX*2.8); 335 gfits_modify (&header, "IQ_M3", "%f", 1, FX*2.8); 336 gfits_modify (&header, "IQ_M4", "%f", 1, FX*2.8); 337 gfits_modify (&header, "APMIFIT", "%f", 1, 0.1); 338 gfits_modify (&header, "DAPMIFIT", "%f", 1, 0.03); 339 gfits_modify (&header, "DETECTOR", "%s", 1, "CCID58-1-02a2"); 340 gfits_modify (&header, "DETREND.MASK", "%s", 1, "detref615.XY33.fits"); 341 gfits_modify (&header, "DETREND.DARK", "%s", 1, "GPC1.DARKTEST.norm.856.0.XY33.fits"); 342 gfits_modify (&header, "DETREND.FLAT", "%s", 1, "GPC1.FLATTEST.300.XY33.co.fits"); 343 gfits_modify (&header, "DETREND.NOISEMAP", "%s", 1, "GPC1.noisemap.norm.965.0.XY33.fits"); 344 gfits_modify (&header, "DETREND.NONLIN", "%s", 1, "linearity_data.XY33.fits"); 345 gfits_modify (&header, "DETREND.VIDEODARK", "%s", 1, "GPC1.VIDEODARK.979.0.XY33.fits"); 346 347 gfits_modify (&header, "PSFMODEL", "%s", 1, "PS_MODEL_PS1_V1"); 348 gfits_modify (&header, "AST_CDX", "%f", 1, 0.05); 349 gfits_modify (&header, "AST_CDY", "%f", 1, 0.04); 350 351 // gfits_modify (&header, "ZPT_OBS", "%", 1, ); 352 // gfits_modify (&header, "CERROR", "%f", 1, ); 303 353 304 354 int i; … … 380 430 gfits_fwrite_Theader (fits, ftable.header); 381 431 gfits_fwrite_table (fits, &ftable); 432 433 if (WriteXSRC) WriteXSRCtable (fits, extroot, X, Y, M, Flag, Nstars); 434 if (WriteXFIT) WriteXFITtable (fits, extroot, X, Y, M, Flag, Nstars); 435 if (WriteXRAD) WriteXRADtable (fits, extroot, X, Y, M, Flag, Nstars); 436 if (WriteDETF) WriteDETFtable (fits, extroot, X, Y, M, Flag, Nstars); 437 382 438 fclose (fits); 383 439 … … 1133 1189 } 1134 1190 1191 int WriteXSRCtable (FILE *fits, char *extroot, double *X, double *Y, double *M, unsigned int *Flag, int Nstars) { 1192 1193 int i, j; 1194 Header header; 1195 FTable ftable; 1196 1197 char extdata[80]; 1198 snprintf (extdata, 80, "%s.xsrc", extroot); 1199 1200 /* Example Code to create a bintable */ 1201 { 1202 gfits_create_table_header (&header, "BINTABLE", extdata); 1203 1204 gfits_define_bintable_column (&header, "1J", "IPP_IDET" , "no comment", NULL, 1.0, FT_BZERO_INT32); // unsigned 1205 gfits_define_bintable_column (&header, "1E", "X_EXT" , "no comment", NULL, 1.0, 0.0); 1206 gfits_define_bintable_column (&header, "1E", "Y_EXT" , "no comment", NULL, 1.0, 0.0); 1207 gfits_define_bintable_column (&header, "1E", "X_EXT_SIG" , "no comment", NULL, 1.0, 0.0); 1208 gfits_define_bintable_column (&header, "1E", "Y_EXT_SIG" , "no comment", NULL, 1.0, 0.0); 1209 gfits_define_bintable_column (&header, "1E", "F25_ARATIO" , "no comment", NULL, 1.0, 0.0); 1210 gfits_define_bintable_column (&header, "1E", "F25_THETA" , "no comment", NULL, 1.0, 0.0); 1211 gfits_define_bintable_column (&header, "1E", "PETRO_MAG" , "no comment", NULL, 1.0, 0.0); 1212 gfits_define_bintable_column (&header, "1E", "PETRO_MAG_ERR" , "no comment", NULL, 1.0, 0.0); 1213 gfits_define_bintable_column (&header, "1E", "PETRO_RADIUS" , "no comment", NULL, 1.0, 0.0); 1214 gfits_define_bintable_column (&header, "1E", "PETRO_RADIUS_ERR" , "no comment", NULL, 1.0, 0.0); 1215 gfits_define_bintable_column (&header, "1E", "PETRO_RADIUS_50" , "no comment", NULL, 1.0, 0.0); 1216 gfits_define_bintable_column (&header, "1E", "PETRO_RADIUS_50_ERR", "no comment", NULL, 1.0, 0.0); 1217 gfits_define_bintable_column (&header, "1E", "PETRO_RADIUS_90" , "no comment", NULL, 1.0, 0.0); 1218 gfits_define_bintable_column (&header, "1E", "PETRO_RADIUS_90_ERR", "no comment", NULL, 1.0, 0.0); 1219 gfits_define_bintable_column (&header, "1E", "PETRO_FILL" , "no comment", NULL, 1.0, 0.0); 1220 gfits_define_bintable_column (&header, "1E", "HALF_LIGHT_RADIUS" , "no comment", NULL, 1.0, 0.0); 1221 gfits_define_bintable_column (&header, "1E", "G_RT" , "no comment", NULL, 1.0, 0.0); 1222 gfits_define_bintable_column (&header, "1E", "G_RA" , "no comment", NULL, 1.0, 0.0); 1223 gfits_define_bintable_column (&header, "1E", "G_S2" , "no comment", NULL, 1.0, 0.0); 1224 gfits_define_bintable_column (&header, "1E", "G_A" , "no comment", NULL, 1.0, 0.0); 1225 gfits_define_bintable_column (&header, "1E", "G_BUMPY" , "no comment", NULL, 1.0, 0.0); 1226 gfits_define_bintable_column (&header, "9E", "PROF_SB" , "no comment", NULL, 1.0, 0.0); 1227 gfits_define_bintable_column (&header, "9E", "PROF_FLUX" , "no comment", NULL, 1.0, 0.0); 1228 gfits_define_bintable_column (&header, "9E", "PROF_FILL" , "no comment", NULL, 1.0, 0.0); 1229 1230 // generate the output array that carries the data 1231 gfits_create_table (&header, &ftable); 1232 1233 // create intermediate storage arrays 1234 int *IPP_IDET ; ALLOCATE (IPP_IDET , int , Nstars); 1235 float *X_EXT ; ALLOCATE (X_EXT , float , Nstars); 1236 float *Y_EXT ; ALLOCATE (Y_EXT , float , Nstars); 1237 float *X_EXT_SIG ; ALLOCATE (X_EXT_SIG , float , Nstars); 1238 float *Y_EXT_SIG ; ALLOCATE (Y_EXT_SIG , float , Nstars); 1239 float *F25_ARATIO ; ALLOCATE (F25_ARATIO , float , Nstars); 1240 float *F25_THETA ; ALLOCATE (F25_THETA , float , Nstars); 1241 float *PETRO_MAG ; ALLOCATE (PETRO_MAG , float , Nstars); 1242 float *PETRO_MAG_ERR ; ALLOCATE (PETRO_MAG_ERR , float , Nstars); 1243 float *PETRO_RADIUS ; ALLOCATE (PETRO_RADIUS , float , Nstars); 1244 float *PETRO_RADIUS_ERR ; ALLOCATE (PETRO_RADIUS_ERR , float , Nstars); 1245 float *PETRO_RADIUS_50 ; ALLOCATE (PETRO_RADIUS_50 , float , Nstars); 1246 float *PETRO_RADIUS_50_ERR ; ALLOCATE (PETRO_RADIUS_50_ERR , float , Nstars); 1247 float *PETRO_RADIUS_90 ; ALLOCATE (PETRO_RADIUS_90 , float , Nstars); 1248 float *PETRO_RADIUS_90_ERR ; ALLOCATE (PETRO_RADIUS_90_ERR , float , Nstars); 1249 float *PETRO_FILL ; ALLOCATE (PETRO_FILL , float , Nstars); 1250 float *HALF_LIGHT_RADIUS ; ALLOCATE (HALF_LIGHT_RADIUS , float , Nstars); 1251 float *G_RT ; ALLOCATE (G_RT , float , Nstars); 1252 float *G_RA ; ALLOCATE (G_RA , float , Nstars); 1253 float *G_S2 ; ALLOCATE (G_S2 , float , Nstars); 1254 float *G_A ; ALLOCATE (G_A , float , Nstars); 1255 float *G_BUMPY ; ALLOCATE (G_BUMPY , float , Nstars); 1256 float *PROF_SB ; ALLOCATE (PROF_SB , float , 9*Nstars); 1257 float *PROF_FLUX ; ALLOCATE (PROF_FLUX , float , 9*Nstars); 1258 float *PROF_FILL ; ALLOCATE (PROF_FILL , float , 9*Nstars); 1259 1260 // assign the storage arrays 1261 for (i = 0; i < Nstars; i++) { 1262 float flux = pow (10.0, -0.4*M[i]); 1263 float fSN = 1.0 / sqrt(flux); 1264 1265 IPP_IDET [i] = i; 1266 X_EXT [i] = X[i]; 1267 Y_EXT [i] = Y[i]; 1268 X_EXT_SIG [i] = FX * fSN; 1269 Y_EXT_SIG [i] = FY * fSN; 1270 F25_ARATIO [i] = 0.9; 1271 F25_THETA [i] = 10.0; 1272 PETRO_MAG [i] = M[i]; 1273 PETRO_MAG_ERR [i] = fSN; 1274 PETRO_RADIUS [i] = 8.0; 1275 PETRO_RADIUS_ERR [i] = 0.1; 1276 PETRO_RADIUS_50 [i] = 4.0; 1277 PETRO_RADIUS_50_ERR [i] = 0.1; 1278 PETRO_RADIUS_90 [i] = 12.0; 1279 PETRO_RADIUS_90_ERR [i] = 0.1; 1280 PETRO_FILL [i] = 0.95; 1281 HALF_LIGHT_RADIUS [i] = 6.0; 1282 G_RT [i] = 1.0; 1283 G_RA [i] = 1.0; 1284 G_S2 [i] = 1.0; 1285 G_A [i] = 1.0; 1286 G_BUMPY [i] = 1.0; 1287 for (j = 0; j < 9; j++) { 1288 PROF_SB [j + 9*i] = flux / 10.0; 1289 PROF_FLUX [j + 9*i] = flux; 1290 PROF_FILL [j + 9*i] = 0.9; 1291 } 1292 } 1293 1294 // set the table data 1295 gfits_set_bintable_column (&header, &ftable, "IPP_IDET" , IPP_IDET , Nstars); 1296 gfits_set_bintable_column (&header, &ftable, "X_EXT" , X_EXT , Nstars); 1297 gfits_set_bintable_column (&header, &ftable, "Y_EXT" , Y_EXT , Nstars); 1298 gfits_set_bintable_column (&header, &ftable, "X_EXT_SIG" , X_EXT_SIG , Nstars); 1299 gfits_set_bintable_column (&header, &ftable, "Y_EXT_SIG" , Y_EXT_SIG , Nstars); 1300 gfits_set_bintable_column (&header, &ftable, "F25_ARATIO" , F25_ARATIO , Nstars); 1301 gfits_set_bintable_column (&header, &ftable, "F25_THETA" , F25_THETA , Nstars); 1302 gfits_set_bintable_column (&header, &ftable, "PETRO_MAG" , PETRO_MAG , Nstars); 1303 gfits_set_bintable_column (&header, &ftable, "PETRO_MAG_ERR" , PETRO_MAG_ERR , Nstars); 1304 gfits_set_bintable_column (&header, &ftable, "PETRO_RADIUS" , PETRO_RADIUS , Nstars); 1305 gfits_set_bintable_column (&header, &ftable, "PETRO_RADIUS_ERR" , PETRO_RADIUS_ERR , Nstars); 1306 gfits_set_bintable_column (&header, &ftable, "PETRO_RADIUS_50" , PETRO_RADIUS_50 , Nstars); 1307 gfits_set_bintable_column (&header, &ftable, "PETRO_RADIUS_50_ERR", PETRO_RADIUS_50_ERR , Nstars); 1308 gfits_set_bintable_column (&header, &ftable, "PETRO_RADIUS_90" , PETRO_RADIUS_90 , Nstars); 1309 gfits_set_bintable_column (&header, &ftable, "PETRO_RADIUS_90_ERR", PETRO_RADIUS_90_ERR , Nstars); 1310 gfits_set_bintable_column (&header, &ftable, "PETRO_FILL" , PETRO_FILL , Nstars); 1311 gfits_set_bintable_column (&header, &ftable, "HALF_LIGHT_RADIUS" , HALF_LIGHT_RADIUS , Nstars); 1312 gfits_set_bintable_column (&header, &ftable, "G_RT" , G_RT , Nstars); 1313 gfits_set_bintable_column (&header, &ftable, "G_RA" , G_RA , Nstars); 1314 gfits_set_bintable_column (&header, &ftable, "G_S2" , G_S2 , Nstars); 1315 gfits_set_bintable_column (&header, &ftable, "G_A" , G_A , Nstars); 1316 gfits_set_bintable_column (&header, &ftable, "G_BUMPY" , G_BUMPY , Nstars); 1317 gfits_set_bintable_column (&header, &ftable, "PROF_SB" , PROF_SB , Nstars); 1318 gfits_set_bintable_column (&header, &ftable, "PROF_FLUX" , PROF_FLUX , Nstars); 1319 gfits_set_bintable_column (&header, &ftable, "PROF_FILL" , PROF_FILL , Nstars); 1320 } 1321 1322 gfits_fwrite_Theader (fits, &header); 1323 gfits_fwrite_table (fits, &ftable); 1324 gfits_free_header (&header); 1325 gfits_free_table (&ftable); 1326 1327 return TRUE; 1328 } 1329 1330 int WriteXFITtable (FILE *fits, char *extroot, double *X, double *Y, double *M, unsigned int *Flag, int Nstars) { 1331 1332 int i; 1333 Header header; 1334 FTable ftable; 1335 1336 char extdata[80]; 1337 snprintf (extdata, 80, "%s.xfit", extroot); 1338 1339 /* Example Code to create a bintable */ 1340 { 1341 gfits_create_table_header (&header, "BINTABLE", extdata); 1342 1343 // define the table layout 1344 gfits_define_bintable_column (&header, "J", "IPP_IDET" , "no comment", NULL, 1.0, FT_BZERO_INT32); // unsigned 1345 gfits_define_bintable_column (&header, "E", "X_EXT" , "no comment", NULL, 1.0, 0.0); 1346 gfits_define_bintable_column (&header, "E", "Y_EXT" , "no comment", NULL, 1.0, 0.0); 1347 gfits_define_bintable_column (&header, "E", "X_EXT_SIG" , "no comment", NULL, 1.0, 0.0); 1348 gfits_define_bintable_column (&header, "E", "Y_EXT_SIG" , "no comment", NULL, 1.0, 0.0); 1349 gfits_define_bintable_column (&header, "E", "SKY_EXT" , "no comment", NULL, 1.0, 0.0); 1350 gfits_define_bintable_column (&header, "E", "RA_EXT" , "no comment", NULL, 1.0, 0.0); 1351 gfits_define_bintable_column (&header, "E", "DEC_EXT" , "no comment", NULL, 1.0, 0.0); 1352 gfits_define_bintable_column (&header, "E", "EXT_INST_MAG" , "no comment", NULL, 1.0, 0.0); 1353 gfits_define_bintable_column (&header, "E", "EXT_INST_MAG_SIG" , "no comment", NULL, 1.0, 0.0); 1354 gfits_define_bintable_column (&header, "E", "EXT_CHISQ" , "no comment", NULL, 1.0, 0.0); 1355 gfits_define_bintable_column (&header, "J", "EXT_NDOF" , "no comment", NULL, 1.0, FT_BZERO_INT32); // unsigned 1356 gfits_define_bintable_column (&header, "J", "EXT_MODEL_TYPE" , "no comment", NULL, 1.0, FT_BZERO_INT32); // unsigned 1357 gfits_define_bintable_column (&header, "I", "EXT_FLAGS" , "no comment", NULL, 1.0, FT_BZERO_INT16); // unsigned 1358 gfits_define_bintable_column (&header, "E", "PSF_INST_MAG" , "no comment", NULL, 1.0, 0.0); 1359 gfits_define_bintable_column (&header, "E", "AP_MAG" , "no comment", NULL, 1.0, 0.0); 1360 gfits_define_bintable_column (&header, "E", "KRON_MAG" , "no comment", NULL, 1.0, 0.0); 1361 gfits_define_bintable_column (&header, "J", "NPARAMS" , "no comment", NULL, 1.0, FT_BZERO_INT32); // unsigned 1362 gfits_define_bintable_column (&header, "15A", "MODEL_TYPE" , "no comment", NULL, 1.0, 0.0); 1363 gfits_define_bintable_column (&header, "E", "EXT_WIDTH_MAJ" , "no comment", NULL, 1.0, 0.0); 1364 gfits_define_bintable_column (&header, "E", "EXT_WIDTH_MIN" , "no comment", NULL, 1.0, 0.0); 1365 gfits_define_bintable_column (&header, "E", "EXT_THETA" , "no comment", NULL, 1.0, 0.0); 1366 gfits_define_bintable_column (&header, "E", "EXT_WIDTH_MAJ_ERR", "no comment", NULL, 1.0, 0.0); 1367 gfits_define_bintable_column (&header, "E", "EXT_WIDTH_MIN_ERR", "no comment", NULL, 1.0, 0.0); 1368 gfits_define_bintable_column (&header, "E", "EXT_THETA_ERR" , "no comment", NULL, 1.0, 0.0); 1369 gfits_define_bintable_column (&header, "E", "EXT_PAR_07" , "no comment", NULL, 1.0, 0.0); 1370 1371 // generate the output array that carries the data 1372 gfits_create_table (&header, &ftable); 1373 1374 // create intermediate storage arrays 1375 int *IPP_IDET ; ALLOCATE (IPP_IDET , int , Nstars); 1376 float *X_EXT ; ALLOCATE (X_EXT , float , Nstars); 1377 float *Y_EXT ; ALLOCATE (Y_EXT , float , Nstars); 1378 float *X_EXT_SIG ; ALLOCATE (X_EXT_SIG , float , Nstars); 1379 float *Y_EXT_SIG ; ALLOCATE (Y_EXT_SIG , float , Nstars); 1380 float *SKY_EXT ; ALLOCATE (SKY_EXT , float , Nstars); 1381 float *RA_EXT ; ALLOCATE (RA_EXT , float , Nstars); 1382 float *DEC_EXT ; ALLOCATE (DEC_EXT , float , Nstars); 1383 float *EXT_INST_MAG ; ALLOCATE (EXT_INST_MAG , float , Nstars); 1384 float *EXT_INST_MAG_SIG ; ALLOCATE (EXT_INST_MAG_SIG , float , Nstars); 1385 float *EXT_CHISQ ; ALLOCATE (EXT_CHISQ , float , Nstars); 1386 int *EXT_NDOF ; ALLOCATE (EXT_NDOF , int , Nstars); 1387 int *EXT_MODEL_TYPE ; ALLOCATE (EXT_MODEL_TYPE , int , Nstars); 1388 short *EXT_FLAGS ; ALLOCATE (EXT_FLAGS , short , Nstars); 1389 float *PSF_INST_MAG ; ALLOCATE (PSF_INST_MAG , float , Nstars); 1390 float *AP_MAG ; ALLOCATE (AP_MAG , float , Nstars); 1391 float *KRON_MAG ; ALLOCATE (KRON_MAG , float , Nstars); 1392 int *NPARAMS ; ALLOCATE (NPARAMS , int , Nstars); 1393 char *MODEL_TYPE ; ALLOCATE (MODEL_TYPE , char , Nstars*15); 1394 float *EXT_WIDTH_MAJ ; ALLOCATE (EXT_WIDTH_MAJ , float , Nstars); 1395 float *EXT_WIDTH_MIN ; ALLOCATE (EXT_WIDTH_MIN , float , Nstars); 1396 float *EXT_THETA ; ALLOCATE (EXT_THETA , float , Nstars); 1397 float *EXT_WIDTH_MAJ_ERR ; ALLOCATE (EXT_WIDTH_MAJ_ERR, float , Nstars); 1398 float *EXT_WIDTH_MIN_ERR ; ALLOCATE (EXT_WIDTH_MIN_ERR, float , Nstars); 1399 float *EXT_THETA_ERR ; ALLOCATE (EXT_THETA_ERR , float , Nstars); 1400 float *EXT_PAR_07 ; ALLOCATE (EXT_PAR_07 , float , Nstars); 1401 1402 // assign the storage arrays 1403 for (i = 0; i < Nstars; i++) { 1404 float flux = pow (10.0, -0.4*M[i]); 1405 float fSN = 1.0 / sqrt(flux); 1406 1407 IPP_IDET [i] = i; 1408 X_EXT [i] = X[i]; 1409 Y_EXT [i] = Y[i]; 1410 X_EXT_SIG [i] = FX * fSN; 1411 Y_EXT_SIG [i] = FY * fSN; 1412 SKY_EXT [i] = 0.1; 1413 RA_EXT [i] = NAN; 1414 DEC_EXT [i] = NAN; 1415 EXT_INST_MAG [i] = M[i]; 1416 EXT_INST_MAG_SIG [i] = fSN; 1417 EXT_CHISQ [i] = 1.0; 1418 EXT_NDOF [i] = 10; 1419 EXT_MODEL_TYPE [i] = -1; 1420 EXT_FLAGS [i] = 0x0010; 1421 PSF_INST_MAG [i] = M[i]; 1422 AP_MAG [i] = M[i]; 1423 KRON_MAG [i] = M[i]; 1424 NPARAMS [i] = 7; 1425 EXT_WIDTH_MAJ [i] = FX*2.8; 1426 EXT_WIDTH_MIN [i] = FY*2.8; 1427 EXT_THETA [i] = 10.0; 1428 EXT_WIDTH_MAJ_ERR[i] = FX*3.0; 1429 EXT_WIDTH_MIN_ERR[i] = FY*3.0; 1430 EXT_THETA_ERR [i] = 0.5; 1431 EXT_PAR_07 [i] = NAN; 1432 1433 strcpy (&MODEL_TYPE[15*i], "PS_MODEL_DEV"); 1434 } 1435 1436 // set the table data 1437 gfits_set_bintable_column (&header, &ftable, "IPP_IDET" , IPP_IDET , Nstars); 1438 gfits_set_bintable_column (&header, &ftable, "X_EXT" , X_EXT , Nstars); 1439 gfits_set_bintable_column (&header, &ftable, "Y_EXT" , Y_EXT , Nstars); 1440 gfits_set_bintable_column (&header, &ftable, "X_EXT_SIG" , X_EXT_SIG , Nstars); 1441 gfits_set_bintable_column (&header, &ftable, "Y_EXT_SIG" , Y_EXT_SIG , Nstars); 1442 gfits_set_bintable_column (&header, &ftable, "SKY_EXT" , SKY_EXT , Nstars); 1443 gfits_set_bintable_column (&header, &ftable, "RA_EXT" , RA_EXT , Nstars); 1444 gfits_set_bintable_column (&header, &ftable, "DEC_EXT" , DEC_EXT , Nstars); 1445 gfits_set_bintable_column (&header, &ftable, "EXT_INST_MAG" , EXT_INST_MAG , Nstars); 1446 gfits_set_bintable_column (&header, &ftable, "EXT_INST_MAG_SIG" , EXT_INST_MAG_SIG , Nstars); 1447 gfits_set_bintable_column (&header, &ftable, "EXT_CHISQ" , EXT_CHISQ , Nstars); 1448 gfits_set_bintable_column (&header, &ftable, "EXT_NDOF" , EXT_NDOF , Nstars); 1449 gfits_set_bintable_column (&header, &ftable, "EXT_MODEL_TYPE" , EXT_MODEL_TYPE , Nstars); 1450 gfits_set_bintable_column (&header, &ftable, "EXT_FLAGS" , EXT_FLAGS , Nstars); 1451 gfits_set_bintable_column (&header, &ftable, "PSF_INST_MAG" , PSF_INST_MAG , Nstars); 1452 gfits_set_bintable_column (&header, &ftable, "AP_MAG" , AP_MAG , Nstars); 1453 gfits_set_bintable_column (&header, &ftable, "KRON_MAG" , KRON_MAG , Nstars); 1454 gfits_set_bintable_column (&header, &ftable, "NPARAMS" , NPARAMS , Nstars); 1455 gfits_set_bintable_column (&header, &ftable, "MODEL_TYPE" , MODEL_TYPE , Nstars); 1456 gfits_set_bintable_column (&header, &ftable, "EXT_WIDTH_MAJ" , EXT_WIDTH_MAJ , Nstars); 1457 gfits_set_bintable_column (&header, &ftable, "EXT_WIDTH_MIN" , EXT_WIDTH_MIN , Nstars); 1458 gfits_set_bintable_column (&header, &ftable, "EXT_THETA" , EXT_THETA , Nstars); 1459 gfits_set_bintable_column (&header, &ftable, "EXT_WIDTH_MAJ_ERR", EXT_WIDTH_MAJ_ERR, Nstars); 1460 gfits_set_bintable_column (&header, &ftable, "EXT_WIDTH_MIN_ERR", EXT_WIDTH_MIN_ERR, Nstars); 1461 gfits_set_bintable_column (&header, &ftable, "EXT_THETA_ERR" , EXT_THETA_ERR , Nstars); 1462 gfits_set_bintable_column (&header, &ftable, "EXT_PAR_07" , EXT_PAR_07 , Nstars); 1463 } 1464 /**/ 1465 1466 gfits_fwrite_Theader (fits, &header); 1467 gfits_fwrite_table (fits, &ftable); 1468 gfits_free_header (&header); 1469 gfits_free_table (&ftable); 1470 1471 return TRUE; 1472 } 1473 1474 int WriteXRADtable (FILE *fits, char *extroot, double *X, double *Y, double *M, unsigned int *Flag, int Nstars) { 1475 1476 int i, j; 1477 Header header; 1478 FTable ftable; 1479 1480 char extdata[80]; 1481 snprintf (extdata, 80, "%s.xrad", extroot); 1482 1483 /* Example Code to create a bintable */ 1484 { 1485 gfits_create_table_header (&header, "BINTABLE", extdata); 1486 1487 // define the table layout 1488 gfits_define_bintable_column (&header, "J", "IPP_IDET" , "no comment", NULL, 1.0, FT_BZERO_INT32); // unsigned 1489 gfits_define_bintable_column (&header, "E", "X_APER" , "no comment", NULL, 1.0, 0.0); 1490 gfits_define_bintable_column (&header, "E", "Y_APER" , "no comment", NULL, 1.0, 0.0); 1491 gfits_define_bintable_column (&header, "E", "PSF_FWHM" , "no comment", NULL, 1.0, 0.0); 1492 gfits_define_bintable_column (&header, "9E", "APER_FLUX" , "no comment", NULL, 1.0, 0.0); 1493 gfits_define_bintable_column (&header, "9E", "APER_FLUX_ERR" , "no comment", NULL, 1.0, 0.0); 1494 gfits_define_bintable_column (&header, "9E", "APER_FLUX_STDEV" , "no comment", NULL, 1.0, 0.0); 1495 gfits_define_bintable_column (&header, "9E", "APER_FILL" , "no comment", NULL, 1.0, 0.0); 1496 1497 // generate the output array that carries the data 1498 gfits_create_table (&header, &ftable); 1499 1500 // create intermediate storage arrays 1501 int *IPP_IDET ; ALLOCATE (IPP_IDET , int , Nstars); 1502 float *X_APER ; ALLOCATE (X_APER , float , Nstars); 1503 float *Y_APER ; ALLOCATE (Y_APER , float , Nstars); 1504 float *PSF_FWHM ; ALLOCATE (PSF_FWHM , float , Nstars); 1505 float *APER_FLUX ; ALLOCATE (APER_FLUX , float , Nstars*9); 1506 float *APER_FLUX_ERR ; ALLOCATE (APER_FLUX_ERR , float , Nstars*9); 1507 float *APER_FLUX_STDEV ; ALLOCATE (APER_FLUX_STDEV , float , Nstars*9); 1508 float *APER_FILL ; ALLOCATE (APER_FILL , float , Nstars*9); 1509 1510 // assign the storage arrays 1511 for (i = 0; i < Nstars; i++) { 1512 float flux = pow (10.0, -0.4*M[i]); 1513 // float fSN = 1.0 / sqrt(flux); 1514 1515 IPP_IDET [i] = i; 1516 X_APER [i] = X[i]; 1517 Y_APER [i] = Y[i]; 1518 PSF_FWHM [i] = FX*2.8; 1519 for (j = 0; j < 9; j ++) { 1520 APER_FLUX [j + 9*i] = flux; 1521 APER_FLUX_ERR [j + 9*i] = sqrt(flux); 1522 APER_FLUX_STDEV[j + 9*i] = sqrt(flux); 1523 APER_FILL [j + 9*i] = 0.9; 1524 } 1525 } 1526 1527 // set the table data 1528 gfits_set_bintable_column (&header, &ftable, "IPP_IDET" , IPP_IDET , Nstars); 1529 gfits_set_bintable_column (&header, &ftable, "X_APER" , X_APER , Nstars); 1530 gfits_set_bintable_column (&header, &ftable, "Y_APER" , Y_APER , Nstars); 1531 gfits_set_bintable_column (&header, &ftable, "PSF_FWHM" , PSF_FWHM , Nstars); 1532 gfits_set_bintable_column (&header, &ftable, "APER_FLUX" , APER_FLUX , Nstars); 1533 gfits_set_bintable_column (&header, &ftable, "APER_FLUX_ERR" , APER_FLUX_ERR , Nstars); 1534 gfits_set_bintable_column (&header, &ftable, "APER_FLUX_STDEV" , APER_FLUX_STDEV , Nstars); 1535 gfits_set_bintable_column (&header, &ftable, "APER_FILL" , APER_FILL , Nstars); 1536 } 1537 /**/ 1538 1539 gfits_fwrite_Theader (fits, &header); 1540 gfits_fwrite_table (fits, &ftable); 1541 gfits_free_header (&header); 1542 gfits_free_table (&ftable); 1543 1544 return TRUE; 1545 } 1546 1547 int WriteDETFtable (FILE *fits, char *extroot, double *X, double *Y, double *M, unsigned int *Flag, int Nstars) { 1548 return TRUE; 1549 } 1550 1551 int WriteDummyTable (FILE *fits) { 1552 1553 Header header; 1554 FTable ftable; 1555 1556 /* Example Code to create a bintable 1557 { 1558 gfits_create_table_header (&header, "BINTABLE", extroot); 1559 1560 // define the table layout 1561 gfits_define_bintable_column (&header, "D", "NAME", "comment", NULL, 1.0, 0.0); 1562 gfits_define_bintable_column (&header, "E", "NAME", "comment", NULL, 1.0, 0.0); 1563 gfits_define_bintable_column (&header, "J", "NAME", "comment", NULL, 1.0, FT_BZERO_INT32); // unsigned 1564 gfits_define_bintable_column (&header, "I", "NAME", "comment", NULL, 1.0, FT_BZERO_INT16); // unsigned 1565 1566 // generate the output array that carries the data 1567 gfits_create_table (&header, &ftable); 1568 1569 // create intermediate storage arrays 1570 double *R; ALLOCATE (R, double, Nvalue); 1571 float *M; ALLOCATE (M, float , Nvalue); 1572 int *I; ALLOCATE (I, int , Nvalue); 1573 short *P; ALLOCATE (P, short , Nvalue); 1574 1575 // assign the storage arrays 1576 for (i = 0; Nvalue; i++) { 1577 R[i] = value; 1578 M[i] = value; 1579 I[i] = value; 1580 P[i] = value; 1581 } 1582 1583 // set the table data 1584 gfits_set_bintable_column (&header, &ftable, "NAME", R, catalog->Nmeasure); 1585 gfits_set_bintable_column (&header, &ftable, "NAME", M, catalog->Nmeasure); 1586 gfits_set_bintable_column (&header, &ftable, "NAME", I, catalog->Nmeasure); 1587 gfits_set_bintable_column (&header, &ftable, "NAME", P, catalog->Nmeasure); 1588 } 1589 */ 1590 1591 gfits_fwrite_Theader (fits, &header); 1592 gfits_fwrite_table (fits, &ftable); 1593 gfits_free_header (&header); 1594 gfits_free_table (&ftable); 1595 1596 return TRUE; 1597 } 1598 -
trunk/Ohana/src/addstar/test
- Property svn:mergeinfo changed
/branches/eam_branches/ipp-20150625/Ohana/src/addstar/test (added) merged: 38577
- Property svn:mergeinfo changed
Note:
See TracChangeset
for help on using the changeset viewer.
