Changeset 38983
- Timestamp:
- Oct 27, 2015, 4:19:52 PM (11 years ago)
- Location:
- branches/eam_branches/ipp-20150625/Ohana
- Files:
-
- 44 edited
- 3 copied
-
. (modified) (1 prop)
-
src/addstar/Makefile (modified) (4 diffs)
-
src/addstar/include/addstar.h (modified) (1 diff)
-
src/addstar/include/loadgalphot.h (modified) (1 diff)
-
src/addstar/src/ReadXradFITS.c (modified) (3 diffs)
-
src/addstar/src/args_loadgalphot.c (modified) (4 diffs)
-
src/addstar/src/find_matches_galphot.c (modified) (2 diffs)
-
src/addstar/src/find_matches_starpar.c (modified) (1 diff)
-
src/addstar/src/loadgalphot.c (modified) (1 diff)
-
src/addstar/src/loadgalphot_fit2d.c (modified) (1 diff)
-
src/addstar/src/loadgalphot_readstars.c (modified) (1 diff)
-
src/addstar/src/loadgalphot_table.c (modified) (1 diff)
-
src/addstar/src/mkcmf.c (modified) (27 diffs)
-
src/addstar/src/resort_catalog.c (modified) (13 diffs)
-
src/addstar/src/resort_threaded.c (modified) (1 diff)
-
src/addstar/src/resort_unthreaded.c (modified) (1 diff)
-
src/addstar/test (modified) (1 prop)
-
src/dvopsps/Makefile (modified) (2 diffs)
-
src/dvopsps/include/dvopsps.h (modified) (2 diffs)
-
src/dvopsps/src/dvopsps.c (modified) (2 diffs)
-
src/dvopsps/src/dvopsps_client.c (modified) (1 diff)
-
src/dvopsps/src/initialize_dvopsps.c (modified) (1 diff)
-
src/dvopsps/src/insert_FGshape_dvopsps.c (copied) (copied from trunk/Ohana/src/dvopsps/src/insert_FGshape_dvopsps.c )
-
src/dvopsps/src/insert_FGshape_dvopsps_catalog.c (copied) (copied from trunk/Ohana/src/dvopsps/src/insert_FGshape_dvopsps_catalog.c )
-
src/dvopsps/src/insert_detections_dvopsps_catalog.c (modified) (4 diffs)
-
src/dvopsps/src/insert_objects_dvopsps_catalog.c (modified) (1 diff)
-
src/dvopsps/src/insert_skytable.c (modified) (1 diff)
-
src/getstar/src/MatchImages.c (modified) (1 diff)
-
src/libautocode/def/average.d (modified) (1 diff)
-
src/libautocode/def/cmf-ps1-v5-lensing-alt.d (modified) (1 diff)
-
src/libautocode/def/cmf-ps1-v5-lensing.d (modified) (1 diff)
-
src/libdvo/include/dvo.h (modified) (1 diff)
-
src/libdvo/include/dvodb.h (modified) (4 diffs)
-
src/libdvo/src/cmf-ps1-v5-r0-lensing.c (modified) (2 diffs)
-
src/libdvo/src/cmf-ps1-v5-r1-lensing.c (modified) (2 diffs)
-
src/libdvo/src/cmf-ps1-v5-r2-lensing.c (modified) (2 diffs)
-
src/libdvo/src/dbExtractAverages.c (modified) (3 diffs)
-
src/libdvo/src/dbExtractMeasures.c (modified) (1 diff)
-
src/libdvo/src/dbFields.c (modified) (4 diffs)
-
src/libdvo/src/dvo_photcode_ops.c (modified) (8 diffs)
-
src/opihi (modified) (1 prop)
-
src/opihi/cmd.astro/fitpm_irls.c (copied) (copied from trunk/Ohana/src/opihi/cmd.astro/fitpm_irls.c )
-
src/opihi/cmd.basic/list.c (modified) (7 diffs)
-
src/opihi/dvo/avextract.c (modified) (4 diffs)
-
src/opihi/dvo/avmatch.c (modified) (1 diff)
-
src/relastro/src/high_speed_utils.c (modified) (2 diffs)
-
src/relphot/src/setMrelCatalog.c (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20150625/Ohana
-
branches/eam_branches/ipp-20150625/Ohana/src/addstar/Makefile
r38711 r38983 39 39 # programs in 'SERVER' use the client-server concept and are out of date 40 40 41 INSTALL = addstar sedstar load starpar loadstarpar_client loadICRF loadICRF_client load2mass loadwise loadtycho loadsupercos skycells mkcmf dumpskycells findskycell41 INSTALL = addstar sedstar loadgalphot loadstarpar loadstarpar_client loadICRF loadICRF_client skycells mkcmf dumpskycells findskycell load2mass loadwise loadtycho loadsupercos 42 42 SERVER = addstar_client addstarc addstard addstart 43 43 … … 259 259 $(SRC)/loadgalphot_join.$(ARCH).o \ 260 260 $(SRC)/loadgalphot_table.$(ARCH).o \ 261 $(SRC)/resort_catalog.$(ARCH).o \ 261 262 $(SRC)/strhash.$(ARCH).o \ 262 263 $(SRC)/sortIDs.$(ARCH).o \ … … 284 285 $(SRC)/loadstarpar_table.$(ARCH).o \ 285 286 $(SRC)/loadstarpar_extras.$(ARCH).o \ 287 $(SRC)/resort_catalog.$(ARCH).o \ 286 288 $(SRC)/psps_ids.$(ARCH).o 287 289 … … 302 304 $(SRC)/loadstarpar_table.$(ARCH).o \ 303 305 $(SRC)/loadstarpar_extras.$(ARCH).o \ 304 $(SRC)/psps_ids.$(ARCH).o 306 $(SRC)/resort_catalog.$(ARCH).o \ 307 $(SRC)/psps_ids.$(ARCH).o 308 309 # drop resort_catalog? 305 310 306 311 LOAD-ICRF = \ -
branches/eam_branches/ipp-20150625/Ohana/src/addstar/include/addstar.h
r38593 r38983 333 333 Catalog *addstar_catalog_init (int Nstars); 334 334 335 void resort_catalog_measure (Catalog *catalog); 336 void resort_catalog_lensing (Catalog *catalog); 337 void resort_catalog_starpar (Catalog *catalog); 338 void resort_catalog_galphot (Catalog *catalog); 339 335 340 /** 336 341 there is an inconsistency to be resolved: fixed structures (like Image) -
branches/eam_branches/ipp-20150625/Ohana/src/addstar/include/loadgalphot.h
r38553 r38983 36 36 } GalPhotIDset; 37 37 38 AddstarClientOptions args_loadgalphot (int argc, char **argv, AddstarClientOptions options);38 AddstarClientOptions args_loadgalphot (int *argc, char **argv, AddstarClientOptions options); 39 39 40 40 int loadgalphot_table (SkyList *skylistInput, HostTable *hosts, char *filename, AddstarClientOptions *options); 41 41 42 GalPhot_Stars *loadgalphot_readstars (char *filename, int *nstars );42 GalPhot_Stars *loadgalphot_readstars (char *filename, int *nstars, AddstarClientOptions *options); 43 43 44 44 int loadgalphot_sortStars (GalPhot_Stars *stars, int Nstars); -
branches/eam_branches/ipp-20150625/Ohana/src/addstar/src/ReadXradFITS.c
r38576 r38983 14 14 /* load the table data */ 15 15 if (!gfits_fread_ftable_data (f, &table, FALSE)) { 16 fprintf (stderr, "ERROR: can't read table header\n"); 17 exit (1); 16 fprintf (stderr, "WARNING: no xrad data, skipping\n"); 17 return TRUE; 18 } 19 20 if (theader[0].Naxis[1] == 0) { 21 fprintf (stderr, "WARNING: no xrad data, skipping\n"); 22 return TRUE; 18 23 } 19 24 … … 65 70 for (i = 0; i < catalog->Nmeasure; i++) { 66 71 if (catalog->measure[i].detID < RadID[Nap]) { 67 Nap ++;68 72 continue; 73 // this is a psf measurement which does not have a radial aperture 69 74 } 70 75 if (catalog->measure[i].detID > RadID[Nap]) { 71 76 myAbort("radial apertures out of order? seems like a bug\n"); 77 // this would be a radial aperture which does not have a radial aperture 72 78 } 73 79 … … 95 101 Nap ++; 96 102 } 97 catalog->Nlensing = Nap;103 myAssert (Nap == Nrow, "did we go too far???"); 98 104 99 105 gfits_free_table (&table); -
branches/eam_branches/ipp-20150625/Ohana/src/addstar/src/args_loadgalphot.c
r38553 r38983 4 4 static void help (void); 5 5 6 AddstarClientOptions args_loadgalphot (int argc, char **argv, AddstarClientOptions options) {6 AddstarClientOptions args_loadgalphot (int *argc, char **argv, AddstarClientOptions options) { 7 7 8 8 int N; 9 9 10 10 /* check for help request */ 11 if (get_argument ( argc, argv, "-help") ||12 get_argument ( argc, argv, "-h")) {11 if (get_argument (*argc, argv, "-help") || 12 get_argument (*argc, argv, "-h")) { 13 13 help (); 14 14 } … … 27 27 HOST_ID = 0; 28 28 PARALLEL = FALSE; 29 if ((N = get_argument ( argc, argv, "-parallel"))) {29 if ((N = get_argument (*argc, argv, "-parallel"))) { 30 30 PARALLEL = TRUE; 31 remove_argument (N, &argc, argv);31 remove_argument (N, argc, argv); 32 32 } 33 33 // this is a test mode : rather than launching the remote jobs and waiting for completion, 34 34 // relphot will simply list the remote command and wait for the user to signal completion 35 35 PARALLEL_MANUAL = FALSE; 36 if ((N = get_argument ( argc, argv, "-parallel-manual"))) {36 if ((N = get_argument (*argc, argv, "-parallel-manual"))) { 37 37 PARALLEL = TRUE; // -parallel-manual implies -parallel 38 38 PARALLEL_MANUAL = TRUE; 39 remove_argument (N, &argc, argv);39 remove_argument (N, argc, argv); 40 40 } 41 41 // this is a test mode : rather than launching the relphot_client jobs remotely, they are 42 42 // run in serial via 'system' 43 43 PARALLEL_SERIAL = FALSE; 44 if ((N = get_argument ( argc, argv, "-parallel-serial"))) {44 if ((N = get_argument (*argc, argv, "-parallel-serial"))) { 45 45 if (PARALLEL_MANUAL) { 46 46 fprintf (stderr, "ERROR: cannot mix -parallel-manual and -parallel-serial\n"); … … 49 49 PARALLEL = TRUE; // -parallel-serial implies -parallel 50 50 PARALLEL_SERIAL = TRUE; 51 remove_argument (N, &argc, argv);51 remove_argument (N, argc, argv); 52 52 } 53 53 54 54 /* only add to existing regions */ 55 55 options.existing_regions = FALSE; 56 if ((N = get_argument ( argc, argv, "-existing-regions"))) {56 if ((N = get_argument (*argc, argv, "-existing-regions"))) { 57 57 options.existing_regions = TRUE; 58 remove_argument (N, &argc, argv);58 remove_argument (N, argc, argv); 59 59 } 60 60 /* only add to existing objects */ 61 61 options.only_match = FALSE; 62 if ((N = get_argument ( argc, argv, "-only-match"))) {62 if ((N = get_argument (*argc, argv, "-only-match"))) { 63 63 options.only_match = TRUE; 64 remove_argument (N, &argc, argv);64 remove_argument (N, argc, argv); 65 65 } 66 66 /* replace measurement, don't duplicate (ref/cat only) */ 67 67 options.replace = FALSE; 68 if ((N = get_argument ( argc, argv, "-replace"))) {68 if ((N = get_argument (*argc, argv, "-replace"))) { 69 69 options.replace = TRUE; 70 remove_argument (N, &argc, argv); 70 remove_argument (N, argc, argv); 71 } 72 /* override any header PHOTCODE values */ 73 options.photcode = 0; 74 if ((N = get_argument (*argc, argv, "-p"))) { 75 remove_argument (N, argc, argv); 76 options.photcode = GetPhotcodeCodebyName (argv[N]); 77 remove_argument (N, argc, argv); 78 } 79 if ((N = get_argument (*argc, argv, "-photcode"))) { 80 remove_argument (N, argc, argv); 81 options.photcode = GetPhotcodeCodebyName (argv[N]); 82 remove_argument (N, argc, argv); 71 83 } 72 84 73 85 /* extra error messages */ 74 86 VERBOSE = FALSE; 75 if ((N = get_argument ( argc, argv, "-v"))) {87 if ((N = get_argument (*argc, argv, "-v"))) { 76 88 VERBOSE = TRUE; 77 remove_argument (N, &argc, argv);89 remove_argument (N, argc, argv); 78 90 } 79 91 80 92 /* other addstar options which cannot be used in loadgalphot */ 81 options.photcode = 0;82 93 options.timeref = 0; 83 94 options.mosaic = FALSE; … … 95 106 DUMP = NULL; 96 107 97 if ( argc < 2) {108 if (*argc < 2) { 98 109 fprintf (stderr, "USAGE: loadgalphot [options] (fitsfile) [..more files]\n"); 99 110 exit (2); -
branches/eam_branches/ipp-20150625/Ohana/src/addstar/src/find_matches_galphot.c
r38553 r38983 199 199 REALLOCATE (catalog[0].galphot, GalPhot, Ngalphot); 200 200 201 catalog[0].sorted = FALSE;202 203 201 /* check if the catalog has changed? if no change, no need to write */ 204 202 catalog[0].objID = objID; // new max value, save on catalog close … … 206 204 catalog[0].Ngalphot = Ngalphot; 207 205 catalog[0].Nsecfilt_mem = Nave*Nsecfilt; 206 207 // we need to for 208 catalog[0].sorted = FALSE; 209 resort_catalog_galphot (catalog); 210 catalog[0].sorted = TRUE; 211 208 212 if (VERBOSE) fprintf (stderr, "Nstars, Nave, Ngalphot: %d "OFF_T_FMT" "OFF_T_FMT" ("OFF_T_FMT" matches)\n", Nstars, Nave, Ngalphot, Nmatch); 209 213 -
branches/eam_branches/ipp-20150625/Ohana/src/addstar/src/find_matches_starpar.c
r38711 r38983 200 200 REALLOCATE (catalog[0].starpar, StarPar, Nstarpar); 201 201 202 catalog[0].sorted = FALSE; 202 resort_catalog_starpar (catalog); 203 catalog[0].sorted = TRUE; 203 204 204 205 /* check if the catalog has changed? if no change, no need to write */ -
branches/eam_branches/ipp-20150625/Ohana/src/addstar/src/loadgalphot.c
r38618 r38983 15 15 SetSignals (); 16 16 options = ConfigInit (&argc, argv); 17 options = args_loadgalphot ( argc, argv, options);17 options = args_loadgalphot (&argc, argv, options); 18 18 19 19 // load the full sky description table (dvodb must exist) -
branches/eam_branches/ipp-20150625/Ohana/src/addstar/src/loadgalphot_fit2d.c
r38553 r38983 86 86 int N, i, j, nx, ny, K, k, n, Npt, status; 87 87 88 double mean, sigma, maxsigma; 88 double mean = 0.0; 89 double sigma = 0.0; 90 double maxsigma = 0.0; 89 91 90 92 float *x, *y, *z, *zf; -
branches/eam_branches/ipp-20150625/Ohana/src/addstar/src/loadgalphot_readstars.c
r38616 r38983 17 17 static float ZeroPt = 0; 18 18 19 GalPhot_Stars *loadgalphot_readstars (char *filename, int *nstars ) {19 GalPhot_Stars *loadgalphot_readstars (char *filename, int *nstars, AddstarClientOptions *options) { 20 20 21 21 // read in the full FITS files ('cause I don't have a partial read option) -
branches/eam_branches/ipp-20150625/Ohana/src/addstar/src/loadgalphot_table.c
r38553 r38983 6 6 int i, Nstars; 7 7 8 GalPhot_Stars *stars = loadgalphot_readstars (filename, &Nstars );8 GalPhot_Stars *stars = loadgalphot_readstars (filename, &Nstars, options); 9 9 10 10 // sort the stars by RA -
branches/eam_branches/ipp-20150625/Ohana/src/addstar/src/mkcmf.c
r38441 r38983 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, float zeroPt, float exptime); 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, int Nrad); 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 isStack = FALSE; 62 int isForcedWarp = FALSE; 63 int WriteXSRC = FALSE; 64 int WriteXFIT = FALSE; 65 int WriteXRAD = FALSE; 66 int WriteDETF = FALSE; 67 if ((N = get_argument (argc, argv, "-stack"))) { 68 remove_argument (N, &argc, argv); 69 WriteXSRC = WriteXFIT = WriteXRAD = WriteDETF = TRUE; 70 isStack = TRUE; 71 } 72 if ((N = get_argument (argc, argv, "-forcedwarp"))) { 73 remove_argument (N, &argc, argv); 74 WriteXSRC = WriteXFIT = WriteXRAD = WriteDETF = TRUE; 75 isForcedWarp = TRUE; 76 } 77 56 78 static char *photcode = "SIMTEST.r.Chip"; 57 79 if ((N = get_argument (argc, argv, "-photcode"))) { … … 76 98 } 77 99 100 static char *tess_id = "RINGS.V3"; 101 if ((N = get_argument (argc, argv, "-tess_id"))) { 102 remove_argument (N, &argc, argv); 103 tess_id = strcreate (argv[N]); 104 remove_argument (N, &argc, argv); 105 } 106 107 static char *skycell = "skycell.1133.081"; 108 if ((N = get_argument (argc, argv, "-skycell"))) { 109 remove_argument (N, &argc, argv); 110 skycell = strcreate (argv[N]); 111 remove_argument (N, &argc, argv); 112 } 113 78 114 static char *time = "00:00:00"; 79 115 if ((N = get_argument (argc, argv, "-time"))) { … … 83 119 } 84 120 85 char extname[80], exthead[80]; 121 char extname[80], exthead[80], extroot[80]; 122 strcpy (extroot, "Chip"); 86 123 strcpy (extname, "Chip.psf"); 87 124 strcpy (exthead, "Chip.hdr"); 88 if ((N = get_argument (argc, argv, "-extname"))) { 89 remove_argument (N, &argc, argv); 125 if ((N = get_argument (argc, argv, "-extroot"))) { 126 remove_argument (N, &argc, argv); 127 snprintf (extroot, 80, "%s", argv[N]); 90 128 snprintf (extname, 80, "%s.psf", argv[N]); 91 129 snprintf (exthead, 80, "%s.hdr", argv[N]); … … 206 244 coords.crpix2 = CRPIX2; 207 245 208 coords.cdelt1 = 0.25/3600.0; 209 coords.cdelt2 = 0.25/3600.0; 246 if (isStack || isForcedWarp) { 247 coords.cdelt1 = 0.25/3600.0; 248 coords.cdelt2 = 0.25/3600.0; 249 } else { 250 coords.cdelt1 = 0.257/3600.0; 251 coords.cdelt2 = 0.257/3600.0; 252 } 210 253 211 254 // load stars and generate complete output fields … … 280 323 gfits_print (&header, "IMNAXIS1", "%d", 1, (int)(Xmax)); 281 324 gfits_print (&header, "IMNAXIS2", "%d", 1, (int)(Ymax)); 325 gfits_print (&header, "NAXIS1", "%d", 1, (int)(Xmax)); 326 gfits_print (&header, "NAXIS2", "%d", 1, (int)(Ymax)); 282 327 283 328 gfits_modify (&header, "NSTARS", "%d", 1, Nstars); … … 289 334 gfits_modify (&header, "UTC-OBS", "%s", 1, time); 290 335 } 291 gfits_modify (&header, "ZERO_PT", "%lf", 1, ZERO_POINT); 336 gfits_modify (&header, "ZERO_PT", "%lf", 1, ZERO_POINT); // this is now not used 292 337 gfits_modify (&header, "EXPTIME", "%lf", 1, exptime); 293 338 gfits_modify (&header, "AIRMASS", "%lf", 1, airmass); … … 301 346 PutCoords (&coords, &header); 302 347 gfits_modify (&header, "EXTNAME", "%s", 1, exthead); 348 349 // various other fields needed to ipptopsps 350 gfits_modify (&header, "FWHM_MAJ", "%f", 1, FX*2.8); 351 gfits_modify (&header, "FWHM_MIN", "%f", 1, FY*2.8); 352 gfits_modify (&header, "MSKY_MN", "%f", 1, SKY); 353 gfits_modify (&header, "MSKY_SIG", "%f", 1, DSKY); 354 gfits_modify (&header, "ZPT_ERR", "%f", 1, 0.03); 355 gfits_modify (&header, "ANGLE", "%f", 1, 0.1); 356 gfits_modify (&header, "IQ_FW1", "%f", 1, FX*2.8); 357 gfits_modify (&header, "IQ_FW2", "%f", 1, FX*2.8); 358 gfits_modify (&header, "IQ_M2C", "%f", 1, FX*2.8); 359 gfits_modify (&header, "IQ_M2S", "%f", 1, FX*2.8); 360 gfits_modify (&header, "IQ_M3", "%f", 1, FX*2.8); 361 gfits_modify (&header, "IQ_M4", "%f", 1, FX*2.8); 362 gfits_modify (&header, "APMIFIT", "%f", 1, 0.1); 363 gfits_modify (&header, "DAPMIFIT", "%f", 1, 0.03); 364 gfits_modify (&header, "DETECTOR", "%s", 1, "CCID58-1-02a2"); 365 366 gfits_modify (&header, "HIERARCH DETEFF.MAGREF", "%f", 1, -5.0); 367 368 gfits_modify (&header, "PSFMODEL", "%s", 1, "PS_MODEL_PS1_V1"); 369 gfits_modify (&header, "AST_CDX", "%f", 1, 0.05); 370 gfits_modify (&header, "AST_CDY", "%f", 1, 0.04); 371 372 float zeroPt = 25.0 + 0.3*(drand48() - 0.5); 373 374 if (!isStack && !isForcedWarp) { 375 gfits_modify (&header, "HIERARCH DETREND.MASK", "%s", 1, "detref615.XY33.fits"); 376 gfits_modify (&header, "HIERARCH DETREND.DARK", "%s", 1, "GPC1.DARKTEST.norm.856.0.XY33.fits"); 377 gfits_modify (&header, "HIERARCH DETREND.FLAT", "%s", 1, "GPC1.FLATTEST.300.XY33.co.fits"); 378 gfits_modify (&header, "HIERARCH DETREND.NOISEMAP", "%s", 1, "GPC1.noisemap.norm.965.0.XY33.fits"); 379 gfits_modify (&header, "HIERARCH DETREND.NONLIN", "%s", 1, "linearity_data.XY33.fits"); 380 gfits_modify (&header, "HIERARCH DETREND.VIDEODARK", "%s", 1, "GPC1.VIDEODARK.979.0.XY33.fits"); 381 gfits_modify (&header, "ZPT_OBS", "%f", 1, zeroPt); 382 } 383 384 if (isStack) { 385 gfits_modify (&header, "HIERARCH FPA.ZP", "%f", 1, zeroPt); 386 gfits_modify (&header, "TESS_ID", "%s", 1, tess_id); 387 gfits_modify (&header, "SKYCELL", "%s", 1, skycell); 388 gfits_modify (&header, "ZPT_OBS", "%f", 1, zeroPt); 389 } 390 if (isForcedWarp) { 391 gfits_modify (&header, "HIERARCH FPA.FILTERID", "%s", 1, "r.00000"); // does this affect anything? I don't actually think so... 392 gfits_modify (&header, "HIERARCH FPA.ZP", "%f", 1, zeroPt); 393 gfits_modify (&header, "TESS_ID", "%s", 1, tess_id); 394 gfits_modify (&header, "SKYCELL", "%s", 1, skycell); 395 gfits_modify (&header, "PHOT_V", "%s", 1, "38100"); 396 } 303 397 304 398 int i; … … 380 474 gfits_fwrite_Theader (fits, ftable.header); 381 475 gfits_fwrite_table (fits, &ftable); 476 477 if (WriteXSRC) WriteXSRCtable (fits, extroot, X, Y, M, Flag, Nstars, zeroPt, exptime); 478 if (WriteXFIT) WriteXFITtable (fits, extroot, X, Y, M, Flag, Nstars); 479 480 if (WriteXRAD && isStack) WriteXRADtable (fits, extroot, X, Y, M, Flag, Nstars, 3); 481 if (WriteXRAD && isForcedWarp) WriteXRADtable (fits, extroot, X, Y, M, Flag, Nstars, 1); 482 483 if (WriteDETF) WriteDETFtable (fits, extroot, X, Y, M, Flag, Nstars); 484 382 485 fclose (fits); 383 486 … … 475 578 fSN = 1.0 / sqrt(flux); 476 579 580 if (ADDNOISE) { 581 X[i] += FX * fSN * rnd_gauss(0.0, 1.0); 582 Y[i] += FY * fSN * rnd_gauss(0.0, 1.0); 583 M[i] += fSN*rnd_gauss(0.0, 1.0); 584 flux = pow (10.0, -0.4*M[i]); 585 fSN = 1.0 / sqrt(flux); 586 } 587 477 588 stars[i].X = X[i]; 478 589 stars[i].Y = Y[i]; 479 590 stars[i].M = M[i]; 480 481 if (ADDNOISE) {482 stars[i].X += FX * fSN * rnd_gauss(0.0, 1.0);483 stars[i].Y += FY * fSN * rnd_gauss(0.0, 1.0);484 stars[i].M += fSN*rnd_gauss(0.0, 1.0);485 }486 591 487 592 stars[i].dX = FX * fSN; … … 519 624 fSN = 1.0 / sqrt(flux); 520 625 626 if (ADDNOISE) { 627 X[i] += FX * fSN * rnd_gauss(0.0, 1.0); 628 Y[i] += FY * fSN * rnd_gauss(0.0, 1.0); 629 M[i] += fSN*rnd_gauss(0.0, 1.0); 630 flux = pow (10.0, -0.4*M[i]); 631 fSN = 1.0 / sqrt(flux); 632 } 633 521 634 stars[i].X = X[i]; 522 635 stars[i].Y = Y[i]; 523 636 stars[i].M = M[i]; 524 525 if (ADDNOISE) {526 stars[i].X += FX * fSN * rnd_gauss(0.0, 1.0);527 stars[i].Y += FY * fSN * rnd_gauss(0.0, 1.0);528 stars[i].M += fSN*rnd_gauss(0.0, 1.0);529 }530 637 531 638 stars[i].dX = FX * fSN; … … 566 673 fSN = 1.0 / sqrt(flux); 567 674 675 if (ADDNOISE) { 676 X[i] += FX * fSN * rnd_gauss(0.0, 1.0); 677 Y[i] += FY * fSN * rnd_gauss(0.0, 1.0); 678 M[i] += fSN*rnd_gauss(0.0, 1.0); 679 flux = pow (10.0, -0.4*M[i]); 680 fSN = 1.0 / sqrt(flux); 681 } 682 568 683 stars[i].X = X[i]; 569 684 stars[i].Y = Y[i]; 570 685 stars[i].M = M[i]; 571 572 if (ADDNOISE) {573 stars[i].X += FX * fSN * rnd_gauss(0.0, 1.0);574 stars[i].Y += FY * fSN * rnd_gauss(0.0, 1.0);575 stars[i].M += fSN*rnd_gauss(0.0, 1.0);576 }577 686 578 687 stars[i].dX = FX * fSN; … … 615 724 fSN = 1.0 / sqrt(flux); 616 725 726 if (ADDNOISE) { 727 X[i] += FX * fSN * rnd_gauss(0.0, 1.0); 728 Y[i] += FY * fSN * rnd_gauss(0.0, 1.0); 729 M[i] += fSN*rnd_gauss(0.0, 1.0); 730 flux = pow (10.0, -0.4*M[i]); 731 fSN = 1.0 / sqrt(flux); 732 } 733 617 734 stars[i].X = X[i]; 618 735 stars[i].Y = Y[i]; 619 736 stars[i].M = M[i]; 620 621 if (ADDNOISE) {622 stars[i].X += FX * fSN * rnd_gauss(0.0, 1.0);623 stars[i].Y += FY * fSN * rnd_gauss(0.0, 1.0);624 stars[i].M += fSN*rnd_gauss(0.0, 1.0);625 }626 737 627 738 // randomly give poor PSFQF values … … 670 781 fSN = 1.0 / sqrt(flux); 671 782 783 if (ADDNOISE) { 784 X[i] += FX * fSN * rnd_gauss(0.0, 1.0); 785 Y[i] += FY * fSN * rnd_gauss(0.0, 1.0); 786 M[i] += fSN*rnd_gauss(0.0, 1.0); 787 flux = pow (10.0, -0.4*M[i]); 788 fSN = 1.0 / sqrt(flux); 789 } 790 672 791 stars[i].X = X[i]; 673 792 stars[i].Y = Y[i]; 674 793 stars[i].M = M[i]; 675 794 stars[i].Map = M[i] - 0.05; 676 677 if (ADDNOISE) {678 stars[i].X += FX * fSN * rnd_gauss(0.0, 1.0);679 stars[i].Y += FY * fSN * rnd_gauss(0.0, 1.0);680 stars[i].M += fSN*rnd_gauss(0.0, 1.0);681 }682 795 683 796 // randomly give poor PSFQF values … … 729 842 fSN = 1.0 / sqrt(flux); 730 843 844 if (ADDNOISE) { 845 X[i] += FX * fSN * rnd_gauss(0.0, 1.0); 846 Y[i] += FY * fSN * rnd_gauss(0.0, 1.0); 847 M[i] += fSN*rnd_gauss(0.0, 1.0); 848 flux = pow (10.0, -0.4*M[i]); 849 fSN = 1.0 / sqrt(flux); 850 } 851 731 852 stars[i].X = X[i]; 732 853 stars[i].Y = Y[i]; … … 740 861 stars[i].apFlux = pow(10.0, -0.4*stars[i].Map); 741 862 stars[i].apFluxErr = stars[i].apFlux * fSN; 742 743 if (ADDNOISE) {744 stars[i].X += FX * fSN * rnd_gauss(0.0, 1.0);745 stars[i].Y += FY * fSN * rnd_gauss(0.0, 1.0);746 stars[i].M += fSN*rnd_gauss(0.0, 1.0);747 }748 863 749 864 // randomly give poor PSFQF values … … 796 911 fSN = 1.0 / sqrt(flux); 797 912 913 if (ADDNOISE) { 914 X[i] += FX * fSN * rnd_gauss(0.0, 1.0); 915 Y[i] += FY * fSN * rnd_gauss(0.0, 1.0); 916 M[i] += fSN*rnd_gauss(0.0, 1.0); 917 flux = pow (10.0, -0.4*M[i]); 918 fSN = 1.0 / sqrt(flux); 919 } 920 798 921 stars[i].detID = i; 799 922 stars[i].X = X[i]; … … 803 926 804 927 stars[i].posangle = 10.0; 805 stars[i].pltscale = 0.25;928 stars[i].pltscale = coords.cdelt1; 806 929 807 930 stars[i].M = M[i]; … … 875 998 876 999 stars[i].nFrames = 1; 877 878 if (ADDNOISE) {879 stars[i].X += FX * fSN * rnd_gauss(0.0, 1.0);880 stars[i].Y += FY * fSN * rnd_gauss(0.0, 1.0);881 float Moff = fSN*rnd_gauss(0.0, 1.0);882 stars[i].M += Moff;883 stars[i].Map += Moff;884 stars[i].MapRaw += Moff;885 stars[i].Mcalib += Moff;886 }887 1000 } 888 1001 … … 904 1017 flux = pow (10.0, -0.4*M[i]); 905 1018 fSN = 1.0 / sqrt(flux); 1019 1020 if (ADDNOISE) { 1021 X[i] += FX * fSN * rnd_gauss(0.0, 1.0); 1022 Y[i] += FY * fSN * rnd_gauss(0.0, 1.0); 1023 M[i] += fSN*rnd_gauss(0.0, 1.0); 1024 flux = pow (10.0, -0.4*M[i]); 1025 fSN = 1.0 / sqrt(flux); 1026 } 906 1027 907 1028 stars[i].detID = i; … … 984 1105 985 1106 stars[i].nFrames = 1; 986 987 if (ADDNOISE) {988 stars[i].X += FX * fSN * rnd_gauss(0.0, 1.0);989 stars[i].Y += FY * fSN * rnd_gauss(0.0, 1.0);990 float Moff = fSN*rnd_gauss(0.0, 1.0);991 stars[i].M += Moff;992 stars[i].Map += Moff;993 stars[i].MapRaw += Moff;994 stars[i].Mcalib += Moff;995 }996 1107 } 997 1108 … … 1005 1116 CMF_PS1_V5_R2_Lensing *stars; 1006 1117 float flux, fSN; 1118 1119 // We want some fraction of the stars to have zero psfqfperfect so that we can test the 1120 // ForcedWarpMasked table construction, but we don't want things to be random so we 1121 // change every Nstars / modulo to zero 1122 int modulo = 0; 1123 if (BAD_PSFQF_FRAC > 0) { 1124 modulo = (int) (1.0 / BAD_PSFQF_FRAC); 1125 } 1007 1126 1008 1127 // XXX add gaussian-distributed noise based on counts … … 1013 1132 flux = pow (10.0, -0.4*M[i]); 1014 1133 fSN = 1.0 / sqrt(flux); 1134 1135 if (ADDNOISE) { 1136 X[i] += FX * fSN * rnd_gauss(0.0, 1.0); 1137 Y[i] += FY * fSN * rnd_gauss(0.0, 1.0); 1138 M[i] += fSN*rnd_gauss(0.0, 1.0); 1139 flux = pow (10.0, -0.4*M[i]); 1140 fSN = 1.0 / sqrt(flux); 1141 } 1015 1142 1016 1143 stars[i].detID = i; … … 1057 1184 stars[i].fwhmMin = FY*2.8; 1058 1185 1059 // randomly give poor PSFQF values 1060 if ((BAD_PSFQF_FRAC > 0.0) && (drand48() < BAD_PSFQF_FRAC)) { 1061 stars[i].psfQF = 0.25; 1062 stars[i].psfQFperf = 0.24; 1186 if (modulo && ((i+1) % modulo == 0)) { 1187 stars[i].psfQF = 0.0; 1188 stars[i].psfQFperf = 0.0; 1063 1189 } else { 1064 1190 stars[i].psfQF = PSFQUAL; … … 1103 1229 stars[i].E2_sh_psf = FX; 1104 1230 1231 stars[i].srcChipNum = 23; 1232 stars[i].srcChipX = X[i] + 10.0; 1233 stars[i].srcChipY = Y[i] + 10.0; 1234 1105 1235 stars[i].kronFlux = flux * 1.25; 1106 1236 stars[i].kronFluxErr = fSN * flux * 1.25; … … 1117 1247 1118 1248 stars[i].nFrames = 1; 1119 1120 if (ADDNOISE) {1121 stars[i].X += FX * fSN * rnd_gauss(0.0, 1.0);1122 stars[i].Y += FY * fSN * rnd_gauss(0.0, 1.0);1123 float Moff = fSN*rnd_gauss(0.0, 1.0);1124 stars[i].M += Moff;1125 stars[i].Map += Moff;1126 stars[i].MapRaw += Moff;1127 stars[i].Mcalib += Moff;1128 }1129 1249 } 1130 1250 … … 1133 1253 } 1134 1254 1255 int WriteXSRCtable (FILE *fits, char *extroot, double *X, double *Y, double *M, unsigned int *Flag, int Nstars, float zeroPt, float exptime) { 1256 1257 int i, j; 1258 Header header; 1259 FTable ftable; 1260 1261 char extdata[80]; 1262 snprintf (extdata, 80, "%s.xsrc", extroot); 1263 1264 /* Example Code to create a bintable */ 1265 { 1266 gfits_create_table_header (&header, "BINTABLE", extdata); 1267 1268 gfits_define_bintable_column (&header, "1J", "IPP_IDET" , "no comment", NULL, 1.0, FT_BZERO_INT32); // unsigned 1269 gfits_define_bintable_column (&header, "1E", "X_EXT" , "no comment", NULL, 1.0, 0.0); 1270 gfits_define_bintable_column (&header, "1E", "Y_EXT" , "no comment", NULL, 1.0, 0.0); 1271 gfits_define_bintable_column (&header, "1E", "X_EXT_SIG" , "no comment", NULL, 1.0, 0.0); 1272 gfits_define_bintable_column (&header, "1E", "Y_EXT_SIG" , "no comment", NULL, 1.0, 0.0); 1273 gfits_define_bintable_column (&header, "1E", "F25_ARATIO" , "no comment", NULL, 1.0, 0.0); 1274 gfits_define_bintable_column (&header, "1E", "F25_THETA" , "no comment", NULL, 1.0, 0.0); 1275 gfits_define_bintable_column (&header, "1E", "PETRO_MAG" , "no comment", NULL, 1.0, 0.0); 1276 gfits_define_bintable_column (&header, "1E", "PETRO_MAG_ERR" , "no comment", NULL, 1.0, 0.0); 1277 gfits_define_bintable_column (&header, "1E", "PETRO_RADIUS" , "no comment", NULL, 1.0, 0.0); 1278 gfits_define_bintable_column (&header, "1E", "PETRO_RADIUS_ERR" , "no comment", NULL, 1.0, 0.0); 1279 gfits_define_bintable_column (&header, "1E", "PETRO_RADIUS_50" , "no comment", NULL, 1.0, 0.0); 1280 gfits_define_bintable_column (&header, "1E", "PETRO_RADIUS_50_ERR", "no comment", NULL, 1.0, 0.0); 1281 gfits_define_bintable_column (&header, "1E", "PETRO_RADIUS_90" , "no comment", NULL, 1.0, 0.0); 1282 gfits_define_bintable_column (&header, "1E", "PETRO_RADIUS_90_ERR", "no comment", NULL, 1.0, 0.0); 1283 gfits_define_bintable_column (&header, "1E", "PETRO_FILL" , "no comment", NULL, 1.0, 0.0); 1284 gfits_define_bintable_column (&header, "1E", "HALF_LIGHT_RADIUS" , "no comment", NULL, 1.0, 0.0); 1285 gfits_define_bintable_column (&header, "1E", "G_RT" , "no comment", NULL, 1.0, 0.0); 1286 gfits_define_bintable_column (&header, "1E", "G_RA" , "no comment", NULL, 1.0, 0.0); 1287 gfits_define_bintable_column (&header, "1E", "G_S2" , "no comment", NULL, 1.0, 0.0); 1288 gfits_define_bintable_column (&header, "1E", "G_A" , "no comment", NULL, 1.0, 0.0); 1289 gfits_define_bintable_column (&header, "1E", "G_BUMPY" , "no comment", NULL, 1.0, 0.0); 1290 gfits_define_bintable_column (&header, "9E", "PROF_SB" , "no comment", NULL, 1.0, 0.0); 1291 gfits_define_bintable_column (&header, "9E", "PROF_FLUX" , "no comment", NULL, 1.0, 0.0); 1292 gfits_define_bintable_column (&header, "9E", "PROF_FILL" , "no comment", NULL, 1.0, 0.0); 1293 1294 // generate the output array that carries the data 1295 gfits_create_table (&header, &ftable); 1296 1297 // create intermediate storage arrays 1298 int *IPP_IDET ; ALLOCATE (IPP_IDET , int , Nstars); 1299 float *X_EXT ; ALLOCATE (X_EXT , float , Nstars); 1300 float *Y_EXT ; ALLOCATE (Y_EXT , float , Nstars); 1301 float *X_EXT_SIG ; ALLOCATE (X_EXT_SIG , float , Nstars); 1302 float *Y_EXT_SIG ; ALLOCATE (Y_EXT_SIG , float , Nstars); 1303 float *F25_ARATIO ; ALLOCATE (F25_ARATIO , float , Nstars); 1304 float *F25_THETA ; ALLOCATE (F25_THETA , float , Nstars); 1305 float *PETRO_MAG ; ALLOCATE (PETRO_MAG , float , Nstars); 1306 float *PETRO_MAG_ERR ; ALLOCATE (PETRO_MAG_ERR , float , Nstars); 1307 float *PETRO_RADIUS ; ALLOCATE (PETRO_RADIUS , float , Nstars); 1308 float *PETRO_RADIUS_ERR ; ALLOCATE (PETRO_RADIUS_ERR , float , Nstars); 1309 float *PETRO_RADIUS_50 ; ALLOCATE (PETRO_RADIUS_50 , float , Nstars); 1310 float *PETRO_RADIUS_50_ERR ; ALLOCATE (PETRO_RADIUS_50_ERR , float , Nstars); 1311 float *PETRO_RADIUS_90 ; ALLOCATE (PETRO_RADIUS_90 , float , Nstars); 1312 float *PETRO_RADIUS_90_ERR ; ALLOCATE (PETRO_RADIUS_90_ERR , float , Nstars); 1313 float *PETRO_FILL ; ALLOCATE (PETRO_FILL , float , Nstars); 1314 float *HALF_LIGHT_RADIUS ; ALLOCATE (HALF_LIGHT_RADIUS , float , Nstars); 1315 float *G_RT ; ALLOCATE (G_RT , float , Nstars); 1316 float *G_RA ; ALLOCATE (G_RA , float , Nstars); 1317 float *G_S2 ; ALLOCATE (G_S2 , float , Nstars); 1318 float *G_A ; ALLOCATE (G_A , float , Nstars); 1319 float *G_BUMPY ; ALLOCATE (G_BUMPY , float , Nstars); 1320 float *PROF_SB ; ALLOCATE (PROF_SB , float , 9*Nstars); 1321 float *PROF_FLUX ; ALLOCATE (PROF_FLUX , float , 9*Nstars); 1322 float *PROF_FILL ; ALLOCATE (PROF_FILL , float , 9*Nstars); 1323 1324 float magtime = 2.5*log10(exptime); 1325 1326 // assign the storage arrays 1327 for (i = 0; i < Nstars; i++) { 1328 float flux = pow (10.0, -0.4*M[i]); 1329 float fSN = 1.0 / sqrt(flux); 1330 1331 IPP_IDET [i] = i; 1332 X_EXT [i] = X[i]; 1333 Y_EXT [i] = Y[i]; 1334 X_EXT_SIG [i] = FX * fSN; 1335 Y_EXT_SIG [i] = FY * fSN; 1336 F25_ARATIO [i] = 0.9; 1337 F25_THETA [i] = 10.0; // seems to be in degrees in the cmfs 1338 PETRO_MAG [i] = M[i] + zeroPt + magtime; 1339 PETRO_MAG_ERR [i] = 1.0 / fSN; // note that the real cmfs have PETRO_MAG_ERR inverted 1340 PETRO_RADIUS [i] = 8.0; 1341 if (i == 2) { 1342 // This case is here to exercise a case for ipp2psps. 1343 PETRO_RADIUS_ERR [i] = NAN; 1344 } 1345 else { 1346 PETRO_RADIUS_ERR [i] = 0.1; 1347 } 1348 PETRO_RADIUS_50 [i] = 4.0; 1349 PETRO_RADIUS_50_ERR [i] = 0.1; 1350 PETRO_RADIUS_90 [i] = 12.0; 1351 PETRO_RADIUS_90_ERR [i] = 0.1; 1352 PETRO_FILL [i] = 0.95; 1353 HALF_LIGHT_RADIUS [i] = 6.0; 1354 G_RT [i] = 1.0; 1355 G_RA [i] = 1.0; 1356 G_S2 [i] = 1.0; 1357 G_A [i] = 1.0; 1358 G_BUMPY [i] = 1.0; 1359 for (j = 0; j < 9; j++) { 1360 PROF_SB [j + 9*i] = flux / 10.0; 1361 PROF_FLUX [j + 9*i] = flux; 1362 PROF_FILL [j + 9*i] = 0.9; 1363 } 1364 } 1365 1366 // set the table data 1367 gfits_set_bintable_column (&header, &ftable, "IPP_IDET" , IPP_IDET , Nstars); 1368 gfits_set_bintable_column (&header, &ftable, "X_EXT" , X_EXT , Nstars); 1369 gfits_set_bintable_column (&header, &ftable, "Y_EXT" , Y_EXT , Nstars); 1370 gfits_set_bintable_column (&header, &ftable, "X_EXT_SIG" , X_EXT_SIG , Nstars); 1371 gfits_set_bintable_column (&header, &ftable, "Y_EXT_SIG" , Y_EXT_SIG , Nstars); 1372 gfits_set_bintable_column (&header, &ftable, "F25_ARATIO" , F25_ARATIO , Nstars); 1373 gfits_set_bintable_column (&header, &ftable, "F25_THETA" , F25_THETA , Nstars); 1374 gfits_set_bintable_column (&header, &ftable, "PETRO_MAG" , PETRO_MAG , Nstars); 1375 gfits_set_bintable_column (&header, &ftable, "PETRO_MAG_ERR" , PETRO_MAG_ERR , Nstars); 1376 gfits_set_bintable_column (&header, &ftable, "PETRO_RADIUS" , PETRO_RADIUS , Nstars); 1377 gfits_set_bintable_column (&header, &ftable, "PETRO_RADIUS_ERR" , PETRO_RADIUS_ERR , Nstars); 1378 gfits_set_bintable_column (&header, &ftable, "PETRO_RADIUS_50" , PETRO_RADIUS_50 , Nstars); 1379 gfits_set_bintable_column (&header, &ftable, "PETRO_RADIUS_50_ERR", PETRO_RADIUS_50_ERR , Nstars); 1380 gfits_set_bintable_column (&header, &ftable, "PETRO_RADIUS_90" , PETRO_RADIUS_90 , Nstars); 1381 gfits_set_bintable_column (&header, &ftable, "PETRO_RADIUS_90_ERR", PETRO_RADIUS_90_ERR , Nstars); 1382 gfits_set_bintable_column (&header, &ftable, "PETRO_FILL" , PETRO_FILL , Nstars); 1383 gfits_set_bintable_column (&header, &ftable, "HALF_LIGHT_RADIUS" , HALF_LIGHT_RADIUS , Nstars); 1384 gfits_set_bintable_column (&header, &ftable, "G_RT" , G_RT , Nstars); 1385 gfits_set_bintable_column (&header, &ftable, "G_RA" , G_RA , Nstars); 1386 gfits_set_bintable_column (&header, &ftable, "G_S2" , G_S2 , Nstars); 1387 gfits_set_bintable_column (&header, &ftable, "G_A" , G_A , Nstars); 1388 gfits_set_bintable_column (&header, &ftable, "G_BUMPY" , G_BUMPY , Nstars); 1389 gfits_set_bintable_column (&header, &ftable, "PROF_SB" , PROF_SB , Nstars); 1390 gfits_set_bintable_column (&header, &ftable, "PROF_FLUX" , PROF_FLUX , Nstars); 1391 gfits_set_bintable_column (&header, &ftable, "PROF_FILL" , PROF_FILL , Nstars); 1392 } 1393 1394 gfits_fwrite_Theader (fits, &header); 1395 gfits_fwrite_table (fits, &ftable); 1396 gfits_free_header (&header); 1397 gfits_free_table (&ftable); 1398 1399 return TRUE; 1400 } 1401 1402 int WriteXFITtable (FILE *fits, char *extroot, double *X, double *Y, double *M, unsigned int *Flag, int Nstars) { 1403 1404 int i; 1405 Header header; 1406 FTable ftable; 1407 1408 char extdata[80]; 1409 snprintf (extdata, 80, "%s.xfit", extroot); 1410 1411 /* Example Code to create a bintable */ 1412 { 1413 gfits_create_table_header (&header, "BINTABLE", extdata); 1414 1415 // define the table layout 1416 gfits_define_bintable_column (&header, "J", "IPP_IDET" , "no comment", NULL, 1.0, FT_BZERO_INT32); // unsigned 1417 gfits_define_bintable_column (&header, "E", "X_EXT" , "no comment", NULL, 1.0, 0.0); 1418 gfits_define_bintable_column (&header, "E", "Y_EXT" , "no comment", NULL, 1.0, 0.0); 1419 gfits_define_bintable_column (&header, "E", "X_EXT_SIG" , "no comment", NULL, 1.0, 0.0); 1420 gfits_define_bintable_column (&header, "E", "Y_EXT_SIG" , "no comment", NULL, 1.0, 0.0); 1421 gfits_define_bintable_column (&header, "E", "SKY_EXT" , "no comment", NULL, 1.0, 0.0); 1422 gfits_define_bintable_column (&header, "E", "RA_EXT" , "no comment", NULL, 1.0, 0.0); 1423 gfits_define_bintable_column (&header, "E", "DEC_EXT" , "no comment", NULL, 1.0, 0.0); 1424 gfits_define_bintable_column (&header, "E", "EXT_INST_MAG" , "no comment", NULL, 1.0, 0.0); 1425 gfits_define_bintable_column (&header, "E", "EXT_INST_MAG_SIG" , "no comment", NULL, 1.0, 0.0); 1426 gfits_define_bintable_column (&header, "E", "EXT_CHISQ" , "no comment", NULL, 1.0, 0.0); 1427 gfits_define_bintable_column (&header, "J", "EXT_NDOF" , "no comment", NULL, 1.0, FT_BZERO_INT32); // unsigned 1428 gfits_define_bintable_column (&header, "J", "EXT_MODEL_TYPE" , "no comment", NULL, 1.0, FT_BZERO_INT32); // unsigned 1429 gfits_define_bintable_column (&header, "I", "EXT_FLAGS" , "no comment", NULL, 1.0, FT_BZERO_INT16); // unsigned 1430 gfits_define_bintable_column (&header, "E", "PSF_INST_MAG" , "no comment", NULL, 1.0, 0.0); 1431 gfits_define_bintable_column (&header, "E", "AP_MAG" , "no comment", NULL, 1.0, 0.0); 1432 gfits_define_bintable_column (&header, "E", "KRON_MAG" , "no comment", NULL, 1.0, 0.0); 1433 gfits_define_bintable_column (&header, "J", "NPARAMS" , "no comment", NULL, 1.0, FT_BZERO_INT32); // unsigned 1434 gfits_define_bintable_column (&header, "15A", "MODEL_TYPE" , "no comment", NULL, 1.0, 0.0); 1435 gfits_define_bintable_column (&header, "E", "EXT_WIDTH_MAJ" , "no comment", NULL, 1.0, 0.0); 1436 gfits_define_bintable_column (&header, "E", "EXT_WIDTH_MIN" , "no comment", NULL, 1.0, 0.0); 1437 gfits_define_bintable_column (&header, "E", "EXT_THETA" , "no comment", NULL, 1.0, 0.0); 1438 gfits_define_bintable_column (&header, "E", "EXT_WIDTH_MAJ_ERR", "no comment", NULL, 1.0, 0.0); 1439 gfits_define_bintable_column (&header, "E", "EXT_WIDTH_MIN_ERR", "no comment", NULL, 1.0, 0.0); 1440 gfits_define_bintable_column (&header, "E", "EXT_THETA_ERR" , "no comment", NULL, 1.0, 0.0); 1441 gfits_define_bintable_column (&header, "E", "EXT_PAR_07" , "no comment", NULL, 1.0, 0.0); 1442 1443 // generate the output array that carries the data 1444 gfits_create_table (&header, &ftable); 1445 1446 // create intermediate storage arrays 1447 int *IPP_IDET ; ALLOCATE (IPP_IDET , int , Nstars); 1448 float *X_EXT ; ALLOCATE (X_EXT , float , Nstars); 1449 float *Y_EXT ; ALLOCATE (Y_EXT , float , Nstars); 1450 float *X_EXT_SIG ; ALLOCATE (X_EXT_SIG , float , Nstars); 1451 float *Y_EXT_SIG ; ALLOCATE (Y_EXT_SIG , float , Nstars); 1452 float *SKY_EXT ; ALLOCATE (SKY_EXT , float , Nstars); 1453 float *RA_EXT ; ALLOCATE (RA_EXT , float , Nstars); 1454 float *DEC_EXT ; ALLOCATE (DEC_EXT , float , Nstars); 1455 float *EXT_INST_MAG ; ALLOCATE (EXT_INST_MAG , float , Nstars); 1456 float *EXT_INST_MAG_SIG ; ALLOCATE (EXT_INST_MAG_SIG , float , Nstars); 1457 float *EXT_CHISQ ; ALLOCATE (EXT_CHISQ , float , Nstars); 1458 int *EXT_NDOF ; ALLOCATE (EXT_NDOF , int , Nstars); 1459 int *EXT_MODEL_TYPE ; ALLOCATE (EXT_MODEL_TYPE , int , Nstars); 1460 short *EXT_FLAGS ; ALLOCATE (EXT_FLAGS , short , Nstars); 1461 float *PSF_INST_MAG ; ALLOCATE (PSF_INST_MAG , float , Nstars); 1462 float *AP_MAG ; ALLOCATE (AP_MAG , float , Nstars); 1463 float *KRON_MAG ; ALLOCATE (KRON_MAG , float , Nstars); 1464 int *NPARAMS ; ALLOCATE (NPARAMS , int , Nstars); 1465 char *MODEL_TYPE ; ALLOCATE (MODEL_TYPE , char , Nstars*15); 1466 float *EXT_WIDTH_MAJ ; ALLOCATE (EXT_WIDTH_MAJ , float , Nstars); 1467 float *EXT_WIDTH_MIN ; ALLOCATE (EXT_WIDTH_MIN , float , Nstars); 1468 float *EXT_THETA ; ALLOCATE (EXT_THETA , float , Nstars); 1469 float *EXT_WIDTH_MAJ_ERR ; ALLOCATE (EXT_WIDTH_MAJ_ERR, float , Nstars); 1470 float *EXT_WIDTH_MIN_ERR ; ALLOCATE (EXT_WIDTH_MIN_ERR, float , Nstars); 1471 float *EXT_THETA_ERR ; ALLOCATE (EXT_THETA_ERR , float , Nstars); 1472 float *EXT_PAR_07 ; ALLOCATE (EXT_PAR_07 , float , Nstars); 1473 1474 // assign the storage arrays 1475 for (i = 0; i < Nstars; i++) { 1476 float flux = pow (10.0, -0.4*M[i]); 1477 float fSN = 1.0 / sqrt(flux); 1478 1479 double ra, dec; 1480 XY_to_RD (&ra, &dec, X[i], Y[i], &coords); 1481 1482 IPP_IDET [i] = i; 1483 X_EXT [i] = X[i]; 1484 Y_EXT [i] = Y[i]; 1485 X_EXT_SIG [i] = FX * fSN; 1486 Y_EXT_SIG [i] = FY * fSN; 1487 SKY_EXT [i] = 0.1; 1488 RA_EXT [i] = ra; 1489 DEC_EXT [i] = dec; 1490 EXT_INST_MAG [i] = M[i]; 1491 EXT_INST_MAG_SIG [i] = fSN; 1492 EXT_CHISQ [i] = 1.0; 1493 EXT_NDOF [i] = 10; 1494 EXT_MODEL_TYPE [i] = -1; 1495 EXT_FLAGS [i] = 0x0010; 1496 PSF_INST_MAG [i] = M[i]; 1497 AP_MAG [i] = M[i]; 1498 KRON_MAG [i] = M[i]; 1499 NPARAMS [i] = 7; 1500 EXT_WIDTH_MAJ [i] = FX*2.8; 1501 EXT_WIDTH_MIN [i] = FY*2.8; 1502 EXT_THETA [i] = 0.57; 1503 EXT_WIDTH_MAJ_ERR[i] = FX*0.28; 1504 EXT_WIDTH_MIN_ERR[i] = FY*0.28; 1505 EXT_THETA_ERR [i] = 0.0057; 1506 EXT_PAR_07 [i] = NAN; 1507 1508 strcpy (&MODEL_TYPE[15*i], "PS_MODEL_DEV"); 1509 } 1510 1511 // set the table data 1512 gfits_set_bintable_column (&header, &ftable, "IPP_IDET" , IPP_IDET , Nstars); 1513 gfits_set_bintable_column (&header, &ftable, "X_EXT" , X_EXT , Nstars); 1514 gfits_set_bintable_column (&header, &ftable, "Y_EXT" , Y_EXT , Nstars); 1515 gfits_set_bintable_column (&header, &ftable, "X_EXT_SIG" , X_EXT_SIG , Nstars); 1516 gfits_set_bintable_column (&header, &ftable, "Y_EXT_SIG" , Y_EXT_SIG , Nstars); 1517 gfits_set_bintable_column (&header, &ftable, "SKY_EXT" , SKY_EXT , Nstars); 1518 gfits_set_bintable_column (&header, &ftable, "RA_EXT" , RA_EXT , Nstars); 1519 gfits_set_bintable_column (&header, &ftable, "DEC_EXT" , DEC_EXT , Nstars); 1520 gfits_set_bintable_column (&header, &ftable, "EXT_INST_MAG" , EXT_INST_MAG , Nstars); 1521 gfits_set_bintable_column (&header, &ftable, "EXT_INST_MAG_SIG" , EXT_INST_MAG_SIG , Nstars); 1522 gfits_set_bintable_column (&header, &ftable, "EXT_CHISQ" , EXT_CHISQ , Nstars); 1523 gfits_set_bintable_column (&header, &ftable, "EXT_NDOF" , EXT_NDOF , Nstars); 1524 gfits_set_bintable_column (&header, &ftable, "EXT_MODEL_TYPE" , EXT_MODEL_TYPE , Nstars); 1525 gfits_set_bintable_column (&header, &ftable, "EXT_FLAGS" , EXT_FLAGS , Nstars); 1526 gfits_set_bintable_column (&header, &ftable, "PSF_INST_MAG" , PSF_INST_MAG , Nstars); 1527 gfits_set_bintable_column (&header, &ftable, "AP_MAG" , AP_MAG , Nstars); 1528 gfits_set_bintable_column (&header, &ftable, "KRON_MAG" , KRON_MAG , Nstars); 1529 gfits_set_bintable_column (&header, &ftable, "NPARAMS" , NPARAMS , Nstars); 1530 gfits_set_bintable_column (&header, &ftable, "MODEL_TYPE" , MODEL_TYPE , Nstars); 1531 gfits_set_bintable_column (&header, &ftable, "EXT_WIDTH_MAJ" , EXT_WIDTH_MAJ , Nstars); 1532 gfits_set_bintable_column (&header, &ftable, "EXT_WIDTH_MIN" , EXT_WIDTH_MIN , Nstars); 1533 gfits_set_bintable_column (&header, &ftable, "EXT_THETA" , EXT_THETA , Nstars); 1534 gfits_set_bintable_column (&header, &ftable, "EXT_WIDTH_MAJ_ERR", EXT_WIDTH_MAJ_ERR, Nstars); 1535 gfits_set_bintable_column (&header, &ftable, "EXT_WIDTH_MIN_ERR", EXT_WIDTH_MIN_ERR, Nstars); 1536 gfits_set_bintable_column (&header, &ftable, "EXT_THETA_ERR" , EXT_THETA_ERR , Nstars); 1537 gfits_set_bintable_column (&header, &ftable, "EXT_PAR_07" , EXT_PAR_07 , Nstars); 1538 } 1539 /**/ 1540 1541 gfits_fwrite_Theader (fits, &header); 1542 gfits_fwrite_table (fits, &ftable); 1543 gfits_free_header (&header); 1544 gfits_free_table (&ftable); 1545 1546 return TRUE; 1547 } 1548 1549 static float psfFWHM[3] = {4.8, 6.0, 8.0}; 1550 1551 int WriteXRADtable (FILE *fits, char *extroot, double *X, double *Y, double *M, unsigned int *Flag, int Nstars, int Nrad) { 1552 1553 int i, j, k; 1554 Header header; 1555 FTable ftable; 1556 1557 char extdata[80]; 1558 snprintf (extdata, 80, "%s.xrad", extroot); 1559 1560 /* Example Code to create a bintable */ 1561 { 1562 gfits_create_table_header (&header, "BINTABLE", extdata); 1563 1564 // define the table layout 1565 gfits_define_bintable_column (&header, "J", "IPP_IDET" , "no comment", NULL, 1.0, FT_BZERO_INT32); // unsigned 1566 gfits_define_bintable_column (&header, "E", "X_APER" , "no comment", NULL, 1.0, 0.0); 1567 gfits_define_bintable_column (&header, "E", "Y_APER" , "no comment", NULL, 1.0, 0.0); 1568 gfits_define_bintable_column (&header, "E", "PSF_FWHM" , "no comment", NULL, 1.0, 0.0); 1569 gfits_define_bintable_column (&header, "9E", "APER_FLUX" , "no comment", NULL, 1.0, 0.0); 1570 gfits_define_bintable_column (&header, "9E", "APER_FLUX_ERR" , "no comment", NULL, 1.0, 0.0); 1571 gfits_define_bintable_column (&header, "9E", "APER_FLUX_STDEV" , "no comment", NULL, 1.0, 0.0); 1572 gfits_define_bintable_column (&header, "9E", "APER_FILL" , "no comment", NULL, 1.0, 0.0); 1573 1574 // generate the output array that carries the data 1575 gfits_create_table (&header, &ftable); 1576 1577 // create intermediate storage arrays 1578 int *IPP_IDET ; ALLOCATE (IPP_IDET , int , Nrad*Nstars); 1579 float *X_APER ; ALLOCATE (X_APER , float , Nrad*Nstars); 1580 float *Y_APER ; ALLOCATE (Y_APER , float , Nrad*Nstars); 1581 float *PSF_FWHM ; ALLOCATE (PSF_FWHM , float , Nrad*Nstars); 1582 float *APER_FLUX ; ALLOCATE (APER_FLUX , float , Nrad*Nstars*9); 1583 float *APER_FLUX_ERR ; ALLOCATE (APER_FLUX_ERR , float , Nrad*Nstars*9); 1584 float *APER_FLUX_STDEV ; ALLOCATE (APER_FLUX_STDEV , float , Nrad*Nstars*9); 1585 float *APER_FILL ; ALLOCATE (APER_FILL , float , Nrad*Nstars*9); 1586 1587 // assign the storage arrays 1588 for (i = 0; i < Nstars; i++) { 1589 float flux = pow (10.0, -0.4*M[i]); 1590 // float fSN = 1.0 / sqrt(flux); 1591 1592 for (k = 0; k < Nrad; k++) { 1593 int N = Nrad*i + k; 1594 IPP_IDET [N] = i; 1595 X_APER [N] = X[i]; 1596 Y_APER [N] = Y[i]; 1597 PSF_FWHM [N] = psfFWHM[k]; 1598 for (j = 0; j < 9; j ++) { 1599 float Flux = flux*(1.0 + 0.02*j - 0.2); 1600 APER_FLUX [j + 9*N] = Flux; 1601 APER_FLUX_ERR [j + 9*N] = sqrt(Flux); 1602 APER_FLUX_STDEV[j + 9*N] = sqrt(Flux*1.1); 1603 APER_FILL [j + 9*N] = 0.9; 1604 } 1605 } 1606 } 1607 1608 // set the table data 1609 gfits_set_bintable_column (&header, &ftable, "IPP_IDET" , IPP_IDET , Nrad*Nstars); 1610 gfits_set_bintable_column (&header, &ftable, "X_APER" , X_APER , Nrad*Nstars); 1611 gfits_set_bintable_column (&header, &ftable, "Y_APER" , Y_APER , Nrad*Nstars); 1612 gfits_set_bintable_column (&header, &ftable, "PSF_FWHM" , PSF_FWHM , Nrad*Nstars); 1613 gfits_set_bintable_column (&header, &ftable, "APER_FLUX" , APER_FLUX , Nrad*Nstars); 1614 gfits_set_bintable_column (&header, &ftable, "APER_FLUX_ERR" , APER_FLUX_ERR , Nrad*Nstars); 1615 gfits_set_bintable_column (&header, &ftable, "APER_FLUX_STDEV" , APER_FLUX_STDEV , Nrad*Nstars); 1616 gfits_set_bintable_column (&header, &ftable, "APER_FILL" , APER_FILL , Nrad*Nstars); 1617 } 1618 /**/ 1619 1620 gfits_fwrite_Theader (fits, &header); 1621 gfits_fwrite_table (fits, &ftable); 1622 gfits_free_header (&header); 1623 gfits_free_table (&ftable); 1624 1625 return TRUE; 1626 } 1627 1628 int WriteDETFtable (FILE *fits, char *extroot, double *X, double *Y, double *M, unsigned int *Flag, int Nstars) { 1629 return TRUE; 1630 } 1631 1632 int WriteDummyTable (FILE *fits) { 1633 1634 Header header; 1635 FTable ftable; 1636 1637 /* Example Code to create a bintable 1638 { 1639 gfits_create_table_header (&header, "BINTABLE", extroot); 1640 1641 // define the table layout 1642 gfits_define_bintable_column (&header, "D", "NAME", "comment", NULL, 1.0, 0.0); 1643 gfits_define_bintable_column (&header, "E", "NAME", "comment", NULL, 1.0, 0.0); 1644 gfits_define_bintable_column (&header, "J", "NAME", "comment", NULL, 1.0, FT_BZERO_INT32); // unsigned 1645 gfits_define_bintable_column (&header, "I", "NAME", "comment", NULL, 1.0, FT_BZERO_INT16); // unsigned 1646 1647 // generate the output array that carries the data 1648 gfits_create_table (&header, &ftable); 1649 1650 // create intermediate storage arrays 1651 double *R; ALLOCATE (R, double, Nvalue); 1652 float *M; ALLOCATE (M, float , Nvalue); 1653 int *I; ALLOCATE (I, int , Nvalue); 1654 short *P; ALLOCATE (P, short , Nvalue); 1655 1656 // assign the storage arrays 1657 for (i = 0; Nvalue; i++) { 1658 R[i] = value; 1659 M[i] = value; 1660 I[i] = value; 1661 P[i] = value; 1662 } 1663 1664 // set the table data 1665 gfits_set_bintable_column (&header, &ftable, "NAME", R, catalog->Nmeasure); 1666 gfits_set_bintable_column (&header, &ftable, "NAME", M, catalog->Nmeasure); 1667 gfits_set_bintable_column (&header, &ftable, "NAME", I, catalog->Nmeasure); 1668 gfits_set_bintable_column (&header, &ftable, "NAME", P, catalog->Nmeasure); 1669 } 1670 */ 1671 1672 gfits_fwrite_Theader (fits, &header); 1673 gfits_fwrite_table (fits, &ftable); 1674 gfits_free_header (&header); 1675 gfits_free_table (&ftable); 1676 1677 return TRUE; 1678 } 1679 -
branches/eam_branches/ipp-20150625/Ohana/src/addstar/src/resort_catalog.c
r38744 r38983 2 2 3 3 void SortAveMatch (off_t *MEAS, off_t *AVE, off_t N); 4 void resort_catalog_measure (Catalog *catalog);5 void resort_catalog_lensing (Catalog *catalog);6 void resort_catalog_starpar (Catalog *catalog);7 8 void resort_catalog_old (Catalog *catalog) {9 10 off_t *next_meas, *next_lens;11 off_t Naves, Nmeas, Nlens;12 13 if (catalog[0].sorted == TRUE) return;14 15 INITTIME;16 17 /* internal counters */18 Nmeas = catalog[0].Nmeasure;19 Nlens = catalog[0].Nlensing;20 Naves = catalog[0].Naverage;21 22 /* set up pointers for linked list of measure, missing */23 next_meas = build_measure_links (catalog[0].average, Naves, catalog[0].measure, Nmeas);24 next_lens = build_lensing_links (catalog[0].average, Naves, catalog[0].lensing, Nlens);25 26 catalog[0].sorted = TRUE;27 catalog[0].measure = sort_measure (catalog[0].average, Naves, catalog[0].measure, Nmeas, next_meas);28 catalog[0].lensing = sort_lensing (catalog[0].average, Naves, catalog[0].lensing, Nlens, next_lens);29 30 MARKTIME (" match time %9.4f sec for %7lld measures, %6lld average\n", dtime, (long long) Nmeas, (long long) Naves);31 32 return;33 }34 4 35 5 void resort_catalog (Catalog *catalog) { … … 40 10 resort_catalog_lensing (catalog); 41 11 resort_catalog_starpar (catalog); 12 resort_catalog_galphot (catalog); 13 catalog[0].sorted = TRUE; 42 14 } 43 15 … … 83 55 // earlier formats did not carry the objID or catID, so they are not available (we could assign on load, but we don't) 84 56 myAssert(average[averageSeq[i]].catID == measure[measureSeq[i]].catID, "object / detection mismatch"); 57 myAssert (average[averageSeq[i]].objID == measure[measureSeq[i]].objID, "object ID mismatch?"); 58 # if (0) 85 59 // myAssert(average[averageSeq[i]].objID == measure[measureSeq[i]].objID, "object / detection mismatch"); 86 60 … … 107 81 } 108 82 } 83 # endif 109 84 # if (0) 110 85 // for reasons I do not understand, the mini dvodbs generated on stsci1X had a handful of detections with an inconsistency between averef and objID. … … 193 168 // MARKTIME(" match time %9.4f sec for %7lld measures, %6lld average\n", dtime, (long long) Nmeasure, (long long) Naverage); 194 169 195 catalog[0].sorted = TRUE;196 197 170 FREE (measureSeq); 198 171 FREE (averageSeq); … … 246 219 } 247 220 248 // check that averageSeq is now in order249 // for (i = 1; i < Nlensing; i++) {250 // if (averageSeq[i] < averageSeq[i-1]) {251 // fprintf (stderr, "%d ", (int) i);252 // }253 // }254 // fprintf (stderr, "\n");255 256 221 SortAveMatch(lensingSeq, averageSeq, Nlensing); 257 // MARKTIME("sort : %f sec\n", dtime);258 259 // check that averageSeq is now in order260 // for (i = 1; i < Nlensing; i++) {261 // if (averageSeq[i] < averageSeq[i-1]) {262 // fprintf (stderr, "%d ", (int) i);263 // }264 // }265 // fprintf (stderr, "\n");266 222 267 223 // copy the lensing entries in the sorted order … … 271 227 lensingTMP[i] = lensing[j]; 272 228 } 273 // MARKTIME("assign lensing : %f sec\n", dtime);274 229 275 230 // update the values of average.lensingOffset and average.Nlensing … … 290 245 N++; 291 246 } 292 // N++;293 247 average[currentAve].Nlensing = N; 294 // MARKTIME("update Nlensing : %f sec\n", dtime);295 248 296 249 int NlensingTotal = 0; … … 318 271 fprintf (stderr, "ERROR: catalog %s has an invalid Nlensing\n", catalog[0].filename); 319 272 } 320 321 // MARKTIME(" match time %9.4f sec for %7lld lensings, %6lld average\n", dtime, (long long) Nlensing, (long long) Naverage);322 323 catalog[0].sorted = TRUE;324 273 325 274 FREE (lensingSeq); … … 374 323 } 375 324 376 // check that averageSeq is now in order377 // for (i = 1; i < Nstarpar; i++) {378 // if (averageSeq[i] < averageSeq[i-1]) {379 // fprintf (stderr, "%d ", (int) i);380 // }381 // }382 // fprintf (stderr, "\n");383 384 325 SortAveMatch(starparSeq, averageSeq, Nstarpar); 385 // MARKTIME("sort : %f sec\n", dtime);386 387 // check that averageSeq is now in order388 // for (i = 1; i < Nstarpar; i++) {389 // if (averageSeq[i] < averageSeq[i-1]) {390 // fprintf (stderr, "%d ", (int) i);391 // }392 // }393 // fprintf (stderr, "\n");394 326 395 327 // copy the starpar entries in the sorted order … … 399 331 starparTMP[i] = starpar[j]; 400 332 } 401 // MARKTIME("assign starpar : %f sec\n", dtime);402 333 403 334 // update the values of average.starparOffset and average.Nstarpar … … 418 349 N++; 419 350 } 420 // N++;421 351 average[currentAve].Nstarpar = N; 422 // MARKTIME("update Nstarpar : %f sec\n", dtime);423 352 424 353 int NstarparTotal = 0; … … 447 376 } 448 377 449 // MARKTIME(" match time %9.4f sec for %7lld starpars, %6lld average\n", dtime, (long long) Nstarpar, (long long) Naverage);450 451 catalog[0].sorted = TRUE;452 453 378 FREE (starparSeq); 379 FREE (averageSeq); 380 381 return; 382 } 383 384 void resort_catalog_galphot (Catalog *catalog) { 385 386 off_t Naverage, Ngalphot; 387 GalPhot *galphot; 388 Average *average; 389 off_t i, j, N, currentAve; 390 391 off_t *galphotSeq = NULL; 392 off_t *averageSeq = NULL; 393 GalPhot *galphotTMP = NULL; 394 395 // struct timeval start, stop; 396 // gettimeofday (&start, NULL); 397 398 /* internal counters */ 399 Ngalphot = catalog[0].Ngalphot; 400 Naverage = catalog[0].Naverage; 401 402 if (!Ngalphot) return; 403 404 galphot = catalog[0].galphot; 405 average = catalog[0].average; 406 407 // we have a table of average objects and an unsorted table of measurements. each measurement 408 // has a reference to the average object sequence (as well as an ID) 409 // galphot[i].averef -> average[averef] 410 // galphot[i].objID = average[averef].objID 411 // galphot[i].catID = average[averef].catID 412 413 // we want a sorted galphot array with all averef entries in sequence 414 415 ALLOCATE (galphotSeq, off_t, Ngalphot); 416 ALLOCATE (averageSeq, off_t, Ngalphot); 417 418 for (i = 0; i < Ngalphot; i++) { 419 galphotSeq[i] = i; 420 averageSeq[i] = galphot[i].averef; 421 422 if (catalog[0].catformat >= DVO_FORMAT_PS1_V1) { 423 // earlier formats did not carry the objID or catID, so they are not available (we could assign on load, but we don't) 424 myAssert(average[averageSeq[i]].catID == galphot[galphotSeq[i]].catID, "object / detection mismatch"); 425 myAssert(average[averageSeq[i]].objID == galphot[galphotSeq[i]].objID, "object / detection mismatch"); 426 } 427 } 428 429 SortAveMatch(galphotSeq, averageSeq, Ngalphot); 430 431 // copy the galphot entries in the sorted order 432 ALLOCATE (galphotTMP, GalPhot, Ngalphot); 433 for (i = 0; i < Ngalphot; i++) { 434 j = galphotSeq[i]; 435 galphotTMP[i] = galphot[j]; 436 } 437 438 // update the values of average.galphotOffset and average.Ngalphot 439 FREE(galphot); 440 catalog[0].galphot = galphotTMP; 441 442 N = 0; 443 currentAve = averageSeq[0]; 444 average[currentAve].galphotOffset = 0; 445 for (i = 0; i < Ngalphot; i++) { 446 if (averageSeq[i] != currentAve) { 447 // we have hit the next entry in the list 448 average[currentAve].Ngalphot = N; 449 N = 0; 450 currentAve = averageSeq[i]; 451 average[currentAve].galphotOffset = i; 452 } 453 N++; 454 } 455 average[currentAve].Ngalphot = N; 456 457 int NgalphotTotal = 0; 458 int galphotOffsetOK = TRUE; 459 for (i = 0; i < Naverage; i++) { 460 NgalphotTotal += catalog[0].average[i].Ngalphot; 461 if (VERBOSE && !(NgalphotTotal <= catalog[0].Ngalphot)) { 462 fprintf (stderr, "too few galphot: %d %d %d\n", (int) i, NgalphotTotal, (int) catalog[0].Ngalphot); 463 } 464 galphotOffsetOK &= (catalog[0].average[i].galphotOffset < catalog[0].Ngalphot); 465 if (VERBOSE && !(catalog[0].average[i].galphotOffset < catalog[0].Ngalphot)) { 466 fprintf (stderr, "offset too large: %d %d %d\n", (int) i, catalog[0].average[i].Ngalphot, (int) catalog[0].Ngalphot); 467 } 468 galphotOffsetOK &= (catalog[0].average[i].galphotOffset + catalog[0].average[i].Ngalphot <= catalog[0].Ngalphot); 469 if (VERBOSE && !(catalog[0].average[i].galphotOffset + catalog[0].average[i].Ngalphot <= catalog[0].Ngalphot)) { 470 fprintf (stderr, "orrset + Ngalphot too large: %d + %d > %d %d\n", (int) i, catalog[0].average[i].galphotOffset, catalog[0].average[i].Ngalphot, (int) catalog[0].Ngalphot); 471 } 472 } 473 474 if (!galphotOffsetOK) { 475 fprintf (stderr, "ERROR: catalog %s has an invalid galphotOffset\n", catalog[0].filename); 476 } 477 478 if (NgalphotTotal != catalog[0].Ngalphot) { 479 fprintf (stderr, "ERROR: catalog %s has an invalid Ngalphot\n", catalog[0].filename); 480 } 481 482 FREE (galphotSeq); 454 483 FREE (averageSeq); 455 484 -
branches/eam_branches/ipp-20150625/Ohana/src/addstar/src/resort_threaded.c
r38618 r38983 72 72 // this is an overloaded value to mean 'force sort' 73 73 if (threadData->forcesort) catalog.sorted = FALSE; 74 75 if (OLD_RESORT) { 76 resort_catalog_old (&catalog); 77 } else { 78 resort_catalog (&catalog); 79 } 74 resort_catalog (&catalog); 80 75 81 76 /* report total updated values */ -
branches/eam_branches/ipp-20150625/Ohana/src/addstar/src/resort_unthreaded.c
r38618 r38983 42 42 } 43 43 44 // t his is an overloaded value to mean 'force sort'44 // to force the sort, we need to set sorted 'false' 45 45 if (ForceSort) catalog.sorted = FALSE; 46 47 if (OLD_RESORT) { 48 resort_catalog_old (&catalog); 49 } else { 50 resort_catalog (&catalog); 51 } 46 resort_catalog (&catalog); 52 47 53 48 // report total updated values -
branches/eam_branches/ipp-20150625/Ohana/src/addstar/test
- Property svn:mergeinfo changed
/trunk/Ohana/src/addstar/test merged: 38852
- Property svn:mergeinfo changed
-
branches/eam_branches/ipp-20150625/Ohana/src/dvopsps/Makefile
r37923 r38983 32 32 $(SRC)/insert_FWobjects_dvopsps.$(ARCH).o \ 33 33 $(SRC)/insert_FWobjects_dvopsps_catalog.$(ARCH).o \ 34 $(SRC)/insert_FGshape_dvopsps.$(ARCH).o \ 35 $(SRC)/insert_FGshape_dvopsps_catalog.$(ARCH).o \ 34 36 $(SRC)/insert_diffobj_dvopsps.$(ARCH).o \ 35 37 $(SRC)/insert_diffobj_dvopsps_catalog.$(ARCH).o \ … … 52 54 $(SRC)/insert_FWobjects_dvopsps.$(ARCH).o \ 53 55 $(SRC)/insert_FWobjects_dvopsps_catalog.$(ARCH).o \ 56 $(SRC)/insert_FGshape_dvopsps.$(ARCH).o \ 57 $(SRC)/insert_FGshape_dvopsps_catalog.$(ARCH).o \ 54 58 $(SRC)/insert_diffobj_dvopsps.$(ARCH).o \ 55 59 $(SRC)/insert_diffobj_dvopsps_catalog.$(ARCH).o \ -
branches/eam_branches/ipp-20150625/Ohana/src/dvopsps/include/dvopsps.h
r38592 r38983 20 20 float decErr; 21 21 float zp; 22 float zpFactor; 22 23 float telluricExt; 23 24 float airmass; … … 115 116 int insert_FWobjects_mysql_commit PROTO((IOBuffer *ave_buffer, IOBuffer *sec_buffer, IOBuffer *cpy_buffer, MYSQL *mysql)); 116 117 118 int insert_FGshape_dvopsps PROTO((void)); 119 int insert_FGshape_dvopsps_parallel PROTO((SkyList *sky)); 120 int insert_FGshape_dvopsps_catalog PROTO((Catalog *catalog, char *basename, MYSQL *mysql)); 121 122 int insert_FGshape_mysql_create_tables PROTO((char *basename, MYSQL *mysql)); 123 int insert_FGshape_mysql_init PROTO((IOBuffer *ave_buffer, IOBuffer *cpy_buffer, char *basename)); 124 int insert_FGshape_mysql_value PROTO((IOBuffer *ave_buffer, IOBuffer *cpy_buffer, Average *average, GalPhot *galphot, int Ngalphot)); 125 int insert_FGshape_mysql_commit PROTO((IOBuffer *ave_buffer, IOBuffer *cpy_buffer, MYSQL *mysql)); 126 117 127 int insert_skytable PROTO((void)); 118 128 -
branches/eam_branches/ipp-20150625/Ohana/src/dvopsps/src/dvopsps.c
r37923 r38983 21 21 status = insert_FWobjects_dvopsps (); 22 22 } 23 if (!strcasecmp (argv[1], "forced_galaxy_shape")) { 24 status = insert_FGshape_dvopsps (); 25 } 23 26 if (!strcasecmp (argv[1], "skytable")) { 24 27 status = insert_skytable (); … … 30 33 } 31 34 32 if (!status) exit (1); 35 if (!status) { 36 fprintf (stdout, "ERROR running dvopsps!\n"); 37 exit (1); 38 } 39 fprintf (stdout, "SUCCESS!\n"); 33 40 exit (0); 34 41 } -
branches/eam_branches/ipp-20150625/Ohana/src/dvopsps/src/dvopsps_client.c
r37923 r38983 28 28 status = insert_FWobjects_dvopsps (); 29 29 } 30 if (!strcasecmp (argv[1], "forced_galaxy_shape")) { 31 status = insert_FGshape_dvopsps (); 32 } 30 33 if (status == -1) { 31 34 fprintf (stderr, "invalid mode, should be : detections, skytable\n"); -
branches/eam_branches/ipp-20150625/Ohana/src/dvopsps/src/initialize_dvopsps.c
r37672 r38983 21 21 fprintf (stderr, "\n"); 22 22 23 fprintf (stderr, " (mode) is one of detections, objects, forced_warp_objects, skytable\n");23 fprintf (stderr, " (mode) is one of detections, objects, forced_warp_objects, forced_galaxy_shaoe, skytable\n"); 24 24 25 25 fprintf (stderr, "\n"); -
branches/eam_branches/ipp-20150625/Ohana/src/dvopsps/src/insert_detections_dvopsps_catalog.c
r38643 r38983 183 183 184 184 PrintIOBuffer (buffer, "INSERT INTO dvoDetectionFull (objID, detectID, ippObjID, ippDetectID, imageID, catID, "); 185 PrintIOBuffer (buffer, "ra, dec_, raErr, decErr, zp, telluricExt, airmass, expTime, ");185 PrintIOBuffer (buffer, "ra, dec_, raErr, decErr, zp, zpFactor, telluricExt, airmass, expTime, "); 186 186 PrintIOBuffer (buffer, "Mpsf, dMpsf, Mkron, dMkron, Map, dMap, flags) VALUES \n"); 187 187 … … 253 253 PRINT_FLOAT(buffer, detection->decErr, "%.6f, "); 254 254 PRINT_FLOAT(buffer, detection->zp, "%.6f, "); 255 PRINT_FLOAT(buffer, detection->zpFactor, "%.6e, "); 255 256 PRINT_FLOAT(buffer, detection->telluricExt, "%.6f, "); 256 257 PRINT_FLOAT(buffer, detection->airmass, "%.6f, "); … … 307 308 float nominalZP = code->C * 0.001 + code->K * (measure->airmass - 1); 308 309 float zp = nominalZP - measure->Mcal; 310 float zpFactor = pow(10.0, -0.4*zp + 3.56); 309 311 float telluricExt = - measure->Mcal; 310 312 float expTime = pow(10.0, 0.4 * measure->dt); … … 324 326 325 327 detection->zp = zp; 328 detection->zpFactor = zpFactor; 326 329 detection->telluricExt = telluricExt; 327 330 detection->airmass = airmass; -
branches/eam_branches/ipp-20150625/Ohana/src/dvopsps/src/insert_objects_dvopsps_catalog.c
r37807 r38983 43 43 // fprintf (stderr, "%f : %d %d %d\n", average[i].ChiSqPM, isinf(average[i].ChiSqPM), isnan(average[i].ChiSqPM), isfinite(average[i].ChiSqPM)); 44 44 45 // Average is a big gertable, but Nsecfilt*secfilt might be bigger, so check both45 // Average is a big table, but Nsecfilt*secfilt might be bigger, so check both 46 46 if ((ave_buffer.Nbuffer > MAX_BUFFER) || (sec_buffer.Nbuffer > MAX_BUFFER)) { 47 47 insert_objects_mysql_commit (&ave_buffer, &sec_buffer, mysql); 48 48 if (DEBUG) fprintf (stderr, "inserted %d rows\n", Ninsert); 49 49 Ninsert = 0; 50 if (0) { 51 FlushIOBuffer (&ave_buffer); 52 FlushIOBuffer (&sec_buffer); 53 } else { 54 ave_buffer.Nbuffer = 0; 55 bzero (ave_buffer.buffer, ave_buffer.Nalloc); 56 sec_buffer.Nbuffer = 0; 57 bzero (sec_buffer.buffer, sec_buffer.Nalloc); 58 } 50 ave_buffer.Nbuffer = 0; 51 bzero (ave_buffer.buffer, ave_buffer.Nalloc); 52 sec_buffer.Nbuffer = 0; 53 bzero (sec_buffer.buffer, sec_buffer.Nalloc); 59 54 insert_objects_mysql_init (&ave_buffer, &sec_buffer, cleanname); 60 55 } -
branches/eam_branches/ipp-20150625/Ohana/src/dvopsps/src/insert_skytable.c
r37048 r38983 64 64 } 65 65 66 PrintIOBuffer (buffer, "INSERT INTO dvoSkyTable (R_MIN, R_MAX, D_MIN, D_MAX, INDEX_, NAME) VALUES \n");66 PrintIOBuffer (buffer, "INSERT INTO dvoSkyTable (R_MIN, R_MAX, D_MIN, D_MAX, REGION_ID, NAME) VALUES \n"); 67 67 68 68 return TRUE; -
branches/eam_branches/ipp-20150625/Ohana/src/getstar/src/MatchImages.c
r38597 r38983 24 24 /* for mosaic astrometry, the grid should be w.r.t. the tangent-plane, not chip coords */ 25 25 26 InitCoords (&tcoords, "DEC-- ARC");26 InitCoords (&tcoords, "DEC--TAN"); 27 27 tcoords.cdelt1 = tcoords.cdelt2 = 1.0 / 3600.0; 28 28 29 29 tcoords.crval1 = image[0].coords.crval1; 30 30 tcoords.crval2 = image[0].coords.crval2; 31 31 32 if (!strcmp (&image[0].coords.ctype[4], "-WRP")) { 32 33 myAssert (image[0].coords.mosaic, "should already have tested this"); -
branches/eam_branches/ipp-20150625/Ohana/src/libautocode/def/average.d
r38712 r38983 41 41 FIELD Nlensing, NLENSING, unsigned short, number of lensing measurements 42 42 FIELD Nlensobj, NLENSOBJ, unsigned short, number of lensing measurements 43 FIELD Ngalphot, NGALPHOT,unsigned short, number of galphot measurements43 FIELD Ngalphot, NGALPHOT, unsigned short, number of galphot measurements 44 44 45 45 FIELD measureOffset, OFF_MEASURE, int, offset to first psf measurement -
branches/eam_branches/ipp-20150625/Ohana/src/libautocode/def/cmf-ps1-v5-lensing-alt.d
r37729 r38983 57 57 FIELD M4s, MOMENTS_M4S, float, fourth moment sin(t), pixels^4 58 58 59 FIELD X11_sm_obj, X11_SM_OBJ, float, lensing smear 60 FIELD X12_sm_obj, X12_SM_OBJ, float, lensing smear 61 FIELD X22_sm_obj, X22_SM_OBJ, float, lensing smear 62 FIELD E1_sm_obj, E1_SM_OBJ, float, lensing smear 63 FIELD E2_sm_obj, E2_SM_OBJ, float, lensing smear 64 65 FIELD X11_sh_obj, X11_SH_OBJ, float, lensing shear 66 FIELD X12_sh_obj, X12_SH_OBJ, float, lensing shear 67 FIELD X22_sh_obj, X22_SH_OBJ, float, lensing shear 68 FIELD E1_sh_obj, E1_SH_OBJ, float, lensing shear 69 FIELD E2_sh_obj, E2_SH_OBJ, float, lensing shear 70 71 FIELD X11_sm_psf, X11_SM_PSF, float, lensing smear 72 FIELD X12_sm_psf, X12_SM_PSF, float, lensing smear 73 FIELD X22_sm_psf, X22_SM_PSF, float, lensing smear 74 FIELD E1_sm_psf, E1_SM_PSF, float, lensing smear 75 FIELD E2_sm_psf, E2_SM_PSF, float, lensing smear 76 77 FIELD X11_sh_psf, X11_SH_PSF, float, lensing shear 78 FIELD X12_sh_psf, X12_SH_PSF, float, lensing shear 79 FIELD X22_sh_psf, X22_SH_PSF, float, lensing shear 80 FIELD E1_sh_psf, E1_SH_PSF, float, lensing shear 81 FIELD E2_sh_psf, E2_SH_PSF, float, lensing shear 59 FIELD X11_sm_obj, LENS_X11_SM_OBJ, float, lensing smear 60 FIELD X12_sm_obj, LENS_X12_SM_OBJ, float, lensing smear 61 FIELD X22_sm_obj, LENS_X22_SM_OBJ, float, lensing smear 62 FIELD E1_sm_obj, LENS_E1_SM_OBJ, float, lensing smear 63 FIELD E2_sm_obj, LENS_E2_SM_OBJ, float, lensing smear 64 FIELD X11_sh_obj, LENS_X11_SH_OBJ, float, lensing shear 65 FIELD X12_sh_obj, LENS_X12_SH_OBJ, float, lensing shear 66 FIELD X22_sh_obj, LENS_X22_SH_OBJ, float, lensing shear 67 FIELD E1_sh_obj, LENS_E1_SH_OBJ, float, lensing shear 68 FIELD E2_sh_obj, LENS_E2_SH_OBJ, float, lensing shear 69 FIELD X11_sm_psf, LENS_X11_SM_PSF, float, lensing smear 70 FIELD X12_sm_psf, LENS_X12_SM_PSF, float, lensing smear 71 FIELD X22_sm_psf, LENS_X22_SM_PSF, float, lensing smear 72 FIELD E1_sm_psf, LENS_E1_SM_PSF, float, lensing smear 73 FIELD E2_sm_psf, LENS_E2_SM_PSF, float, lensing smear 74 FIELD X11_sh_psf, LENS_X11_SH_PSF, float, lensing shear 75 FIELD X12_sh_psf, LENS_X12_SH_PSF, float, lensing shear 76 FIELD X22_sh_psf, LENS_X22_SH_PSF, float, lensing shear 77 FIELD E1_sh_psf, LENS_E1_SH_PSF, float, lensing shear 78 FIELD E2_sh_psf, LENS_E2_SH_PSF, float, lensing shear 82 79 83 80 FIELD Mr1, MOMENTS_R1, float, first radial moment, pixels -
branches/eam_branches/ipp-20150625/Ohana/src/libautocode/def/cmf-ps1-v5-lensing.d
r37729 r38983 57 57 FIELD M4s, MOMENTS_M4S, float, fourth moment sin(t), pixels^4 58 58 59 FIELD X11_sm_obj, X11_SM_OBJ, float, lensing smear 60 FIELD X12_sm_obj, X12_SM_OBJ, float, lensing smear 61 FIELD X22_sm_obj, X22_SM_OBJ, float, lensing smear 62 FIELD E1_sm_obj, E1_SM_OBJ, float, lensing smear 63 FIELD E2_sm_obj, E2_SM_OBJ, float, lensing smear 64 65 FIELD X11_sh_obj, X11_SH_OBJ, float, lensing shear 66 FIELD X12_sh_obj, X12_SH_OBJ, float, lensing shear 67 FIELD X22_sh_obj, X22_SH_OBJ, float, lensing shear 68 FIELD E1_sh_obj, E1_SH_OBJ, float, lensing shear 69 FIELD E2_sh_obj, E2_SH_OBJ, float, lensing shear 70 71 FIELD X11_sm_psf, X11_SM_PSF, float, lensing smear 72 FIELD X12_sm_psf, X12_SM_PSF, float, lensing smear 73 FIELD X22_sm_psf, X22_SM_PSF, float, lensing smear 74 FIELD E1_sm_psf, E1_SM_PSF, float, lensing smear 75 FIELD E2_sm_psf, E2_SM_PSF, float, lensing smear 76 77 FIELD X11_sh_psf, X11_SH_PSF, float, lensing shear 78 FIELD X12_sh_psf, X12_SH_PSF, float, lensing shear 79 FIELD X22_sh_psf, X22_SH_PSF, float, lensing shear 80 FIELD E1_sh_psf, E1_SH_PSF, float, lensing shear 81 FIELD E2_sh_psf, E2_SH_PSF, float, lensing shear 59 FIELD X11_sm_obj, LENS_X11_SM_OBJ, float, lensing smear 60 FIELD X12_sm_obj, LENS_X12_SM_OBJ, float, lensing smear 61 FIELD X22_sm_obj, LENS_X22_SM_OBJ, float, lensing smear 62 FIELD E1_sm_obj, LENS_E1_SM_OBJ, float, lensing smear 63 FIELD E2_sm_obj, LENS_E2_SM_OBJ, float, lensing smear 64 FIELD X11_sh_obj, LENS_X11_SH_OBJ, float, lensing shear 65 FIELD X12_sh_obj, LENS_X12_SH_OBJ, float, lensing shear 66 FIELD X22_sh_obj, LENS_X22_SH_OBJ, float, lensing shear 67 FIELD E1_sh_obj, LENS_E1_SH_OBJ, float, lensing shear 68 FIELD E2_sh_obj, LENS_E2_SH_OBJ, float, lensing shear 69 FIELD X11_sm_psf, LENS_X11_SM_PSF, float, lensing smear 70 FIELD X12_sm_psf, LENS_X12_SM_PSF, float, lensing smear 71 FIELD X22_sm_psf, LENS_X22_SM_PSF, float, lensing smear 72 FIELD E1_sm_psf, LENS_E1_SM_PSF, float, lensing smear 73 FIELD E2_sm_psf, LENS_E2_SM_PSF, float, lensing smear 74 FIELD X11_sh_psf, LENS_X11_SH_PSF, float, lensing shear 75 FIELD X12_sh_psf, LENS_X12_SH_PSF, float, lensing shear 76 FIELD X22_sh_psf, LENS_X22_SH_PSF, float, lensing shear 77 FIELD E1_sh_psf, LENS_E1_SH_PSF, float, lensing shear 78 FIELD E2_sh_psf, LENS_E2_SH_PSF, float, lensing shear 82 79 83 80 FIELD srcChipNum, SRC_CHIP_NUM, short, source chip in warp -
branches/eam_branches/ipp-20150625/Ohana/src/libdvo/include/dvo.h
r38752 r38983 1217 1217 # undef LENSFIELD 1218 1218 1219 # define GALPHOT_FIELD(NAME, VALUE) float GalphotValue_##NAME (PhotCode *code, dvoMagClassType class, GalPhot *galphot, int Ngalphot) 1220 1221 GALPHOT_FIELD(GAL_MAG, mag); 1222 GALPHOT_FIELD(GAL_MAG_ERR, magErr); 1223 GALPHOT_FIELD(GAL_MAJ, majorAxis); 1224 GALPHOT_FIELD(GAL_MAJ_ERR, majorAxisErr); 1225 GALPHOT_FIELD(GAL_MIN, minorAxis); 1226 GALPHOT_FIELD(GAL_MIN_ERR, minorAxisErr); 1227 GALPHOT_FIELD(GAL_THETA, theta); 1228 GALPHOT_FIELD(GAL_THETA_ERR, thetaErr); 1229 GALPHOT_FIELD(GAL_INDEX, index); 1230 GALPHOT_FIELD(GAL_CHISQ, chisq); 1231 GALPHOT_FIELD(GAL_NPIX, Npix); 1232 GALPHOT_FIELD(GAL_TYPE, modelType); 1233 1234 # undef GALPHOT_FIELD 1235 1219 1236 # endif // DVO_H -
branches/eam_branches/ipp-20150625/Ohana/src/libdvo/include/dvodb.h
r38581 r38983 97 97 MAG_OPTION_E1, 98 98 MAG_OPTION_E2, 99 100 MAG_OPTION_GAL_MAG, 101 MAG_OPTION_GAL_MAG_ERR, 102 MAG_OPTION_GAL_MAJ, 103 MAG_OPTION_GAL_MAJ_ERR, 104 MAG_OPTION_GAL_MIN, 105 MAG_OPTION_GAL_MIN_ERR, 106 MAG_OPTION_GAL_THETA, 107 MAG_OPTION_GAL_THETA_ERR, 108 MAG_OPTION_GAL_INDEX, 109 MAG_OPTION_GAL_CHISQ, 110 MAG_OPTION_GAL_NPIX, 111 MAG_OPTION_GAL_TYPE, 99 112 } dvoMagOptionType; 100 113 … … 107 120 MAG_CLASS_KRON, 108 121 MAG_CLASS_APER, 122 MAG_CLASS_DEV, // DeVaucouleur Model (only for galphot) 123 MAG_CLASS_EXP, // Exponential Model (only for galphot) 124 MAG_CLASS_SER, // Sersic Model (only for galphot) 109 125 } dvoMagClassType; 110 126 … … 484 500 int ParseImageField PROTO((dbField *field, char *fieldName)); 485 501 486 dbValue dbExtractAverages PROTO((Average *average, SecFilt *secfilt, Measure *measure, Lensobj *lensobj, StarPar *starpar, dbField *field));502 dbValue dbExtractAverages PROTO((Average *average, SecFilt *secfilt, Measure *measure, Lensobj *lensobj, StarPar *starpar, GalPhot *galphot, dbField *field)); 487 503 dbValue dbExtractMeasures PROTO((Average *average, SecFilt *secfilt, Measure *measure, Lensing *lensing, StarPar *starpar, dbField *field)); 488 504 dbValue dbExtractImages PROTO((Image *image, off_t Nimage, off_t N, dbField *field)); … … 497 513 int dbFieldNeedLensing (dbField *fields, int Nfields); 498 514 int dbFieldNeedStarpar (dbField *fields, int Nfields, int isAverage); 515 int dbFieldNeedGalphot (dbField *fields, int Nfields); 499 516 500 517 void FreeImageSelection (void); -
branches/eam_branches/ipp-20150625/Ohana/src/libdvo/src/cmf-ps1-v5-r0-lensing.c
r37992 r38983 269 269 gfits_define_bintable_column (header, "E", "MOMENTS_M4C", "fourth moment cos(t)", "pixels^4", 1.0, 0.0); 270 270 gfits_define_bintable_column (header, "E", "MOMENTS_M4S", "fourth moment sin(t)", "pixels^4", 1.0, 0.0); 271 gfits_define_bintable_column (header, "E", " X11_SM_OBJ","lensing smear", "", 1.0, 0.0);272 gfits_define_bintable_column (header, "E", " X12_SM_OBJ","lensing smear", "", 1.0, 0.0);273 gfits_define_bintable_column (header, "E", " X22_SM_OBJ","lensing smear", "", 1.0, 0.0);274 gfits_define_bintable_column (header, "E", " E1_SM_OBJ","lensing smear", "", 1.0, 0.0);275 gfits_define_bintable_column (header, "E", " E2_SM_OBJ","lensing smear", "", 1.0, 0.0);276 gfits_define_bintable_column (header, "E", " X11_SH_OBJ","lensing shear", "", 1.0, 0.0);277 gfits_define_bintable_column (header, "E", " X12_SH_OBJ","lensing shear", "", 1.0, 0.0);278 gfits_define_bintable_column (header, "E", " X22_SH_OBJ","lensing shear", "", 1.0, 0.0);279 gfits_define_bintable_column (header, "E", " E1_SH_OBJ","lensing shear", "", 1.0, 0.0);280 gfits_define_bintable_column (header, "E", " E2_SH_OBJ","lensing shear", "", 1.0, 0.0);281 gfits_define_bintable_column (header, "E", " X11_SM_PSF","lensing smear", "", 1.0, 0.0);282 gfits_define_bintable_column (header, "E", " X12_SM_PSF","lensing smear", "", 1.0, 0.0);283 gfits_define_bintable_column (header, "E", " X22_SM_PSF","lensing smear", "", 1.0, 0.0);284 gfits_define_bintable_column (header, "E", " E1_SM_PSF","lensing smear", "", 1.0, 0.0);285 gfits_define_bintable_column (header, "E", " E2_SM_PSF","lensing smear", "", 1.0, 0.0);286 gfits_define_bintable_column (header, "E", " X11_SH_PSF","lensing shear", "", 1.0, 0.0);287 gfits_define_bintable_column (header, "E", " X12_SH_PSF","lensing shear", "", 1.0, 0.0);288 gfits_define_bintable_column (header, "E", " X22_SH_PSF","lensing shear", "", 1.0, 0.0);289 gfits_define_bintable_column (header, "E", " E1_SH_PSF","lensing shear", "", 1.0, 0.0);290 gfits_define_bintable_column (header, "E", " E2_SH_PSF","lensing shear", "", 1.0, 0.0);271 gfits_define_bintable_column (header, "E", "LENS_X11_SM_OBJ", "lensing smear", "", 1.0, 0.0); 272 gfits_define_bintable_column (header, "E", "LENS_X12_SM_OBJ", "lensing smear", "", 1.0, 0.0); 273 gfits_define_bintable_column (header, "E", "LENS_X22_SM_OBJ", "lensing smear", "", 1.0, 0.0); 274 gfits_define_bintable_column (header, "E", "LENS_E1_SM_OBJ", "lensing smear", "", 1.0, 0.0); 275 gfits_define_bintable_column (header, "E", "LENS_E2_SM_OBJ", "lensing smear", "", 1.0, 0.0); 276 gfits_define_bintable_column (header, "E", "LENS_X11_SH_OBJ", "lensing shear", "", 1.0, 0.0); 277 gfits_define_bintable_column (header, "E", "LENS_X12_SH_OBJ", "lensing shear", "", 1.0, 0.0); 278 gfits_define_bintable_column (header, "E", "LENS_X22_SH_OBJ", "lensing shear", "", 1.0, 0.0); 279 gfits_define_bintable_column (header, "E", "LENS_E1_SH_OBJ", "lensing shear", "", 1.0, 0.0); 280 gfits_define_bintable_column (header, "E", "LENS_E2_SH_OBJ", "lensing shear", "", 1.0, 0.0); 281 gfits_define_bintable_column (header, "E", "LENS_X11_SM_PSF", "lensing smear", "", 1.0, 0.0); 282 gfits_define_bintable_column (header, "E", "LENS_X12_SM_PSF", "lensing smear", "", 1.0, 0.0); 283 gfits_define_bintable_column (header, "E", "LENS_X22_SM_PSF", "lensing smear", "", 1.0, 0.0); 284 gfits_define_bintable_column (header, "E", "LENS_E1_SM_PSF", "lensing smear", "", 1.0, 0.0); 285 gfits_define_bintable_column (header, "E", "LENS_E2_SM_PSF", "lensing smear", "", 1.0, 0.0); 286 gfits_define_bintable_column (header, "E", "LENS_X11_SH_PSF", "lensing shear", "", 1.0, 0.0); 287 gfits_define_bintable_column (header, "E", "LENS_X12_SH_PSF", "lensing shear", "", 1.0, 0.0); 288 gfits_define_bintable_column (header, "E", "LENS_X22_SH_PSF", "lensing shear", "", 1.0, 0.0); 289 gfits_define_bintable_column (header, "E", "LENS_E1_SH_PSF", "lensing shear", "", 1.0, 0.0); 290 gfits_define_bintable_column (header, "E", "LENS_E2_SH_PSF", "lensing shear", "", 1.0, 0.0); 291 291 gfits_define_bintable_column (header, "E", "MOMENTS_R1", "first radial moment", "pixels", 1.0, 0.0); 292 292 gfits_define_bintable_column (header, "E", "MOMENTS_RH", "half radial moment", "pixels^1/2", 1.0, 0.0); … … 365 365 gfits_define_bintable_column (header, "E", "MOMENTS_M4C", "fourth moment cos(t)", "pixels^4", 1.0, 0.0); 366 366 gfits_define_bintable_column (header, "E", "MOMENTS_M4S", "fourth moment sin(t)", "pixels^4", 1.0, 0.0); 367 gfits_define_bintable_column (header, "E", " X11_SM_OBJ","lensing smear", "", 1.0, 0.0);368 gfits_define_bintable_column (header, "E", " X12_SM_OBJ","lensing smear", "", 1.0, 0.0);369 gfits_define_bintable_column (header, "E", " X22_SM_OBJ","lensing smear", "", 1.0, 0.0);370 gfits_define_bintable_column (header, "E", " E1_SM_OBJ","lensing smear", "", 1.0, 0.0);371 gfits_define_bintable_column (header, "E", " E2_SM_OBJ","lensing smear", "", 1.0, 0.0);372 gfits_define_bintable_column (header, "E", " X11_SH_OBJ","lensing shear", "", 1.0, 0.0);373 gfits_define_bintable_column (header, "E", " X12_SH_OBJ","lensing shear", "", 1.0, 0.0);374 gfits_define_bintable_column (header, "E", " X22_SH_OBJ","lensing shear", "", 1.0, 0.0);375 gfits_define_bintable_column (header, "E", " E1_SH_OBJ","lensing shear", "", 1.0, 0.0);376 gfits_define_bintable_column (header, "E", " E2_SH_OBJ","lensing shear", "", 1.0, 0.0);377 gfits_define_bintable_column (header, "E", " X11_SM_PSF","lensing smear", "", 1.0, 0.0);378 gfits_define_bintable_column (header, "E", " X12_SM_PSF","lensing smear", "", 1.0, 0.0);379 gfits_define_bintable_column (header, "E", " X22_SM_PSF","lensing smear", "", 1.0, 0.0);380 gfits_define_bintable_column (header, "E", " E1_SM_PSF","lensing smear", "", 1.0, 0.0);381 gfits_define_bintable_column (header, "E", " E2_SM_PSF","lensing smear", "", 1.0, 0.0);382 gfits_define_bintable_column (header, "E", " X11_SH_PSF","lensing shear", "", 1.0, 0.0);383 gfits_define_bintable_column (header, "E", " X12_SH_PSF","lensing shear", "", 1.0, 0.0);384 gfits_define_bintable_column (header, "E", " X22_SH_PSF","lensing shear", "", 1.0, 0.0);385 gfits_define_bintable_column (header, "E", " E1_SH_PSF","lensing shear", "", 1.0, 0.0);386 gfits_define_bintable_column (header, "E", " E2_SH_PSF","lensing shear", "", 1.0, 0.0);367 gfits_define_bintable_column (header, "E", "LENS_X11_SM_OBJ", "lensing smear", "", 1.0, 0.0); 368 gfits_define_bintable_column (header, "E", "LENS_X12_SM_OBJ", "lensing smear", "", 1.0, 0.0); 369 gfits_define_bintable_column (header, "E", "LENS_X22_SM_OBJ", "lensing smear", "", 1.0, 0.0); 370 gfits_define_bintable_column (header, "E", "LENS_E1_SM_OBJ", "lensing smear", "", 1.0, 0.0); 371 gfits_define_bintable_column (header, "E", "LENS_E2_SM_OBJ", "lensing smear", "", 1.0, 0.0); 372 gfits_define_bintable_column (header, "E", "LENS_X11_SH_OBJ", "lensing shear", "", 1.0, 0.0); 373 gfits_define_bintable_column (header, "E", "LENS_X12_SH_OBJ", "lensing shear", "", 1.0, 0.0); 374 gfits_define_bintable_column (header, "E", "LENS_X22_SH_OBJ", "lensing shear", "", 1.0, 0.0); 375 gfits_define_bintable_column (header, "E", "LENS_E1_SH_OBJ", "lensing shear", "", 1.0, 0.0); 376 gfits_define_bintable_column (header, "E", "LENS_E2_SH_OBJ", "lensing shear", "", 1.0, 0.0); 377 gfits_define_bintable_column (header, "E", "LENS_X11_SM_PSF", "lensing smear", "", 1.0, 0.0); 378 gfits_define_bintable_column (header, "E", "LENS_X12_SM_PSF", "lensing smear", "", 1.0, 0.0); 379 gfits_define_bintable_column (header, "E", "LENS_X22_SM_PSF", "lensing smear", "", 1.0, 0.0); 380 gfits_define_bintable_column (header, "E", "LENS_E1_SM_PSF", "lensing smear", "", 1.0, 0.0); 381 gfits_define_bintable_column (header, "E", "LENS_E2_SM_PSF", "lensing smear", "", 1.0, 0.0); 382 gfits_define_bintable_column (header, "E", "LENS_X11_SH_PSF", "lensing shear", "", 1.0, 0.0); 383 gfits_define_bintable_column (header, "E", "LENS_X12_SH_PSF", "lensing shear", "", 1.0, 0.0); 384 gfits_define_bintable_column (header, "E", "LENS_X22_SH_PSF", "lensing shear", "", 1.0, 0.0); 385 gfits_define_bintable_column (header, "E", "LENS_E1_SH_PSF", "lensing shear", "", 1.0, 0.0); 386 gfits_define_bintable_column (header, "E", "LENS_E2_SH_PSF", "lensing shear", "", 1.0, 0.0); 387 387 gfits_define_bintable_column (header, "E", "MOMENTS_R1", "first radial moment", "pixels", 1.0, 0.0); 388 388 gfits_define_bintable_column (header, "E", "MOMENTS_RH", "half radial moment", "pixels^1/2", 1.0, 0.0); -
branches/eam_branches/ipp-20150625/Ohana/src/libdvo/src/cmf-ps1-v5-r1-lensing.c
r37994 r38983 275 275 gfits_define_bintable_column (header, "E", "MOMENTS_M4C", "fourth moment cos(t)", "pixels^4", 1.0, 0.0); 276 276 gfits_define_bintable_column (header, "E", "MOMENTS_M4S", "fourth moment sin(t)", "pixels^4", 1.0, 0.0); 277 gfits_define_bintable_column (header, "E", " X11_SM_OBJ","lensing smear", "", 1.0, 0.0);278 gfits_define_bintable_column (header, "E", " X12_SM_OBJ","lensing smear", "", 1.0, 0.0);279 gfits_define_bintable_column (header, "E", " X22_SM_OBJ","lensing smear", "", 1.0, 0.0);280 gfits_define_bintable_column (header, "E", " E1_SM_OBJ","lensing smear", "", 1.0, 0.0);281 gfits_define_bintable_column (header, "E", " E2_SM_OBJ","lensing smear", "", 1.0, 0.0);282 gfits_define_bintable_column (header, "E", " X11_SH_OBJ","lensing shear", "", 1.0, 0.0);283 gfits_define_bintable_column (header, "E", " X12_SH_OBJ","lensing shear", "", 1.0, 0.0);284 gfits_define_bintable_column (header, "E", " X22_SH_OBJ","lensing shear", "", 1.0, 0.0);285 gfits_define_bintable_column (header, "E", " E1_SH_OBJ","lensing shear", "", 1.0, 0.0);286 gfits_define_bintable_column (header, "E", " E2_SH_OBJ","lensing shear", "", 1.0, 0.0);287 gfits_define_bintable_column (header, "E", " X11_SM_PSF","lensing smear", "", 1.0, 0.0);288 gfits_define_bintable_column (header, "E", " X12_SM_PSF","lensing smear", "", 1.0, 0.0);289 gfits_define_bintable_column (header, "E", " X22_SM_PSF","lensing smear", "", 1.0, 0.0);290 gfits_define_bintable_column (header, "E", " E1_SM_PSF","lensing smear", "", 1.0, 0.0);291 gfits_define_bintable_column (header, "E", " E2_SM_PSF","lensing smear", "", 1.0, 0.0);292 gfits_define_bintable_column (header, "E", " X11_SH_PSF","lensing shear", "", 1.0, 0.0);293 gfits_define_bintable_column (header, "E", " X12_SH_PSF","lensing shear", "", 1.0, 0.0);294 gfits_define_bintable_column (header, "E", " X22_SH_PSF","lensing shear", "", 1.0, 0.0);295 gfits_define_bintable_column (header, "E", " E1_SH_PSF","lensing shear", "", 1.0, 0.0);296 gfits_define_bintable_column (header, "E", " E2_SH_PSF","lensing shear", "", 1.0, 0.0);277 gfits_define_bintable_column (header, "E", "LENS_X11_SM_OBJ", "lensing smear", "", 1.0, 0.0); 278 gfits_define_bintable_column (header, "E", "LENS_X12_SM_OBJ", "lensing smear", "", 1.0, 0.0); 279 gfits_define_bintable_column (header, "E", "LENS_X22_SM_OBJ", "lensing smear", "", 1.0, 0.0); 280 gfits_define_bintable_column (header, "E", "LENS_E1_SM_OBJ", "lensing smear", "", 1.0, 0.0); 281 gfits_define_bintable_column (header, "E", "LENS_E2_SM_OBJ", "lensing smear", "", 1.0, 0.0); 282 gfits_define_bintable_column (header, "E", "LENS_X11_SH_OBJ", "lensing shear", "", 1.0, 0.0); 283 gfits_define_bintable_column (header, "E", "LENS_X12_SH_OBJ", "lensing shear", "", 1.0, 0.0); 284 gfits_define_bintable_column (header, "E", "LENS_X22_SH_OBJ", "lensing shear", "", 1.0, 0.0); 285 gfits_define_bintable_column (header, "E", "LENS_E1_SH_OBJ", "lensing shear", "", 1.0, 0.0); 286 gfits_define_bintable_column (header, "E", "LENS_E2_SH_OBJ", "lensing shear", "", 1.0, 0.0); 287 gfits_define_bintable_column (header, "E", "LENS_X11_SM_PSF", "lensing smear", "", 1.0, 0.0); 288 gfits_define_bintable_column (header, "E", "LENS_X12_SM_PSF", "lensing smear", "", 1.0, 0.0); 289 gfits_define_bintable_column (header, "E", "LENS_X22_SM_PSF", "lensing smear", "", 1.0, 0.0); 290 gfits_define_bintable_column (header, "E", "LENS_E1_SM_PSF", "lensing smear", "", 1.0, 0.0); 291 gfits_define_bintable_column (header, "E", "LENS_E2_SM_PSF", "lensing smear", "", 1.0, 0.0); 292 gfits_define_bintable_column (header, "E", "LENS_X11_SH_PSF", "lensing shear", "", 1.0, 0.0); 293 gfits_define_bintable_column (header, "E", "LENS_X12_SH_PSF", "lensing shear", "", 1.0, 0.0); 294 gfits_define_bintable_column (header, "E", "LENS_X22_SH_PSF", "lensing shear", "", 1.0, 0.0); 295 gfits_define_bintable_column (header, "E", "LENS_E1_SH_PSF", "lensing shear", "", 1.0, 0.0); 296 gfits_define_bintable_column (header, "E", "LENS_E2_SH_PSF", "lensing shear", "", 1.0, 0.0); 297 297 298 298 gfits_define_bintable_column (header, "I", "SRC_CHIP_NUM", "number of source chip for warp", "", 1.0, 0.0); … … 377 377 gfits_define_bintable_column (header, "E", "MOMENTS_M4C", "fourth moment cos(t)", "pixels^4", 1.0, 0.0); 378 378 gfits_define_bintable_column (header, "E", "MOMENTS_M4S", "fourth moment sin(t)", "pixels^4", 1.0, 0.0); 379 gfits_define_bintable_column (header, "E", " X11_SM_OBJ","lensing smear", "", 1.0, 0.0);380 gfits_define_bintable_column (header, "E", " X12_SM_OBJ","lensing smear", "", 1.0, 0.0);381 gfits_define_bintable_column (header, "E", " X22_SM_OBJ","lensing smear", "", 1.0, 0.0);382 gfits_define_bintable_column (header, "E", " E1_SM_OBJ","lensing smear", "", 1.0, 0.0);383 gfits_define_bintable_column (header, "E", " E2_SM_OBJ","lensing smear", "", 1.0, 0.0);384 gfits_define_bintable_column (header, "E", " X11_SH_OBJ","lensing shear", "", 1.0, 0.0);385 gfits_define_bintable_column (header, "E", " X12_SH_OBJ","lensing shear", "", 1.0, 0.0);386 gfits_define_bintable_column (header, "E", " X22_SH_OBJ","lensing shear", "", 1.0, 0.0);387 gfits_define_bintable_column (header, "E", " E1_SH_OBJ","lensing shear", "", 1.0, 0.0);388 gfits_define_bintable_column (header, "E", " E2_SH_OBJ","lensing shear", "", 1.0, 0.0);389 gfits_define_bintable_column (header, "E", " X11_SM_PSF","lensing smear", "", 1.0, 0.0);390 gfits_define_bintable_column (header, "E", " X12_SM_PSF","lensing smear", "", 1.0, 0.0);391 gfits_define_bintable_column (header, "E", " X22_SM_PSF","lensing smear", "", 1.0, 0.0);392 gfits_define_bintable_column (header, "E", " E1_SM_PSF","lensing smear", "", 1.0, 0.0);393 gfits_define_bintable_column (header, "E", " E2_SM_PSF","lensing smear", "", 1.0, 0.0);394 gfits_define_bintable_column (header, "E", " X11_SH_PSF","lensing shear", "", 1.0, 0.0);395 gfits_define_bintable_column (header, "E", " X12_SH_PSF","lensing shear", "", 1.0, 0.0);396 gfits_define_bintable_column (header, "E", " X22_SH_PSF","lensing shear", "", 1.0, 0.0);397 gfits_define_bintable_column (header, "E", " E1_SH_PSF","lensing shear", "", 1.0, 0.0);398 gfits_define_bintable_column (header, "E", " E2_SH_PSF","lensing shear", "", 1.0, 0.0);379 gfits_define_bintable_column (header, "E", "LENS_X11_SM_OBJ", "lensing smear", "", 1.0, 0.0); 380 gfits_define_bintable_column (header, "E", "LENS_X12_SM_OBJ", "lensing smear", "", 1.0, 0.0); 381 gfits_define_bintable_column (header, "E", "LENS_X22_SM_OBJ", "lensing smear", "", 1.0, 0.0); 382 gfits_define_bintable_column (header, "E", "LENS_E1_SM_OBJ", "lensing smear", "", 1.0, 0.0); 383 gfits_define_bintable_column (header, "E", "LENS_E2_SM_OBJ", "lensing smear", "", 1.0, 0.0); 384 gfits_define_bintable_column (header, "E", "LENS_X11_SH_OBJ", "lensing shear", "", 1.0, 0.0); 385 gfits_define_bintable_column (header, "E", "LENS_X12_SH_OBJ", "lensing shear", "", 1.0, 0.0); 386 gfits_define_bintable_column (header, "E", "LENS_X22_SH_OBJ", "lensing shear", "", 1.0, 0.0); 387 gfits_define_bintable_column (header, "E", "LENS_E1_SH_OBJ", "lensing shear", "", 1.0, 0.0); 388 gfits_define_bintable_column (header, "E", "LENS_E2_SH_OBJ", "lensing shear", "", 1.0, 0.0); 389 gfits_define_bintable_column (header, "E", "LENS_X11_SM_PSF", "lensing smear", "", 1.0, 0.0); 390 gfits_define_bintable_column (header, "E", "LENS_X12_SM_PSF", "lensing smear", "", 1.0, 0.0); 391 gfits_define_bintable_column (header, "E", "LENS_X22_SM_PSF", "lensing smear", "", 1.0, 0.0); 392 gfits_define_bintable_column (header, "E", "LENS_E1_SM_PSF", "lensing smear", "", 1.0, 0.0); 393 gfits_define_bintable_column (header, "E", "LENS_E2_SM_PSF", "lensing smear", "", 1.0, 0.0); 394 gfits_define_bintable_column (header, "E", "LENS_X11_SH_PSF", "lensing shear", "", 1.0, 0.0); 395 gfits_define_bintable_column (header, "E", "LENS_X12_SH_PSF", "lensing shear", "", 1.0, 0.0); 396 gfits_define_bintable_column (header, "E", "LENS_X22_SH_PSF", "lensing shear", "", 1.0, 0.0); 397 gfits_define_bintable_column (header, "E", "LENS_E1_SH_PSF", "lensing shear", "", 1.0, 0.0); 398 gfits_define_bintable_column (header, "E", "LENS_E2_SH_PSF", "lensing shear", "", 1.0, 0.0); 399 399 400 400 gfits_define_bintable_column (header, "I", "SRC_CHIP_NUM", "number of source chip for warp", "", 1.0, 0.0); -
branches/eam_branches/ipp-20150625/Ohana/src/libdvo/src/cmf-ps1-v5-r2-lensing.c
r38553 r38983 278 278 gfits_define_bintable_column (header, "E", "MOMENTS_M4C", "fourth moment cos(t)", "pixels^4", 1.0, 0.0); 279 279 gfits_define_bintable_column (header, "E", "MOMENTS_M4S", "fourth moment sin(t)", "pixels^4", 1.0, 0.0); 280 gfits_define_bintable_column (header, "E", " X11_SM_OBJ","lensing smear", "", 1.0, 0.0);281 gfits_define_bintable_column (header, "E", " X12_SM_OBJ","lensing smear", "", 1.0, 0.0);282 gfits_define_bintable_column (header, "E", " X22_SM_OBJ","lensing smear", "", 1.0, 0.0);283 gfits_define_bintable_column (header, "E", " E1_SM_OBJ","lensing smear", "", 1.0, 0.0);284 gfits_define_bintable_column (header, "E", " E2_SM_OBJ","lensing smear", "", 1.0, 0.0);285 gfits_define_bintable_column (header, "E", " X11_SH_OBJ","lensing shear", "", 1.0, 0.0);286 gfits_define_bintable_column (header, "E", " X12_SH_OBJ","lensing shear", "", 1.0, 0.0);287 gfits_define_bintable_column (header, "E", " X22_SH_OBJ","lensing shear", "", 1.0, 0.0);288 gfits_define_bintable_column (header, "E", " E1_SH_OBJ","lensing shear", "", 1.0, 0.0);289 gfits_define_bintable_column (header, "E", " E2_SH_OBJ","lensing shear", "", 1.0, 0.0);290 gfits_define_bintable_column (header, "E", " X11_SM_PSF","lensing smear", "", 1.0, 0.0);291 gfits_define_bintable_column (header, "E", " X12_SM_PSF","lensing smear", "", 1.0, 0.0);292 gfits_define_bintable_column (header, "E", " X22_SM_PSF","lensing smear", "", 1.0, 0.0);293 gfits_define_bintable_column (header, "E", " E1_SM_PSF","lensing smear", "", 1.0, 0.0);294 gfits_define_bintable_column (header, "E", " E2_SM_PSF","lensing smear", "", 1.0, 0.0);295 gfits_define_bintable_column (header, "E", " X11_SH_PSF","lensing shear", "", 1.0, 0.0);296 gfits_define_bintable_column (header, "E", " X12_SH_PSF","lensing shear", "", 1.0, 0.0);297 gfits_define_bintable_column (header, "E", " X22_SH_PSF","lensing shear", "", 1.0, 0.0);298 gfits_define_bintable_column (header, "E", " E1_SH_PSF","lensing shear", "", 1.0, 0.0);299 gfits_define_bintable_column (header, "E", " E2_SH_PSF","lensing shear", "", 1.0, 0.0);300 gfits_define_bintable_column (header, "E", " E1_PSF","psf polarization", "", 1.0, 0.0);301 gfits_define_bintable_column (header, "E", " E2_PSF","psf polarization", "", 1.0, 0.0);280 gfits_define_bintable_column (header, "E", "LENS_X11_SM_OBJ", "lensing smear", "", 1.0, 0.0); 281 gfits_define_bintable_column (header, "E", "LENS_X12_SM_OBJ", "lensing smear", "", 1.0, 0.0); 282 gfits_define_bintable_column (header, "E", "LENS_X22_SM_OBJ", "lensing smear", "", 1.0, 0.0); 283 gfits_define_bintable_column (header, "E", "LENS_E1_SM_OBJ", "lensing smear", "", 1.0, 0.0); 284 gfits_define_bintable_column (header, "E", "LENS_E2_SM_OBJ", "lensing smear", "", 1.0, 0.0); 285 gfits_define_bintable_column (header, "E", "LENS_X11_SH_OBJ", "lensing shear", "", 1.0, 0.0); 286 gfits_define_bintable_column (header, "E", "LENS_X12_SH_OBJ", "lensing shear", "", 1.0, 0.0); 287 gfits_define_bintable_column (header, "E", "LENS_X22_SH_OBJ", "lensing shear", "", 1.0, 0.0); 288 gfits_define_bintable_column (header, "E", "LENS_E1_SH_OBJ", "lensing shear", "", 1.0, 0.0); 289 gfits_define_bintable_column (header, "E", "LENS_E2_SH_OBJ", "lensing shear", "", 1.0, 0.0); 290 gfits_define_bintable_column (header, "E", "LENS_X11_SM_PSF", "lensing smear", "", 1.0, 0.0); 291 gfits_define_bintable_column (header, "E", "LENS_X12_SM_PSF", "lensing smear", "", 1.0, 0.0); 292 gfits_define_bintable_column (header, "E", "LENS_X22_SM_PSF", "lensing smear", "", 1.0, 0.0); 293 gfits_define_bintable_column (header, "E", "LENS_E1_SM_PSF", "lensing smear", "", 1.0, 0.0); 294 gfits_define_bintable_column (header, "E", "LENS_E2_SM_PSF", "lensing smear", "", 1.0, 0.0); 295 gfits_define_bintable_column (header, "E", "LENS_X11_SH_PSF", "lensing shear", "", 1.0, 0.0); 296 gfits_define_bintable_column (header, "E", "LENS_X12_SH_PSF", "lensing shear", "", 1.0, 0.0); 297 gfits_define_bintable_column (header, "E", "LENS_X22_SH_PSF", "lensing shear", "", 1.0, 0.0); 298 gfits_define_bintable_column (header, "E", "LENS_E1_SH_PSF", "lensing shear", "", 1.0, 0.0); 299 gfits_define_bintable_column (header, "E", "LENS_E2_SH_PSF", "lensing shear", "", 1.0, 0.0); 300 gfits_define_bintable_column (header, "E", "LENS_E1_PSF", "psf polarization", "", 1.0, 0.0); 301 gfits_define_bintable_column (header, "E", "LENS_E2_PSF", "psf polarization", "", 1.0, 0.0); 302 302 303 303 gfits_define_bintable_column (header, "I", "SRC_CHIP_NUM", "number of source chip for warp", "", 1.0, 0.0); … … 382 382 gfits_define_bintable_column (header, "E", "MOMENTS_M4C", "fourth moment cos(t)", "pixels^4", 1.0, 0.0); 383 383 gfits_define_bintable_column (header, "E", "MOMENTS_M4S", "fourth moment sin(t)", "pixels^4", 1.0, 0.0); 384 gfits_define_bintable_column (header, "E", " X11_SM_OBJ","lensing smear", "", 1.0, 0.0);385 gfits_define_bintable_column (header, "E", " X12_SM_OBJ","lensing smear", "", 1.0, 0.0);386 gfits_define_bintable_column (header, "E", " X22_SM_OBJ","lensing smear", "", 1.0, 0.0);387 gfits_define_bintable_column (header, "E", " E1_SM_OBJ","lensing smear", "", 1.0, 0.0);388 gfits_define_bintable_column (header, "E", " E2_SM_OBJ","lensing smear", "", 1.0, 0.0);389 gfits_define_bintable_column (header, "E", " X11_SH_OBJ","lensing shear", "", 1.0, 0.0);390 gfits_define_bintable_column (header, "E", " X12_SH_OBJ","lensing shear", "", 1.0, 0.0);391 gfits_define_bintable_column (header, "E", " X22_SH_OBJ","lensing shear", "", 1.0, 0.0);392 gfits_define_bintable_column (header, "E", " E1_SH_OBJ","lensing shear", "", 1.0, 0.0);393 gfits_define_bintable_column (header, "E", " E2_SH_OBJ","lensing shear", "", 1.0, 0.0);394 gfits_define_bintable_column (header, "E", " X11_SM_PSF","lensing smear", "", 1.0, 0.0);395 gfits_define_bintable_column (header, "E", " X12_SM_PSF","lensing smear", "", 1.0, 0.0);396 gfits_define_bintable_column (header, "E", " X22_SM_PSF","lensing smear", "", 1.0, 0.0);397 gfits_define_bintable_column (header, "E", " E1_SM_PSF","lensing smear", "", 1.0, 0.0);398 gfits_define_bintable_column (header, "E", " E2_SM_PSF","lensing smear", "", 1.0, 0.0);399 gfits_define_bintable_column (header, "E", " X11_SH_PSF","lensing shear", "", 1.0, 0.0);400 gfits_define_bintable_column (header, "E", " X12_SH_PSF","lensing shear", "", 1.0, 0.0);401 gfits_define_bintable_column (header, "E", " X22_SH_PSF","lensing shear", "", 1.0, 0.0);402 gfits_define_bintable_column (header, "E", " E1_SH_PSF","lensing shear", "", 1.0, 0.0);403 gfits_define_bintable_column (header, "E", " E2_SH_PSF","lensing shear", "", 1.0, 0.0);404 gfits_define_bintable_column (header, "E", " E1_PSF","psf polarization", "", 1.0, 0.0);405 gfits_define_bintable_column (header, "E", " E2_PSF","psf polarization", "", 1.0, 0.0);384 gfits_define_bintable_column (header, "E", "LENS_X11_SM_OBJ", "lensing smear", "", 1.0, 0.0); 385 gfits_define_bintable_column (header, "E", "LENS_X12_SM_OBJ", "lensing smear", "", 1.0, 0.0); 386 gfits_define_bintable_column (header, "E", "LENS_X22_SM_OBJ", "lensing smear", "", 1.0, 0.0); 387 gfits_define_bintable_column (header, "E", "LENS_E1_SM_OBJ", "lensing smear", "", 1.0, 0.0); 388 gfits_define_bintable_column (header, "E", "LENS_E2_SM_OBJ", "lensing smear", "", 1.0, 0.0); 389 gfits_define_bintable_column (header, "E", "LENS_X11_SH_OBJ", "lensing shear", "", 1.0, 0.0); 390 gfits_define_bintable_column (header, "E", "LENS_X12_SH_OBJ", "lensing shear", "", 1.0, 0.0); 391 gfits_define_bintable_column (header, "E", "LENS_X22_SH_OBJ", "lensing shear", "", 1.0, 0.0); 392 gfits_define_bintable_column (header, "E", "LENS_E1_SH_OBJ", "lensing shear", "", 1.0, 0.0); 393 gfits_define_bintable_column (header, "E", "LENS_E2_SH_OBJ", "lensing shear", "", 1.0, 0.0); 394 gfits_define_bintable_column (header, "E", "LENS_X11_SM_PSF", "lensing smear", "", 1.0, 0.0); 395 gfits_define_bintable_column (header, "E", "LENS_X12_SM_PSF", "lensing smear", "", 1.0, 0.0); 396 gfits_define_bintable_column (header, "E", "LENS_X22_SM_PSF", "lensing smear", "", 1.0, 0.0); 397 gfits_define_bintable_column (header, "E", "LENS_E1_SM_PSF", "lensing smear", "", 1.0, 0.0); 398 gfits_define_bintable_column (header, "E", "LENS_E2_SM_PSF", "lensing smear", "", 1.0, 0.0); 399 gfits_define_bintable_column (header, "E", "LENS_X11_SH_PSF", "lensing shear", "", 1.0, 0.0); 400 gfits_define_bintable_column (header, "E", "LENS_X12_SH_PSF", "lensing shear", "", 1.0, 0.0); 401 gfits_define_bintable_column (header, "E", "LENS_X22_SH_PSF", "lensing shear", "", 1.0, 0.0); 402 gfits_define_bintable_column (header, "E", "LENS_E1_SH_PSF", "lensing shear", "", 1.0, 0.0); 403 gfits_define_bintable_column (header, "E", "LENS_E2_SH_PSF", "lensing shear", "", 1.0, 0.0); 404 gfits_define_bintable_column (header, "E", "LENS_E1_PSF", "psf polarization", "", 1.0, 0.0); 405 gfits_define_bintable_column (header, "E", "LENS_E2_PSF", "psf polarization", "", 1.0, 0.0); 406 406 407 407 gfits_define_bintable_column (header, "I", "SRC_CHIP_NUM", "number of source chip for warp", "", 1.0, 0.0); -
branches/eam_branches/ipp-20150625/Ohana/src/libdvo/src/dbExtractAverages.c
r38153 r38983 50 50 51 51 /* return average.field based on the selection */ 52 dbValue dbExtractAverages (Average *average, SecFilt *secfilt, Measure *measure, Lensobj *lensobj, StarPar *starpar, dbField *field) {52 dbValue dbExtractAverages (Average *average, SecFilt *secfilt, Measure *measure, Lensobj *lensobj, StarPar *starpar, GalPhot *galphot, dbField *field) { 53 53 54 54 // off_t i; … … 408 408 break; 409 409 410 case MAG_OPTION_GAL_MAG: { value.Flt = GalphotValue_GAL_MAG (field->photcode, field->magClass, galphot, average->Ngalphot); break; } 411 case MAG_OPTION_GAL_MAG_ERR: { value.Flt = GalphotValue_GAL_MAG_ERR (field->photcode, field->magClass, galphot, average->Ngalphot); break; } 412 case MAG_OPTION_GAL_MAJ: { value.Flt = GalphotValue_GAL_MAJ (field->photcode, field->magClass, galphot, average->Ngalphot); break; } 413 case MAG_OPTION_GAL_MAJ_ERR: { value.Flt = GalphotValue_GAL_MAJ_ERR (field->photcode, field->magClass, galphot, average->Ngalphot); break; } 414 case MAG_OPTION_GAL_MIN: { value.Flt = GalphotValue_GAL_MIN (field->photcode, field->magClass, galphot, average->Ngalphot); break; } 415 case MAG_OPTION_GAL_MIN_ERR: { value.Flt = GalphotValue_GAL_MIN_ERR (field->photcode, field->magClass, galphot, average->Ngalphot); break; } 416 case MAG_OPTION_GAL_THETA: { value.Flt = GalphotValue_GAL_THETA (field->photcode, field->magClass, galphot, average->Ngalphot); break; } 417 case MAG_OPTION_GAL_THETA_ERR: { value.Flt = GalphotValue_GAL_THETA_ERR(field->photcode, field->magClass, galphot, average->Ngalphot); break; } 418 case MAG_OPTION_GAL_INDEX: { value.Flt = GalphotValue_GAL_INDEX (field->photcode, field->magClass, galphot, average->Ngalphot); break; } 419 case MAG_OPTION_GAL_CHISQ: { value.Flt = GalphotValue_GAL_CHISQ (field->photcode, field->magClass, galphot, average->Ngalphot); break; } 420 case MAG_OPTION_GAL_NPIX: { value.Flt = GalphotValue_GAL_NPIX (field->photcode, field->magClass, galphot, average->Ngalphot); break; } 421 case MAG_OPTION_GAL_TYPE: { value.Flt = GalphotValue_GAL_TYPE (field->photcode, field->magClass, galphot, average->Ngalphot); break; } 422 410 423 default: 411 424 break; … … 413 426 break; 414 427 428 // this section assumes a 1-to-1 match between average and starpar 415 429 case AVE_E_BV: { value.Flt = starpar->Ebv; break; } 416 430 case AVE_E_BV_ERR: { value.Flt = starpar->dEbv; break; } -
branches/eam_branches/ipp-20150625/Ohana/src/libdvo/src/dbExtractMeasures.c
r38667 r38983 287 287 case MAG_OPTION_E2: 288 288 289 case MAG_OPTION_GAL_MAG: 290 case MAG_OPTION_GAL_MAG_ERR: 291 case MAG_OPTION_GAL_MAJ: 292 case MAG_OPTION_GAL_MAJ_ERR: 293 case MAG_OPTION_GAL_MIN: 294 case MAG_OPTION_GAL_MIN_ERR: 295 case MAG_OPTION_GAL_THETA: 296 case MAG_OPTION_GAL_THETA_ERR: 297 case MAG_OPTION_GAL_INDEX: 298 case MAG_OPTION_GAL_CHISQ: 299 case MAG_OPTION_GAL_NPIX: 300 case MAG_OPTION_GAL_TYPE: 301 289 302 case MAG_OPTION_NONE: 290 303 break; -
branches/eam_branches/ipp-20150625/Ohana/src/libdvo/src/dbFields.c
r38667 r38983 161 161 } 162 162 163 int dbFieldNeedGalphot (dbField *fields, int Nfields) { 164 int i; 165 for (i = 0; i < Nfields; i++) { 166 if (fields[i].magOption == MAG_OPTION_NONE) continue; // non-measure fields do not have a photcode 167 168 if (fields[i].magOption == MAG_OPTION_GAL_MAG ) return TRUE; 169 if (fields[i].magOption == MAG_OPTION_GAL_MAG_ERR ) return TRUE; 170 if (fields[i].magOption == MAG_OPTION_GAL_MAJ ) return TRUE; 171 if (fields[i].magOption == MAG_OPTION_GAL_MAJ_ERR ) return TRUE; 172 if (fields[i].magOption == MAG_OPTION_GAL_MIN ) return TRUE; 173 if (fields[i].magOption == MAG_OPTION_GAL_MIN_ERR ) return TRUE; 174 if (fields[i].magOption == MAG_OPTION_GAL_THETA ) return TRUE; 175 if (fields[i].magOption == MAG_OPTION_GAL_THETA_ERR ) return TRUE; 176 if (fields[i].magOption == MAG_OPTION_GAL_INDEX ) return TRUE; 177 if (fields[i].magOption == MAG_OPTION_GAL_CHISQ ) return TRUE; 178 if (fields[i].magOption == MAG_OPTION_GAL_NPIX ) return TRUE; 179 if (fields[i].magOption == MAG_OPTION_GAL_TYPE ) return TRUE; 180 } 181 return FALSE; 182 } 183 163 184 dvoMagSourceType GetMagSource (char *string) { 164 185 … … 193 214 if (!strcasecmp (string, "aper")) return (MAG_CLASS_APER); 194 215 if (!strcasecmp (string, "ap")) return (MAG_CLASS_APER); 216 217 // these model classes are only valid for galphot mag options 218 if (!strcasecmp (string, "dev")) return (MAG_CLASS_DEV); 219 if (!strcasecmp (string, "exp")) return (MAG_CLASS_EXP); 220 if (!strcasecmp (string, "ser")) return (MAG_CLASS_SER); 221 195 222 196 223 return MAG_CLASS_NONE; … … 247 274 if (!strcasecmp (string, "E2")) return MAG_OPTION_E2; 248 275 276 if (!strcasecmp (string, "GAL_MAG" )) return MAG_OPTION_GAL_MAG ; 277 if (!strcasecmp (string, "GAL_MAG_ERR")) return MAG_OPTION_GAL_MAG_ERR ; 278 if (!strcasecmp (string, "GAL_MAJ" )) return MAG_OPTION_GAL_MAJ ; 279 if (!strcasecmp (string, "GAL_MAJ_ERR")) return MAG_OPTION_GAL_MAJ_ERR ; 280 if (!strcasecmp (string, "GAL_MIN" )) return MAG_OPTION_GAL_MIN ; 281 if (!strcasecmp (string, "GAL_MIN_ERR")) return MAG_OPTION_GAL_MIN_ERR ; 282 if (!strcasecmp (string, "GAL_THETA" )) return MAG_OPTION_GAL_THETA ; 283 if (!strcasecmp (string, "GAL_THETA_ERR")) return MAG_OPTION_GAL_THETA_ERR ; 284 if (!strcasecmp (string, "GAL_INDEX" )) return MAG_OPTION_GAL_INDEX ; 285 if (!strcasecmp (string, "GAL_CHISQ" )) return MAG_OPTION_GAL_CHISQ ; 286 if (!strcasecmp (string, "GAL_NPIX" )) return MAG_OPTION_GAL_NPIX ; 287 if (!strcasecmp (string, "GAL_TYPE" )) return MAG_OPTION_GAL_TYPE ; 288 249 289 return MAG_OPTION_NONE; 250 290 } … … 373 413 free (word); 374 414 return FALSE; 415 } 416 417 if (dbFieldNeedGalphot (field, 1)) { 418 field->magClass = MAG_CLASS_SER; // for galphot, we need to set a default model class (SERSIC) 375 419 } 376 420 -
branches/eam_branches/ipp-20150625/Ohana/src/libdvo/src/dvo_photcode_ops.c
r38756 r38983 1009 1009 // mag_AB = -2.5 log (flux_cgs) - 48.6 (by definition) [~Vega flux in V-band] 1010 1010 // flux_Jy = flux_cgs * 10^23 1011 1011 1012 // -2.5 log (flux_cgs) = -2.5 log (flux_Jy * 10^-23) = -2.5 log (flux_Jy) + 2.5*23 1013 // -2.5 log (flux_cgs) = -2.5 log (flux_Jy) + 57.5 1012 1014 1013 1015 // from these we get: … … 1017 1019 // mag_AB = mag_inst + ZP 1018 1020 1019 // log(flux_Jy) = -0.4*mag_inst - 0.4*ZP + 3.561021 // log(flux_Jy) = -0.4*mag_inst - 0.4*ZP + 3.56 1020 1022 // mag_inst = -2.5 log (flux_Jy) - ZP + 8.9 1021 1023 … … 1023 1025 1024 1026 // -2.5 log (flux_inst) = -2.5 log (flux_Jy) - ZP + 8.9 1027 1025 1028 // log (flux_inst) = log (flux_Jy) + 0.4 ZP - 3.56 1029 1026 1030 // flux_inst = flux_Jy * 10^(0.4*ZP - 3.56) 1031 1027 1032 // flux_Jy = flux_inst * 10^(3.56 - 0.4*ZP) = flux_inst * zpFactor 1033 1034 // flux_Jy = flux_inst * 10^(-0.4*(ZP - 8.9)) = flux_inst * zpFactor 1035 1028 1036 // flux_Jy = flux_inst * 3630.8 * 10^(-0.4*ZP) 1029 1037 … … 1186 1194 switch (class) { 1187 1195 case MAG_CLASS_PSF: 1188 Fave = MagToFlux(secfilt[Ns].M );1196 Fave = MagToFlux(secfilt[Ns].M - 8.9); 1189 1197 break; 1190 1198 case MAG_CLASS_KRON: 1191 Fave = MagToFlux(secfilt[Ns].Mkron );1199 Fave = MagToFlux(secfilt[Ns].Mkron - 8.9); 1192 1200 break; 1193 1201 case MAG_CLASS_APER: 1194 Fave = MagToFlux(secfilt[Ns].Map );1202 Fave = MagToFlux(secfilt[Ns].Map - 8.9); 1195 1203 break; 1196 1204 default: … … 1201 1209 switch (class) { 1202 1210 case MAG_CLASS_PSF: 1203 Fave = isnan (secfilt[Ns].FpsfWrp) ? MagToFlux(secfilt[Ns].MpsfWrp ) : secfilt[Ns].FpsfWrp;1211 Fave = isnan (secfilt[Ns].FpsfWrp) ? MagToFlux(secfilt[Ns].MpsfWrp - 8.9) : secfilt[Ns].FpsfWrp; 1204 1212 break; 1205 1213 case MAG_CLASS_KRON: 1206 Fave = isnan (secfilt[Ns].FkronWrp) ? MagToFlux(secfilt[Ns].MkronWrp ) : secfilt[Ns].FkronWrp;1214 Fave = isnan (secfilt[Ns].FkronWrp) ? MagToFlux(secfilt[Ns].MkronWrp - 8.9) : secfilt[Ns].FkronWrp; 1207 1215 break; 1208 1216 case MAG_CLASS_APER: 1209 Fave = isnan (secfilt[Ns].FapWrp) ? MagToFlux(secfilt[Ns].MapWrp ) : secfilt[Ns].FapWrp;1217 Fave = isnan (secfilt[Ns].FapWrp) ? MagToFlux(secfilt[Ns].MapWrp - 8.9) : secfilt[Ns].FapWrp; 1210 1218 break; 1211 1219 default: … … 1216 1224 switch (class) { 1217 1225 case MAG_CLASS_PSF: 1218 Fave = isnan (secfilt[Ns].FpsfStk) ? MagToFlux(secfilt[Ns].MpsfStk ) : secfilt[Ns].FpsfStk;1226 Fave = isnan (secfilt[Ns].FpsfStk) ? MagToFlux(secfilt[Ns].MpsfStk - 8.9) : secfilt[Ns].FpsfStk; 1219 1227 break; 1220 1228 case MAG_CLASS_KRON: 1221 Fave = isnan (secfilt[Ns].FkronStk) ? MagToFlux(secfilt[Ns].MkronStk ) : secfilt[Ns].FkronStk;1229 Fave = isnan (secfilt[Ns].FkronStk) ? MagToFlux(secfilt[Ns].MkronStk - 8.9) : secfilt[Ns].FkronStk; 1222 1230 break; 1223 1231 case MAG_CLASS_APER: 1224 Fave = isnan (secfilt[Ns].FapStk) ? MagToFlux(secfilt[Ns].MapStk ) : secfilt[Ns].FapStk;1232 Fave = isnan (secfilt[Ns].FapStk) ? MagToFlux(secfilt[Ns].MapStk - 8.9) : secfilt[Ns].FapStk; 1225 1233 break; 1226 1234 default: … … 1246 1254 switch (class) { 1247 1255 case MAG_CLASS_PSF: 1248 dFave = secfilt[Ns].dM * MagToFlux(secfilt[Ns].M );1256 dFave = secfilt[Ns].dM * MagToFlux(secfilt[Ns].M - 8.9); 1249 1257 break; 1250 1258 case MAG_CLASS_KRON: 1251 dFave = secfilt[Ns].dMkron * MagToFlux(secfilt[Ns].Mkron );1259 dFave = secfilt[Ns].dMkron * MagToFlux(secfilt[Ns].Mkron - 8.9); 1252 1260 break; 1253 1261 case MAG_CLASS_APER: 1254 dFave = secfilt[Ns].dMap * MagToFlux(secfilt[Ns].Map );1262 dFave = secfilt[Ns].dMap * MagToFlux(secfilt[Ns].Map - 8.9); 1255 1263 break; 1256 1264 default: … … 1880 1888 LENSFIELD(E1); 1881 1889 LENSFIELD(E2); 1890 1891 # if (0) 1892 float GalphotValue_GAL_MAG (PhotCode *code, dvoMagClassType class, GalPhot *galphot, int Ngalphot) { 1893 int n; 1894 if (code == NULL) return NAN; 1895 for (n = 0; n < Ngalphot; n++) { 1896 short equivCode = GetPhotcodeEquivCodebyCode (galphot[n].photcode); 1897 if (!equivCode) continue; 1898 if (equivCode != code->code) continue; 1899 switch (class) { 1900 case MAG_CLASS_SER: 1901 if (galphot[n].modelType != 5) continue; 1902 break; 1903 case MAG_CLASS_EXP: 1904 if (galphot[n].modelType != 6) continue; 1905 break; 1906 case MAG_CLASS_DEV: 1907 if (galphot[n].modelType != 7) continue; 1908 break; 1909 default: 1910 return NAN; 1911 } 1912 float value = galphot[n].mag; 1913 return (value); 1914 } 1915 return NAN; 1916 } 1917 # endif 1918 1919 # define GALPHOT_FIELD(NAME, VALUE) \ 1920 float GalphotValue_##NAME (PhotCode *code, dvoMagClassType class, GalPhot *galphot, int Ngalphot) { \ 1921 int n; \ 1922 if (code == NULL) return NAN; \ 1923 for (n = 0; n < Ngalphot; n++) { \ 1924 short equivCode = GetPhotcodeEquivCodebyCode (galphot[n].photcode); \ 1925 if (!equivCode) continue; \ 1926 if (equivCode != code->code) continue; \ 1927 switch (class) { \ 1928 case MAG_CLASS_SER: \ 1929 if (galphot[n].modelType != 5) continue; \ 1930 break; \ 1931 case MAG_CLASS_EXP: \ 1932 if (galphot[n].modelType != 6) continue; \ 1933 break; \ 1934 case MAG_CLASS_DEV: \ 1935 if (galphot[n].modelType != 7) continue; \ 1936 break; \ 1937 default: \ 1938 return NAN; \ 1939 } \ 1940 float value = galphot[n].VALUE; \ 1941 return (value); \ 1942 } \ 1943 return NAN; \ 1944 } 1945 1946 GALPHOT_FIELD(GAL_MAG, mag) 1947 GALPHOT_FIELD(GAL_MAG_ERR, magErr) 1948 GALPHOT_FIELD(GAL_MAJ, majorAxis) 1949 GALPHOT_FIELD(GAL_MAJ_ERR, majorAxisErr) 1950 GALPHOT_FIELD(GAL_MIN, minorAxis) 1951 GALPHOT_FIELD(GAL_MIN_ERR, minorAxisErr) 1952 GALPHOT_FIELD(GAL_THETA, theta) 1953 GALPHOT_FIELD(GAL_THETA_ERR, thetaErr) 1954 GALPHOT_FIELD(GAL_INDEX, index) 1955 GALPHOT_FIELD(GAL_CHISQ, chisq) 1956 GALPHOT_FIELD(GAL_NPIX, Npix) 1957 GALPHOT_FIELD(GAL_TYPE, modelType) -
branches/eam_branches/ipp-20150625/Ohana/src/opihi
- Property svn:mergeinfo changed
/trunk/Ohana/src/opihi merged: 38600-38601,38650,38972
- Property svn:mergeinfo changed
-
branches/eam_branches/ipp-20150625/Ohana/src/opihi/cmd.basic/list.c
r37049 r38983 1 1 # include "basic.h" 2 # include <glob.h> 2 3 # define D_NLINES 100 3 4 static char prompt[] = ">> "; 4 5 6 int SplitByCharToList (int argc, char **argv, int EXCEL_STYLE); 7 int GlobToList (char *listname, char *Glob, int EXCEL_STYLE); 8 int CommandToList (char *listname, char *Command, int EXCEL_STYLE); 9 5 10 int list (int argc, char **argv) { 6 11 7 12 int ThisList, depth, i, done, found; 8 13 char *input, line[1024]; 9 int N, Nbytes, NBYTES, Nread, status; 10 int RunCommand; 11 char *A, *B, *val, *Cmd; 12 FILE *f; 13 14 Cmd = NULL; 15 RunCommand = FALSE; 14 int N; 15 16 char *Command = NULL; 16 17 if ((N = get_argument (argc, argv, "-x"))) { 17 18 remove_argument (N, &argc, argv); 18 Cmd = strcreate (argv[N]); 19 remove_argument (N, &argc, argv); 20 RunCommand = TRUE; 19 Command = strcreate (argv[N]); 20 remove_argument (N, &argc, argv); 21 } 22 if ((N = get_argument (argc, argv, "-exec"))) { 23 remove_argument (N, &argc, argv); 24 Command = strcreate (argv[N]); 25 remove_argument (N, &argc, argv); 26 } 27 28 char *Glob = NULL; 29 if ((N = get_argument (argc, argv, "-glob"))) { 30 remove_argument (N, &argc, argv); 31 Glob = strcreate (argv[N]); 32 remove_argument (N, &argc, argv); 21 33 } 22 34 … … 37 49 return (FALSE); 38 50 } 39 ListVectorsToList (argv[1]); 51 ListVectorsToList (argv[1]); // <-- generate the list 40 52 return TRUE; 41 53 } … … 47 59 return (FALSE); 48 60 } 49 ListBuffersToList (argv[1]); 61 ListBuffersToList (argv[1]); // <-- generate the list 50 62 return TRUE; 63 } 64 65 if (Command) { 66 if (argc != 2) { 67 gprint (GP_ERR, "USAGE: list (root) -exec (command)\n"); 68 gprint (GP_ERR, " OR: list (root) -x (command)\n"); 69 return (FALSE); 70 } 71 int status = CommandToList (argv[1], Command, EXCEL_STYLE); // <-- generate the list 72 return status; 73 } 74 75 if (Glob) { 76 if (argc != 2) { 77 gprint (GP_ERR, "USAGE: list (root) -glob (fileglob)\n"); 78 return (FALSE); 79 } 80 int status = GlobToList (argv[1], Glob, EXCEL_STYLE); // <-- generate the list 81 return status; 51 82 } 52 83 … … 74 105 return (FALSE); 75 106 } 76 77 int j, nWords; 78 char splitter; 79 char *new, *word, *ptr; 80 81 nWords = 0; 82 splitter = argv[3][0]; 83 84 for (i = 0; i < argc - 3; i++) { 85 new = strcreate (argv[i+3]); 86 for (j = 0; new[j]; j++) { 87 if (new[j] == splitter) new[j] = ' '; 88 } 89 90 ptr = new; 91 while (ptr) { 92 word = thisword (ptr); 93 if (!word) break; 94 95 // sprintf (line, "%s:%d", argv[1], nWords); 96 set_list_varname (line, argv[1], nWords, EXCEL_STYLE); 97 98 set_str_variable (line, word); 99 FREE (word); 100 ptr = nextword (ptr); 101 nWords ++; 102 } 103 FREE (new); 104 } 105 sprintf (line, "%s:n", argv[1]); 106 set_int_variable (line, nWords); 107 108 return (TRUE); 107 int status = SplitByCharToList (argc, argv, EXCEL_STYLE); // <-- generate the list 108 return status; 109 109 } 110 110 … … 200 200 gprint (GP_ERR, "USAGE: list (root) : supply list data, terminate with 'END'\n"); 201 201 gprint (GP_ERR, "USAGE: list (root) -x (command) : create list from shell output\n"); 202 gprint (GP_ERR, "USAGE: list (root) -exec (command) : create list from shell output\n"); 202 203 gprint (GP_ERR, "USAGE: list (root) -vectors : create list from vector names\n"); 203 204 gprint (GP_ERR, "USAGE: list (root) -buffers : create list from buffer names\n"); … … 208 209 gprint (GP_ERR, "USAGE: list (root) -del (word) : delete the entry by value\n"); 209 210 return (FALSE); 210 }211 212 if (RunCommand) {213 214 /* val will hold the result */215 NBYTES = 1024;216 ALLOCATE (val, char, NBYTES);217 218 /* need to loop until command produces no more output,219 REALLOCATING as needed. */220 f = popen (Cmd, "r");221 done = FALSE;222 Nbytes = 0;223 while (!done) {224 Nread = fread (&val[Nbytes], 1, 1023, f);225 if (Nread < 0) {226 gprint (GP_ERR, "error reading from command\n");227 done = TRUE;228 }229 if (Nread > 0) {230 Nbytes += Nread;231 NBYTES = 1024 + Nbytes;232 REALLOCATE (val, char, NBYTES);233 }234 if (Nread == 0) {235 done = TRUE;236 }237 238 }239 val[Nbytes] = 0;240 status = pclose (f);241 free (Cmd);242 243 if (status) {244 gprint (GP_ERR, "warning: exit status of command %d\n", status);245 }246 247 A = B = val;248 for (i = 0; B != (char *) NULL;) {249 while (isspace (*A) && (*A != 0)) A++;250 B = strchr (A, '\n');251 if (B != (char *) NULL) { *B = 0; }252 if (*A != 0) {253 // sprintf (line, "%s:%d", argv[1], i);254 set_list_varname (line, argv[1], i, EXCEL_STYLE);255 set_str_variable (line, A);256 A = B + 1;257 i++;258 }259 }260 free (val);261 262 sprintf (line, "%s:n", argv[1]);263 set_int_variable (line, i);264 return (TRUE);265 211 } 266 212 … … 309 255 return (TRUE); 310 256 } 257 258 int CommandToList (char *listname, char *Command, int EXCEL_STYLE) { 259 260 char line[1024]; 261 262 /* val will hold the result */ 263 int NBYTES = 1024; 264 char *val; 265 ALLOCATE (val, char, NBYTES); 266 267 /* need to loop until command produces no more output, 268 REALLOCATING as needed. */ 269 FILE *f = popen (Command, "r"); 270 271 int done = FALSE; 272 int Nbytes = 0; 273 while (!done) { 274 int Nread = fread (&val[Nbytes], 1, 1023, f); 275 if (Nread < 0) { 276 gprint (GP_ERR, "error reading from command\n"); 277 done = TRUE; 278 } 279 if (Nread > 0) { 280 Nbytes += Nread; 281 NBYTES = 1024 + Nbytes; 282 REALLOCATE (val, char, NBYTES); 283 } 284 if (Nread == 0) { 285 done = TRUE; 286 } 287 } 288 val[Nbytes] = 0; 289 int status = pclose (f); 290 free (Command); 291 292 if (status) { 293 gprint (GP_ERR, "warning: exit status of command %d\n", status); 294 } 295 296 int i; 297 char *A = val; 298 char *B = val; 299 for (i = 0; B != (char *) NULL;) { 300 while (isspace (*A) && (*A != 0)) A++; 301 B = strchr (A, '\n'); 302 if (B != (char *) NULL) { *B = 0; } 303 if (*A != 0) { 304 set_list_varname (line, listname, i, EXCEL_STYLE); 305 set_str_variable (line, A); 306 A = B + 1; 307 i++; 308 } 309 } 310 free (val); 311 312 sprintf (line, "%s:n", listname); 313 set_int_variable (line, i); 314 return (TRUE); 315 } 316 317 int GlobToList (char *listname, char *Glob, int EXCEL_STYLE) { 318 319 int i; 320 char line[1024]; 321 glob_t globList; 322 323 // parse the filename as a glob 324 globList.gl_offs = 0; 325 glob (Glob, 0, NULL, &globList); 326 327 // if the glob does not match, save the literal word: 328 // otherwise save all glob matches 329 if (globList.gl_pathc == 0) { 330 sprintf (line, "%s:n", listname); 331 set_int_variable (line, 0); 332 return TRUE; 333 } 334 335 int Nfile = globList.gl_pathc; 336 for (i = 0; i < Nfile; i++) { 337 set_list_varname (line, listname, i, EXCEL_STYLE); 338 set_str_variable (line, globList.gl_pathv[i]); 339 } 340 sprintf (line, "%s:n", listname); 341 set_int_variable (line, Nfile); 342 return (TRUE); 343 } 344 345 int SplitByCharToList (int argc, char **argv, int EXCEL_STYLE) { 346 347 int i, j; 348 char line[1024]; 349 350 int nWords = 0; 351 char splitter = argv[3][0]; 352 353 for (i = 0; i < argc - 3; i++) { 354 char *new = strcreate (argv[i+3]); 355 for (j = 0; new[j]; j++) { 356 if (new[j] == splitter) new[j] = ' '; 357 } 358 359 char *ptr = new; 360 while (ptr) { 361 char *word = thisword (ptr); 362 if (!word) break; 363 364 set_list_varname (line, argv[1], nWords, EXCEL_STYLE); 365 366 set_str_variable (line, word); 367 FREE (word); 368 ptr = nextword (ptr); 369 nWords ++; 370 } 371 FREE (new); 372 } 373 sprintf (line, "%s:n", argv[1]); 374 set_int_variable (line, nWords); 375 376 return (TRUE); 377 } -
branches/eam_branches/ipp-20150625/Ohana/src/opihi/dvo/avextract.c
r38471 r38983 167 167 int needLensobj = dbFieldNeedLensobj (fields, Nfields); 168 168 int needStarpar = dbFieldNeedStarpar (fields, Nfields, TRUE); 169 int needGalphot = dbFieldNeedGalphot (fields, Nfields); 169 170 170 171 // grab data from all selected sky regions … … 191 192 catalog.catflags |= needLensobj ? DVO_LOAD_LENSOBJ : DVO_SKIP_LENSOBJ; 192 193 catalog.catflags |= needStarpar ? DVO_LOAD_STARPAR : DVO_SKIP_STARPAR; 194 catalog.catflags |= needGalphot ? DVO_LOAD_GALPHOT : DVO_SKIP_GALPHOT; 193 195 catalog.Nsecfilt = 0; 194 196 … … 219 221 StarPar *starpar = needStarpar ? &catalog.starpar[m] : NULL; 220 222 223 m = average->galphotOffset; 224 GalPhot *galphot = needGalphot ? &catalog.galphot[m] : NULL; 225 221 226 m = j*Nsecfilt; 222 227 SecFilt *secfilt = &catalog.secfilt[m]; … … 224 229 for (n = 0; n < Nfields; n++) { 225 230 // we are passing in the *first* measure, but average->Nmeasure gives the count 226 values[n] = dbExtractAverages (average, secfilt, measure, lensobj, starpar, &fields[n]);231 values[n] = dbExtractAverages (average, secfilt, measure, lensobj, starpar, galphot, &fields[n]); 227 232 } 228 233 -
branches/eam_branches/ipp-20150625/Ohana/src/opihi/dvo/avmatch.c
r38471 r38983 238 238 dbExtractAveragesInitAve (); 239 239 for (n = 0; n < Nfields; n++) { 240 values[n] = dbExtractAverages (average, secfilt, measure, lensobj, starpar, &fields[n]);240 values[n] = dbExtractAverages (average, secfilt, measure, lensobj, starpar, NULL, &fields[n]); 241 241 } 242 242 -
branches/eam_branches/ipp-20150625/Ohana/src/relastro/src/high_speed_utils.c
r37807 r38983 141 141 off_t n; 142 142 for (n = 0; n < NfieldsA; n++) { 143 valuesA[n] = dbExtractAverages (&catalog[0].average[i], &catalog[0].secfilt[i*Nsecfilt], &catalog[0].measure[m], NULL, NULL, &fieldsA[n]);143 valuesA[n] = dbExtractAverages (&catalog[0].average[i], &catalog[0].secfilt[i*Nsecfilt], &catalog[0].measure[m], NULL, NULL, NULL, &fieldsA[n]); 144 144 } 145 145 return dbBooleanCond(stackA, NstackA, valuesA); … … 155 155 off_t n; 156 156 for (n = 0; n < NfieldsB; n++) { 157 valuesB[n] = dbExtractAverages (&catalog[0].average[i], &catalog[0].secfilt[i*Nsecfilt], &catalog[0].measure[m], NULL, NULL, &fieldsB[n]);157 valuesB[n] = dbExtractAverages (&catalog[0].average[i], &catalog[0].secfilt[i*Nsecfilt], &catalog[0].measure[m], NULL, NULL, NULL, &fieldsB[n]); 158 158 } 159 159 return dbBooleanCond(stackB, NstackB, valuesB); -
branches/eam_branches/ipp-20150625/Ohana/src/relphot/src/setMrelCatalog.c
r38639 r38983 14 14 # define CHECK_VALID_MAG(MAG,D_MAG) (isfinite(MAG) && isfinite(D_MAG) && (MAG > -5.0) && (MAG < 30.0)) 15 15 # define CHECK_VALID_FLUX(FLUX,D_FLUX) (isfinite(FLUX) && isfinite(D_FLUX)) 16 17 // set A to B if B > A or if A is NAN, as long as B is not NAN 18 # define MAX_NOT_NAN(A,B) { if (isfinite(B) && (!isfinite(A) || (B > A))) A = B; } 16 19 17 20 static float MagToFlux (float Mag) { … … 162 165 // various steps only relevant to the final pass 163 166 if (isSetMrelFinal) { 164 if (isfinite(measure[k].psfQF) && (measure[k].psfQF > results->psfQfMax[Nsec])) results->psfQfMax[Nsec] = measure[k].psfQF;165 if (isfinite(measure[k].psfQFperf) && (measure[k].psfQFperf > results->psfQfPerfMax[Nsec])) results->psfQfPerfMax[Nsec] = measure[k].psfQFperf;167 MAX_NOT_NAN (results->psfQfMax[Nsec], measure[k].psfQF); 168 MAX_NOT_NAN (results->psfQfPerfMax[Nsec], measure[k].psfQFperf); 166 169 167 170 // are we a PS1 exposure photcode? (hard-wired photcodes) … … 219 222 if (isSetMrelFinal) { 220 223 Map = PhotCat (&measure[k], MAG_CLASS_APER); 221 dMap = MAX (hypot(measure[k].dMap, code->photomErrSys), MIN_ERROR); 224 225 // NOTE: for PV3, apFluxErr is broken (see pmSourcePhotometry.c:245). we are going to 226 // use PSF flux error instead here: 227 // dMap = MAX (hypot(measure[k].dMap, code->photomErrSys), MIN_ERROR); 228 dMap = MAX (hypot(measure[k].dM, code->photomErrSys), MIN_ERROR); 229 222 230 if (CHECK_VALID_MAG(Map, dMap)) { 223 231 int Nap = results->aperData[Nsec].Nlist; … … 367 375 secfilt[Nsec].psfQfPerfMax = results->psfQfPerfMax[Nsec]; 368 376 369 if (isfinite(secfilt[Nsec].psfQfMax) && (secfilt[Nsec].psfQfMax > psfQfMax)) psfQfMax = secfilt[Nsec].psfQfMax;370 if (isfinite(secfilt[Nsec].psfQfPerfMax) && (secfilt[Nsec].psfQfPerfMax > psfQfPerfMax)) psfQfPerfMax = secfilt[Nsec].psfQfPerfMax;377 MAX_NOT_NAN (psfQfMax, secfilt[Nsec].psfQfMax); 378 MAX_NOT_NAN (psfQfPerfMax, secfilt[Nsec].psfQfPerfMax); 371 379 372 380 StatType *apstats = &results->apstats; … … 640 648 secfilt[Nsec].dFkronStk = zpFactor * measure[k].dFluxKron; 641 649 secfilt[Nsec].FapStk = zpFactor * measure[k].FluxAp; 642 secfilt[Nsec].dFapStk = zpFactor * measure[k].dFluxAp; 650 651 // NOTE: for PV3, apFluxErr is broken (see pmSourcePhotometry.c:245). we are going to 652 // use PSF flux error instead here: 653 // secfilt[Nsec].dFapStk = zpFactor * measure[k].dFluxAp; 654 secfilt[Nsec].dFapStk = zpFactor * measure[k].dFluxPSF; 643 655 644 656 // Jy to AB mags … … 742 754 if (IS_DIFF_DB) { 743 755 measure[k].dbFlags |= ID_MEAS_STACK_PRIMARY; 744 if (measure[k].psfQF > results->psfQfMax[Nsec]) results->psfQfMax[Nsec] = measure[k].psfQF;745 if (measure[k].psfQFperf > results->psfQfPerfMax[Nsec]) results->psfQfPerfMax[Nsec] = measure[k].psfQFperf;756 MAX_NOT_NAN (results->psfQfMax[Nsec], measure[k].psfQF); 757 MAX_NOT_NAN (results->psfQfPerfMax[Nsec], measure[k].psfQFperf); 746 758 } 747 759 … … 775 787 776 788 float Fap = PhotFluxCat (&measure[k], MAG_CLASS_APER); 777 float dFap = PhotFluxCatErr (&measure[k], MAG_CLASS_APER); 789 790 // NOTE: for PV3, apFluxErr is broken (see pmSourcePhotometry.c:245). we are going to 791 // use PSF flux error instead here: 792 // float dFap = PhotFluxCatErr (&measure[k], MAG_CLASS_APER); 793 float dFap = PhotFluxCatErr (&measure[k], MAG_CLASS_PSF); 794 778 795 if (CHECK_VALID_FLUX(Fap, dFap)) { 779 796 dFap = MAX (hypot(dFap, code->photomErrSys*Fap), MIN_ERROR*Fap); // bump up the error by a systematic floor … … 814 831 secfilt[Nsec].psfQfPerfMax = results->psfQfPerfMax[Nsec]; 815 832 816 if (isfinite(secfilt[Nsec].psfQfMax) && (secfilt[Nsec].psfQfMax > psfQfMax)) psfQfMax = secfilt[Nsec].psfQfMax;817 if (isfinite(secfilt[Nsec].psfQfPerfMax) && (secfilt[Nsec].psfQfPerfMax > psfQfPerfMax)) psfQfPerfMax = secfilt[Nsec].psfQfPerfMax;833 MAX_NOT_NAN (psfQfMax, secfilt[Nsec].psfQfMax); 834 MAX_NOT_NAN (psfQfPerfMax, secfilt[Nsec].psfQfPerfMax); 818 835 } 819 836
Note:
See TracChangeset
for help on using the changeset viewer.
