Changeset 37116 for trunk/Ohana/src/libdvo
- Timestamp:
- Jul 24, 2014, 5:10:56 PM (12 years ago)
- Location:
- trunk/Ohana
- Files:
-
- 13 edited
-
. (modified) (1 prop)
-
src/libdvo/include/dvo.h (modified) (4 diffs)
-
src/libdvo/include/dvodb.h (modified) (1 diff)
-
src/libdvo/src/BoundaryTree.c (modified) (7 diffs)
-
src/libdvo/src/TessellationTable.c (modified) (9 diffs)
-
src/libdvo/src/dbExtractAverages.c (modified) (7 diffs)
-
src/libdvo/src/dbExtractMeasures.c (modified) (1 diff)
-
src/libdvo/src/dbFields.c (modified) (3 diffs)
-
src/libdvo/src/dvo_catalog.c (modified) (2 diffs)
-
src/libdvo/src/dvo_convert.c (modified) (2 diffs)
-
src/libdvo/src/dvo_convert_PS1_V4.c (modified) (2 diffs)
-
src/libdvo/src/dvo_convert_PS1_V5.c (modified) (2 diffs)
-
src/libdvo/src/dvo_photcode_ops.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana
- Property svn:mergeinfo set to
-
trunk/Ohana/src/libdvo/include/dvo.h
r37035 r37116 128 128 ID_MEAS_BLEND_MEAS = 0x00000100, // detection is within radius of multiple objects 129 129 ID_MEAS_BLEND_OBJ = 0x00000200, // multiple detections within radius of object 130 ID_MEAS_ UNDEF_3 = 0x00000400, // unused130 ID_MEAS_WARP_USED = 0x00000400, // measurement used to find mean warp photometry 131 131 ID_MEAS_UNDEF_4 = 0x00000800, // unused 132 132 ID_MEAS_BLEND_MEAS_X = 0x00001000, // detection is within radius of multiple objects across catalogs … … 383 383 char ***name; // projection cell name 384 384 385 int NX_SUB;386 int NY_SUB;385 float NX_SUB; 386 float NY_SUB; 387 387 double dPix; 388 388 389 389 double **Xo; 390 390 double **Yo; 391 int **dX;392 int **dY;391 float **dX; 392 float **dY; 393 393 } BoundaryTree; 394 394 … … 411 411 double Do; 412 412 double dPix; 413 int dX;414 int dY;415 416 int NX_SUB;417 int NY_SUB;413 float dX; 414 float dY; 415 416 float NX_SUB; 417 float NY_SUB; 418 418 419 419 char *basename; … … 710 710 float PhotFluxInstErr (Measure *measure, dvoMagClassType class); 711 711 float PhotFluxCatErr (Measure *measure, dvoMagClassType class); 712 float PhotFluxAveErr (PhotCode *code, Average *average, SecFilt *secfilt, dvoMagClassType class, dvoMagSourceType source); 712 713 713 714 float PhotXm (PhotCode *code, Average *average, SecFilt *secfilt); 714 715 float PhotZeroPoint (Measure *measure, Average *average, SecFilt *secfilt); 715 716 716 float PhotMstdev (PhotCode *code, Average *average, SecFilt *secfilt); 717 int PhotNphot (PhotCode *code, Average *average, SecFilt *secfilt, dvoMagClassType class, dvoMagSourceType source); 718 float PhotMstdev (PhotCode *code, Average *average, SecFilt *secfilt, dvoMagClassType class, dvoMagSourceType source); 717 719 float PhotMmin (PhotCode *code, Average *average, SecFilt *secfilt); 718 720 float PhotMmax (PhotCode *code, Average *average, SecFilt *secfilt); -
trunk/Ohana/src/libdvo/include/dvodb.h
r37035 r37116 54 54 MAG_OPTION_NPHOT, // Nused 55 55 MAG_OPTION_UC_DIST, 56 MAG_OPTION_STACK_DET_ID,57 56 MAG_OPTION_FLAGS, 58 57 } dvoMagOptionType; 58 59 // MAG_OPTION_STACK_PRIMARY_OFF, 60 // MAG_OPTION_STACK_BEST_OFF, 59 61 60 62 typedef enum { -
trunk/Ohana/src/libdvo/src/BoundaryTree.c
r36490 r37116 84 84 gfits_scan (headerPHU, "DEC_ORI", "%lf", 1, &tree->DEC_origin); 85 85 gfits_scan (headerPHU, "DEC_OFF", "%lf", 1, &tree->DEC_offset); 86 gfits_scan (headerPHU, "NX_SUB", "% d", 1, &tree->NX_SUB);87 gfits_scan (headerPHU, "NY_SUB", "% d", 1, &tree->NY_SUB);86 gfits_scan (headerPHU, "NX_SUB", "%f", 1, &tree->NX_SUB); 87 gfits_scan (headerPHU, "NY_SUB", "%f", 1, &tree->NY_SUB); 88 88 gfits_scan (headerPHU, "PIXSCALE", "%lf", 1, &tree->dPix); 89 89 … … 111 111 ALLOCATE (tree->Xo, double *, tree->Nzone); 112 112 ALLOCATE (tree->Yo, double *, tree->Nzone); 113 ALLOCATE (tree->dX, int *, tree->Nzone);114 ALLOCATE (tree->dY, int *, tree->Nzone);113 ALLOCATE (tree->dX, float *, tree->Nzone); 114 ALLOCATE (tree->dY, float *, tree->Nzone); 115 115 ALLOCATE (tree->cell, int *, tree->Nzone); 116 116 ALLOCATE (tree->projID, int *, tree->Nzone); … … 121 121 ALLOCATE (tree->Xo[i], double, tree->Nband[i]); 122 122 ALLOCATE (tree->Yo[i], double, tree->Nband[i]); 123 ALLOCATE (tree->dX[i], int, tree->Nband[i]);124 ALLOCATE (tree->dY[i], int, tree->Nband[i]);123 ALLOCATE (tree->dX[i], float, tree->Nband[i]); 124 ALLOCATE (tree->dY[i], float, tree->Nband[i]); 125 125 ALLOCATE (tree->cell[i], int, tree->Nband[i]); 126 126 ALLOCATE (tree->projID[i], int, tree->Nband[i]); … … 147 147 GET_COLUMN_NEW(&headerCell, &ftableCell, Xo, "X_CENT", double); 148 148 GET_COLUMN_NEW(&headerCell, &ftableCell, Yo, "Y_CENT", double); 149 GET_COLUMN_NEW(&headerCell, &ftableCell, dX, "X_GRID", int);150 GET_COLUMN_NEW(&headerCell, &ftableCell, dY, "Y_GRID", int);149 GET_COLUMN_NEW(&headerCell, &ftableCell, dX, "X_GRID", float); 150 GET_COLUMN_NEW(&headerCell, &ftableCell, dY, "Y_GRID", float); 151 151 GET_COLUMN_NEW(&headerCell, &ftableCell, name, "NAME", char); // XXX how is this done? 152 152 gfits_free_header (&headerCell); … … 214 214 gfits_modify (&header, "DEC_OFF", "%lf", 1, tree->DEC_offset); 215 215 216 gfits_modify (&header, "NX_SUB", "% d", 1, tree->NX_SUB);217 gfits_modify (&header, "NY_SUB", "% d", 1, tree->NY_SUB);216 gfits_modify (&header, "NX_SUB", "%f", 1, tree->NX_SUB); 217 gfits_modify (&header, "NY_SUB", "%f", 1, tree->NY_SUB); 218 218 gfits_modify (&header, "PIXSCALE", "%lf", 1, tree->dPix); 219 219 … … 289 289 gfits_define_bintable_column (&theader, "D", "X_CENT", "projection cell center pixel", "none", 1.0, 0.0); 290 290 gfits_define_bintable_column (&theader, "D", "Y_CENT", "projection cell center pixel", "none", 1.0, 0.0); 291 gfits_define_bintable_column (&theader, " J", "X_GRID", "skycell grid spacing", "none", 1.0, 0.0);292 gfits_define_bintable_column (&theader, " J", "Y_GRID", "skycell grid spacing", "none", 1.0, 0.0);291 gfits_define_bintable_column (&theader, "E", "X_GRID", "skycell grid spacing", "none", 1.0, 0.0); 292 gfits_define_bintable_column (&theader, "E", "Y_GRID", "skycell grid spacing", "none", 1.0, 0.0); 293 293 gfits_define_bintable_column (&theader, fmt, "NAME", "cell name", "none", 1.0, 0.0); 294 294 … … 310 310 double *Xo ; ALLOCATE (Xo, double, Ncell); 311 311 double *Yo ; ALLOCATE (Yo, double, Ncell); 312 int *dX ; ALLOCATE (dX, int,Ncell);313 int *dY ; ALLOCATE (dY, int,Ncell);312 float *dX ; ALLOCATE (dX, float, Ncell); 313 float *dY ; ALLOCATE (dY, float, Ncell); 314 314 char *name ; ALLOCATE (name, char, Ncell*BOUNDARY_TREE_NAME_LENGTH); 315 315 -
trunk/Ohana/src/libdvo/src/TessellationTable.c
r36490 r37116 28 28 tess[i].dPix = NAN; 29 29 30 tess[i].dX = 0;31 tess[i].dY = 0;32 33 tess[i].NX_SUB = 0;34 tess[i].NY_SUB = 0;30 tess[i].dX = NAN; 31 tess[i].dY = NAN; 32 33 tess[i].NX_SUB = NAN; 34 tess[i].NY_SUB = NAN; 35 35 36 36 tess[i].basename = NULL; … … 123 123 GET_COLUMN_NEW(Xo, "X_CENT", double); 124 124 GET_COLUMN_NEW(Yo, "Y_CENT", double); 125 GET_COLUMN_NEW(dX, "X_GRID", int);126 GET_COLUMN_NEW(dY, "Y_GRID", int);125 GET_COLUMN_NEW(dX, "X_GRID", float); 126 GET_COLUMN_NEW(dY, "Y_GRID", float); 127 127 GET_COLUMN_NEW(Rmin, "R_MIN", double); 128 128 GET_COLUMN_NEW(Rmax, "R_MAX", double); … … 130 130 GET_COLUMN_NEW(Dmax, "D_MAX", double); 131 131 GET_COLUMN_NEW(dPix, "SCALE", double); 132 GET_COLUMN_NEW(NX_SUB, "NX_SUB", int);133 GET_COLUMN_NEW(NY_SUB, "NY_SUB", int);132 GET_COLUMN_NEW(NX_SUB, "NX_SUB", float); 133 GET_COLUMN_NEW(NY_SUB, "NY_SUB", float); 134 134 GET_COLUMN_NEW(TYPE, "TYPE", int); 135 135 … … 280 280 gfits_modify (&header, "DEC_OFF", "%lf", 1, rings->DEC_offset); 281 281 282 gfits_modify (&header, "NX_SUB", "% d", 1, rings->NX_SUB);283 gfits_modify (&header, "NY_SUB", "% d", 1, rings->NY_SUB);282 gfits_modify (&header, "NX_SUB", "%f", 1, rings->NX_SUB); 283 gfits_modify (&header, "NY_SUB", "%f", 1, rings->NY_SUB); 284 284 gfits_modify (&header, "PIXSCALE", "%lf", 1, rings->dPix); 285 285 } … … 300 300 gfits_define_bintable_column (&theader, "D", "X_CENT", "projection cell center pixel", "none", 1.0, 0.0); 301 301 gfits_define_bintable_column (&theader, "D", "Y_CENT", "projection cell center pixel", "none", 1.0, 0.0); 302 gfits_define_bintable_column (&theader, " J", "X_GRID", "skycell grid spacing", "none", 1.0, 0.0);303 gfits_define_bintable_column (&theader, " J", "Y_GRID", "skycell grid spacing", "none", 1.0, 0.0);302 gfits_define_bintable_column (&theader, "E", "X_GRID", "skycell grid spacing", "none", 1.0, 0.0); 303 gfits_define_bintable_column (&theader, "E", "Y_GRID", "skycell grid spacing", "none", 1.0, 0.0); 304 304 gfits_define_bintable_column (&theader, "D", "R_MIN", "RA limit (lower)", "none", 1.0, 0.0); 305 305 gfits_define_bintable_column (&theader, "D", "R_MAX", "RA limit (upper)", "none", 1.0, 0.0); … … 307 307 gfits_define_bintable_column (&theader, "D", "D_MAX", "DEC limit (upper)", "none", 1.0, 0.0); 308 308 gfits_define_bintable_column (&theader, "D", "SCALE", "pixel scale for projection cell", "none", 1.0, 0.0); 309 gfits_define_bintable_column (&theader, " J", "NX_SUB", "skycell subdivision in x", "none", 1.0, 0.0);310 gfits_define_bintable_column (&theader, " J", "NY_SUB", "skycell subdivision in y", "none", 1.0, 0.0);309 gfits_define_bintable_column (&theader, "E", "NX_SUB", "skycell subdivision in x", "none", 1.0, 0.0); 310 gfits_define_bintable_column (&theader, "E", "NY_SUB", "skycell subdivision in y", "none", 1.0, 0.0); 311 311 gfits_define_bintable_column (&theader, "J", "TYPE", "type of tessellation", "none", 1.0, 0.0); 312 312 … … 330 330 double *Xo ; ALLOCATE (Xo , double, Nout); 331 331 double *Yo ; ALLOCATE (Yo , double, Nout); 332 int *dX ; ALLOCATE (dX , int,Nout);333 int *dY ; ALLOCATE (dY , int,Nout);332 float *dX ; ALLOCATE (dX , float, Nout); 333 float *dY ; ALLOCATE (dY , float, Nout); 334 334 double *Rmin ; ALLOCATE (Rmin , double, Nout); 335 335 double *Rmax ; ALLOCATE (Rmax , double, Nout); … … 337 337 double *Dmax ; ALLOCATE (Dmax , double, Nout); 338 338 double *dPix ; ALLOCATE (dPix , double, Nout); 339 int *NX_SUB ; ALLOCATE (NX_SUB, int,Nout);340 int *NY_SUB ; ALLOCATE (NY_SUB, int,Nout);339 float *NX_SUB ; ALLOCATE (NX_SUB, float, Nout); 340 float *NY_SUB ; ALLOCATE (NY_SUB, float, Nout); 341 341 int *TYPE ; ALLOCATE (TYPE, int, Nout); 342 342 … … 559 559 int xi = x / tess[myTess].tree->dX[zone][band]; 560 560 int yi = y / tess[myTess].tree->dY[zone][band]; 561 562 xi = MAX(MIN(xi, tess[myTess].tree->NX_SUB - 1.0), 0); 563 yi = MAX(MIN(yi, tess[myTess].tree->NY_SUB - 1.0), 0); 564 561 565 int N = xi + tess[myTess].tree->NX_SUB * yi; 562 566 -
trunk/Ohana/src/libdvo/src/dbExtractAverages.c
r37035 r37116 200 200 } 201 201 202 /* in some cases below we need a measurement which matches the requested photcode. 203 here is some sample code to find this. 204 205 for (i = 0; i < average[0].Nmeasure; i++) { 206 if (field->photcode->code != measure[i].photcode) continue; 207 value.Flt = measure[i].M; 208 break; 209 } 210 */ 211 202 212 switch (field->magOption) { 203 213 case MAG_OPTION_MAG: … … 207 217 break; 208 218 case MAG_LEVEL_REF: 209 // wh y is measureneeded here?219 // which measure is needed here? 210 220 // PhotRef (field->photcode, average, secfilt, measure, field->magClass, field->magSource); 211 221 break; … … 242 252 break; 243 253 case MAG_LEVEL_REF: 244 // value.Flt = PhotFluxRef (equiv, average, secfilt, measure, field->magClass, field->magSource); 254 // XXX which measure is needed here? 255 // value.Flt = PhotFluxRef (field->photcode, average, secfilt, measure, field->magClass, field->magSource); 245 256 break; 246 257 case MAG_LEVEL_INST: … … 258 269 case MAG_LEVEL_AVE: 259 270 case MAG_LEVEL_REF: 260 // value.Flt = PhotFluxAveErr (equiv, average, secfilt, field->magClass, field->magSource);271 value.Flt = PhotFluxAveErr (field->photcode, average, secfilt, field->magClass, field->magSource); 261 272 break; 262 273 case MAG_LEVEL_INST: … … 271 282 272 283 case MAG_OPTION_STDEV: 284 value.Flt = PhotMstdev (field->photcode, average, secfilt, field->magClass, field->magSource); 285 break; 273 286 case MAG_OPTION_CHISQ: 287 value.Flt = PhotXm (field->photcode, average, secfilt); 288 break; 274 289 case MAG_OPTION_MIN: 290 value.Flt = PhotMmin (field->photcode, average, secfilt); 291 break; 275 292 case MAG_OPTION_MAX: 293 value.Flt = PhotMmax (field->photcode, average, secfilt); 294 break; 276 295 case MAG_OPTION_NCODE: { 277 296 int Nsec = GetPhotcodeNsec (field->photcode->code); … … 281 300 } 282 301 case MAG_OPTION_NPHOT: { 283 int Nsec = GetPhotcodeNsec (field->photcode->code); 284 if (Nsec == -1) break; 285 value.Int = secfilt[Nsec].Nused; 302 value.Int = PhotNphot (field->photcode, average, secfilt, field->magClass, field->magSource); 286 303 break; 287 304 } 288 305 case MAG_OPTION_UC_DIST: 289 case MAG_OPTION_STACK_DET_ID: 290 value.Int = PhotStackID (field->photcode, average, secfilt); 291 break; 306 value.Flt = PhotUCdist (field->photcode, average, secfilt); 307 break; 308 // XX case MAG_OPTION_STACK_DET_ID: 309 // XX value.Int = PhotStackID (field->photcode, average, secfilt); 310 // XX break; 292 311 case MAG_OPTION_FLAGS: { 293 312 int Nsec = GetPhotcodeNsec (field->photcode->code); … … 301 320 break; 302 321 303 # if (0)304 switch (field->magMode) {305 case MAG_AVE:306 value.Flt = PhotAve (field->photcode, average, secfilt);307 break;308 case MAG_REF:309 value.Flt = PhotRef (field->photcode, average, secfilt, measure);310 break;311 case MAG_INST:312 case MAG_CAT:313 case MAG_SYS:314 case MAG_REL:315 case MAG_CAL:316 // XXX need to code this correctly: this returns just the first matching value317 value.Flt = NAN;318 for (i = 0; i < average[0].Nmeasure; i++) {319 if (field->photcode->code != measure[i].photcode) continue;320 value.Flt = measure[i].M;321 break;322 }323 break;324 case MAG_CHISQ:325 value.Flt = PhotXm (field->photcode, average, secfilt);326 break;327 case MAG_ERR:328 if ((field->photcode->type == PHOT_REF) || (field->photcode->type == PHOT_DEP)) {329 for (i = 0; i < average[0].Nmeasure; i++) {330 if (field->photcode->code != measure[i].photcode) continue;331 value.Flt = measure[i].dM;332 break;333 }334 } else {335 value.Flt = PhotAveErr (field->photcode, average, secfilt);336 }337 break;338 case MAG_STDEV:339 value.Flt = PhotMstdev (field->photcode, average, secfilt);340 break;341 case MAG_PHOT_FLAGS:342 if ((field->photcode->type == PHOT_REF) || (field->photcode->type == PHOT_DEP)) {343 for (i = 0; i < average[0].Nmeasure; i++) {344 if (field->photcode->code != measure[i].photcode) continue;345 value.Int = measure[i].photFlags;346 break;347 }348 } else {349 int Nsec = GetPhotcodeNsec (field->photcode->code);350 if (Nsec == -1) break;351 value.Int = secfilt[Nsec].flags;352 }353 break;354 case MAG_NCODE:355 // XXX push these into dvo_photcode_ops APIs356 // XXX do I need to allow for conversion to equiv?357 int Nsec = GetPhotcodeNsec (field->photcode->code);358 if (Nsec == -1) break;359 value.Int = secfilt[Nsec].Ncode;360 break;361 case MAG_NPHOT:362 int Nsec = GetPhotcodeNsec (field->photcode->code);363 if (Nsec == -1) break;364 value.Int = secfilt[Nsec].Nused;365 break;366 367 case MAG_APER:368 case MAG_APER_AVE:369 value.Flt = PhotAperAve (field->photcode, average, secfilt);370 break;371 372 case MAG_APER_REF:373 value.Flt = PhotAperRef (field->photcode, average, secfilt, measure);374 break;375 376 case MAG_KRON:377 case MAG_KRON_AVE:378 value.Flt = PhotKronAve (field->photcode, average, secfilt);379 break;380 381 case MAG_KRON_REF:382 value.Flt = PhotKronRef (field->photcode, average, secfilt, measure);383 break;384 385 case MAG_KRON_ERR:386 value.Flt = PhotKronAveErr (field->photcode, average, secfilt);387 break;388 389 case MAG_MIN:390 value.Flt = PhotMmin (field->photcode, average, secfilt);391 break;392 case MAG_MAX:393 value.Flt = PhotMmax (field->photcode, average, secfilt);394 break;395 case MAG_UC_DIST:396 value.Flt = PhotUCdist (field->photcode, average, secfilt);397 break;398 case MAG_STACK_DET_ID:399 value.Int = PhotStackID (field->photcode, average, secfilt);400 break;401 402 case MAG_FLUX_PSF:403 value.Flt = PhotAveFluxPSF (field->photcode, average, secfilt);404 break;405 case MAG_FLUX_PSF_ERR:406 value.Flt = PhotAvedFluxPSF (field->photcode, average, secfilt);407 break;408 case MAG_FLUX_KRON:409 value.Flt = PhotAveFluxKron (field->photcode, average, secfilt);410 break;411 case MAG_FLUX_KRON_ERR:412 value.Flt = PhotAvedFluxKron (field->photcode, average, secfilt);413 break;414 }415 break;416 case AVE_dMAG:417 value.Flt = PhotAveErr (field->photcode, average, secfilt);418 break;419 case AVE_Xm:420 value.Flt = PhotXm (field->photcode, average, secfilt);421 break;422 # endif423 322 case AVE_TYPE: 424 323 break; -
trunk/Ohana/src/libdvo/src/dbExtractMeasures.c
r37035 r37116 248 248 case MAG_OPTION_NPHOT: 249 249 case MAG_OPTION_UC_DIST: 250 case MAG_OPTION_STACK_DET_ID:251 250 case MAG_OPTION_FLAGS: 252 251 case MAG_OPTION_NONE: -
trunk/Ohana/src/libdvo/src/dbFields.c
r37035 r37116 78 78 if (!strcasecmp (string, "nphot")) return (MAG_OPTION_NPHOT); 79 79 if (!strcasecmp (string, "uc_dist")) return (MAG_OPTION_UC_DIST); 80 if (!strcasecmp (string, "stack_det_id")) return (MAG_OPTION_STACK_DET_ID);81 80 if (!strcasecmp (string, "flags")) return (MAG_OPTION_FLAGS); 82 81 … … 145 144 if (!strcasecmp (string, "max")) return (MAG_MAX); 146 145 if (!strcasecmp (string, "ucdist")) return (MAG_UC_DIST); 147 if (!strcasecmp (string, "stackDetectID")) return (MAG_STACK_DET_ID);148 146 if (!strcasecmp (string, "fluxpsf")) return (MAG_FLUX_PSF); 149 147 if (!strcasecmp (string, "fluxpsferr")) return (MAG_FLUX_PSF_ERR); … … 296 294 297 295 switch (field->magOption) { 298 case MAG_OPTION_STACK_DET_ID:299 296 case MAG_OPTION_NCODE: 300 297 case MAG_OPTION_NPHOT: -
trunk/Ohana/src/libdvo/src/dvo_catalog.c
r37035 r37116 197 197 secfilt->dFapStk = NAN; 198 198 199 secfilt->stackDetectID = 0; 199 secfilt->stackPrmryOff = -1; 200 secfilt->stackBestOff = -1; 200 201 201 202 secfilt->MpsfWrp = NAN; … … 860 861 catalog[0].lensobj = NULL; 861 862 } 862 // if (catalog[0].X_t) free (catalog[0].X_t); 863 // if (catalog[0].Y_t) free (catalog[0].Y_t); 864 if (catalog[0].nOwn_t) free (catalog[0].nOwn_t); 865 if (catalog[0].found_t) free (catalog[0].found_t); 866 // if (catalog[0].image_t) free (catalog[0].image_t); 867 // if (catalog[0].mosaic_t) free (catalog[0].mosaic_t); 868 if (catalog[0].foundWarp_t) free (catalog[0].foundWarp_t); 863 if (catalog[0].nOwn_t) { free (catalog[0].nOwn_t); catalog[0].nOwn_t = NULL; } 864 if (catalog[0].found_t) { free (catalog[0].found_t); catalog[0].found_t = NULL; } 865 if (catalog[0].foundWarp_t) { free (catalog[0].foundWarp_t); catalog[0].foundWarp_t = NULL; } 869 866 } 870 867 -
trunk/Ohana/src/libdvo/src/dvo_convert.c
r37035 r37116 392 392 return (lensing); } 393 393 394 # define SKIPPING_FORMAT(NAME, FORMAT, TYPE) \ 395 if (!strcmp (extname, NAME)) { \ 396 fprintf (stderr, "ERROR: format %s not defined for lensing, skipping\n", NAME); \ 397 *Nlensing = 0; \ 398 return NULL; \ 399 } 400 394 401 if (!strcmp (extname, "DVO_LENSING")) { 395 402 lensing = gfits_table_get_Lensing (ftable, Nlensing, NULL); … … 402 409 } 403 410 404 // CONVERT_FORMAT ("DVO_LENSING_PS1_REF", PS1_REF, PS1_REF);405 // CONVERT_FORMAT ("DVO_LENSING_ELIXIR", ELIXIR, Elixir);406 // CONVERT_FORMAT ("DVO_LENSING_LONEOS", LONEOS, Loneos);407 // CONVERT_FORMAT ("DVO_LENSING_PANSTARRS_DEV_0", PANSTARRS_DEV_0, Panstarrs_DEV_0);408 // CONVERT_FORMAT ("DVO_LENSING_PANSTARRS_DEV_1", PANSTARRS_DEV_1, Panstarrs_DEV_1);409 // CONVERT_FORMAT ("DVO_LENSING_PS1_DEV_1", PS1_DEV_1, PS1_DEV_1);410 // CONVERT_FORMAT ("DVO_LENSING_PS1_DEV_2", PS1_DEV_2, PS1_DEV_2);411 // CONVERT_FORMAT ("DVO_LENSING_PS1_V1", PS1_V1, PS1_V1);412 // CONVERT_FORMAT ("DVO_LENSING_PS1_V2", PS1_V2, PS1_V2);413 // CONVERT_FORMAT ("DVO_LENSING_PS1_V3", PS1_V3, PS1_V3);414 // CONVERT_FORMAT ("DVO_LENSING_PS1_V4", PS1_V4, PS1_V4);415 CONVERT_FORMAT ("DVO_LENSING_PS1_V5", PS1_V5, PS1_V5);411 SKIPPING_FORMAT ("DVO_LENSING_PS1_REF", PS1_REF, PS1_REF); 412 SKIPPING_FORMAT ("DVO_LENSING_ELIXIR", ELIXIR, Elixir); 413 SKIPPING_FORMAT ("DVO_LENSING_LONEOS", LONEOS, Loneos); 414 SKIPPING_FORMAT ("DVO_LENSING_PANSTARRS_DEV_0", PANSTARRS_DEV_0, Panstarrs_DEV_0); 415 SKIPPING_FORMAT ("DVO_LENSING_PANSTARRS_DEV_1", PANSTARRS_DEV_1, Panstarrs_DEV_1); 416 SKIPPING_FORMAT ("DVO_LENSING_PS1_DEV_1", PS1_DEV_1, PS1_DEV_1); 417 SKIPPING_FORMAT ("DVO_LENSING_PS1_DEV_2", PS1_DEV_2, PS1_DEV_2); 418 SKIPPING_FORMAT ("DVO_LENSING_PS1_V1", PS1_V1, PS1_V1); 419 SKIPPING_FORMAT ("DVO_LENSING_PS1_V2", PS1_V2, PS1_V2); 420 SKIPPING_FORMAT ("DVO_LENSING_PS1_V3", PS1_V3, PS1_V3); 421 SKIPPING_FORMAT ("DVO_LENSING_PS1_V4", PS1_V4, PS1_V4); 422 CONVERT_FORMAT ("DVO_LENSING_PS1_V5", PS1_V5, PS1_V5); 416 423 # undef CONVERT_FORMAT 417 424 -
trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V4.c
r37035 r37116 251 251 out[i].Mstdev = in[i].Mstdev; 252 252 out[i].ubercalDist = in[i].ubercalDist; 253 out[i].stackDetectID = in[i].stackDetectID; 253 out[i].stackPrmryOff = in[i].stackPrmryOff; 254 out[i].stackBestOff = in[i].stackBestOff; 254 255 } 255 256 return (out); … … 281 282 out[i].Mstdev = in[i].Mstdev; 282 283 out[i].ubercalDist = in[i].ubercalDist; 283 out[i].stackDetectID = in[i].stackDetectID; 284 out[i].stackPrmryOff = in[i].stackPrmryOff; 285 out[i].stackBestOff = in[i].stackBestOff; 284 286 } 285 287 return (out); -
trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V5.c
r37035 r37116 319 319 out[i].dFapStk = in[i].dFapStk; 320 320 321 out[i].stackDetectID = in[i].stackDetectID; 321 out[i].stackPrmryOff = in[i].stackPrmryOff; 322 out[i].stackBestOff = in[i].stackBestOff; 322 323 323 324 out[i].MpsfWrp = in[i].MpsfWrp; … … 387 388 out[i].dFapStk = in[i].dFapStk; 388 389 389 out[i].stackDetectID = in[i].stackDetectID; 390 out[i].stackPrmryOff = in[i].stackPrmryOff; 391 out[i].stackBestOff = in[i].stackBestOff; 390 392 391 393 out[i].MpsfWrp = in[i].MpsfWrp; -
trunk/Ohana/src/libdvo/src/dvo_photcode_ops.c
r37035 r37116 687 687 } 688 688 689 float PhotMstdev (PhotCode *code, Average *average, SecFilt *secfilt) { 690 691 int Ns; 692 float Mstdev; 693 694 if (code == NULL) return NAN; 695 696 Ns = photcodes[0].hashNsec[code[0].code]; 697 Mstdev = (Ns == -1) ? NAN : 0.001*secfilt[Ns].Mstdev; 689 float PhotMstdev (PhotCode *code, Average *average, SecFilt *secfilt, dvoMagClassType class, dvoMagSourceType source) { 690 691 if (code == NULL) return NAN; 692 693 int Ns = photcodes[0].hashNsec[code[0].code]; 694 if (Ns == -1) return (NAN); 695 696 float Mstdev = NAN; 697 switch (source) { 698 case MAG_SRC_CHP: 699 switch (class) { 700 case MAG_CLASS_PSF: 701 Mstdev = secfilt[Ns].Mstdev; 702 break; 703 case MAG_CLASS_KRON: 704 Mstdev = secfilt[Ns].sMkron; 705 break; 706 case MAG_CLASS_APER: 707 Mstdev = secfilt[Ns].sMap; 708 break; 709 default: 710 break; 711 } 712 break; 713 case MAG_SRC_WRP: 714 switch (class) { 715 case MAG_CLASS_PSF: 716 Mstdev = secfilt[Ns].sFpsfWrp; 717 break; 718 case MAG_CLASS_KRON: 719 Mstdev = secfilt[Ns].sFkronWrp; 720 break; 721 case MAG_CLASS_APER: 722 Mstdev = secfilt[Ns].sFapWrp; 723 break; 724 default: 725 break; 726 } 727 break; 728 case MAG_SRC_STK: 729 default: 730 break; 731 } 698 732 return (Mstdev); 733 } 734 735 int PhotNphot (PhotCode *code, Average *average, SecFilt *secfilt, dvoMagClassType class, dvoMagSourceType source) { 736 737 if (code == NULL) return 0; 738 739 int Ns = photcodes[0].hashNsec[code[0].code]; 740 if (Ns == -1) return 0; 741 742 int Nphot = 0; 743 switch (source) { 744 case MAG_SRC_CHP: 745 switch (class) { 746 case MAG_CLASS_PSF: 747 Nphot = secfilt[Ns].Nused; 748 break; 749 case MAG_CLASS_KRON: 750 Nphot = secfilt[Ns].NusedKron; 751 break; 752 case MAG_CLASS_APER: 753 Nphot = secfilt[Ns].NusedAp; 754 break; 755 default: 756 break; 757 } 758 break; 759 case MAG_SRC_WRP: 760 switch (class) { 761 case MAG_CLASS_PSF: 762 Nphot = secfilt[Ns].NusedWrp; 763 break; 764 case MAG_CLASS_KRON: 765 Nphot = secfilt[Ns].NusedKronWrp; 766 break; 767 case MAG_CLASS_APER: 768 Nphot = secfilt[Ns].NusedApWrp; 769 break; 770 default: 771 break; 772 } 773 break; 774 case MAG_SRC_STK: 775 default: 776 break; 777 } 778 return (Nphot); 699 779 } 700 780 … … 783 863 } 784 864 785 unsigned int PhotStackID (PhotCode *code, Average *average, SecFilt *secfilt) {786 787 int Ns;788 unsigned int ID;789 790 if (code == NULL) return 0;791 792 Ns = photcodes[0].hashNsec[code[0].code];793 ID = (Ns == -1) ? 0 : secfilt[Ns].stackDetectID;794 return (ID);795 }865 // XX unsigned int PhotStackID (PhotCode *code, Average *average, SecFilt *secfilt) { 866 // XX 867 // XX int Ns; 868 // XX unsigned int ID; 869 // XX 870 // XX if (code == NULL) return 0; 871 // XX 872 // XX Ns = photcodes[0].hashNsec[code[0].code]; 873 // XX ID = (Ns == -1) ? 0 : secfilt[Ns].stackDetectID; 874 // XX return (ID); 875 // XX } 796 876 797 877 // Xm is now (2014.07.03) stored as the chisq except in dvo formats which use as short … … 1112 1192 } 1113 1193 return (Fave); 1194 } 1195 1196 float PhotFluxAveErr (PhotCode *code, Average *average, SecFilt *secfilt, dvoMagClassType class, dvoMagSourceType source) { 1197 1198 if (code == NULL) return NAN; 1199 1200 int Ns = photcodes[0].hashNsec[code[0].code]; 1201 if (Ns == -1) return (NAN); 1202 1203 float dFave = NAN; 1204 switch (source) { 1205 case MAG_SRC_CHP: 1206 switch (class) { 1207 case MAG_CLASS_PSF: 1208 dFave = secfilt[Ns].dM * MagToFlux(secfilt[Ns].M); 1209 break; 1210 case MAG_CLASS_KRON: 1211 dFave = secfilt[Ns].dMkron * MagToFlux(secfilt[Ns].Mkron); 1212 break; 1213 case MAG_CLASS_APER: 1214 dFave = secfilt[Ns].dMap * MagToFlux(secfilt[Ns].Map); 1215 break; 1216 default: 1217 break; 1218 } 1219 break; 1220 case MAG_SRC_WRP: 1221 switch (class) { 1222 case MAG_CLASS_PSF: 1223 dFave = secfilt[Ns].dFpsfWrp; 1224 break; 1225 case MAG_CLASS_KRON: 1226 dFave = secfilt[Ns].dFkronWrp; 1227 break; 1228 case MAG_CLASS_APER: 1229 dFave = secfilt[Ns].dFapWrp; 1230 break; 1231 default: 1232 break; 1233 } 1234 break; 1235 case MAG_SRC_STK: 1236 switch (class) { 1237 case MAG_CLASS_PSF: 1238 dFave = secfilt[Ns].dFpsfStk; 1239 break; 1240 case MAG_CLASS_KRON: 1241 dFave = secfilt[Ns].dFkronStk; 1242 break; 1243 case MAG_CLASS_APER: 1244 dFave = secfilt[Ns].dFapStk; 1245 break; 1246 default: 1247 break; 1248 } 1249 break; 1250 default: 1251 break; 1252 } 1253 return (dFave); 1114 1254 } 1115 1255
Note:
See TracChangeset
for help on using the changeset viewer.
