Changeset 15509 for trunk/Ohana/src/libdvo
- Timestamp:
- Nov 7, 2007, 6:28:03 PM (19 years ago)
- Location:
- trunk/Ohana/src/libdvo
- Files:
-
- 4 edited
-
include/dvo.h (modified) (3 diffs)
-
src/dvo_catalog.c (modified) (1 diff)
-
src/dvo_photcode_ops.c (modified) (19 diffs)
-
src/photfits.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/libdvo/include/dvo.h
r15035 r15509 5 5 # ifndef DVO_H 6 6 # define DVO_H 7 8 /*9 # define ELIXIR 110 # define PANSTARRS 011 # define LONEOS 012 */13 14 /*** named data values (convert all to enums?) ***/15 7 16 8 /* DVO table modes */ … … 55 47 } OhanaProjectionMode; 56 48 49 // these are used as NAN for types of int values 50 typedef enum { 51 NAN_S_CHAR = 0x7f, 52 NAN_U_CHAR = 0xff, // was NO_ERR 53 NAN_S_SHORT = 0x7fff, // was NO_MAG 54 NAN_U_SHORT = 0xffff, 55 NAN_S_INT = 0x7fffffff, 56 NAN_U_INT = 0xffffffff, 57 } DVO_INT_NAN; 58 59 # ifndef (NAN) 60 # ifndef (BYTE_SWAP) 61 # define __nan_bytes { 0x7f, 0xc0, 0, 0 } 62 # else 63 # define __nan_bytes { 0, 0, 0xc0, 0x7f } 64 # endif 65 static union { unsigned char __c[4]; float __d; } __nan_union 66 __attribute_used__ = { __nan_bytes }; 67 # define NAN (__nan_union.__d) 68 # endif 69 57 70 /* RegImage.flag values */ 58 71 # define IMREG_DIST 0x01 /* image distributed, only imregister-3.0 */ … … 64 77 # define LOAD_SECF 0x08 65 78 # define LOAD_MEAS_META 0x10 66 67 /* invalid mag value */68 # define NO_MAG 0x7fff69 # define NO_ERR 0xff70 79 71 80 /* photometry code types */ -
trunk/Ohana/src/libdvo/src/dvo_catalog.c
r15035 r15509 352 352 } 353 353 for (j = 0; j < Nextra; j++, out++) { 354 outsec[out].M = N O_MAG;355 outsec[out].dM = N O_MAG;356 outsec[out].Xm = NO_MAG;354 outsec[out].M = NAN; 355 outsec[out].dM = NAN; 356 outsec[out].Xm = NAN_S_SHORT; 357 357 } 358 358 } -
trunk/Ohana/src/libdvo/src/dvo_photcode_ops.c
r15035 r15509 221 221 222 222 Np = photcodes[0].hashcode[measure[0].photcode]; 223 if (Np == -1) return (N O_MAG);223 if (Np == -1) return (NAN); 224 224 225 225 if (photcodes[0].code[Np].type == PHOT_REF) { … … 241 241 242 242 Np = photcodes[0].hashcode[measure[0].photcode]; 243 if (Np == -1) return (N O_MAG);243 if (Np == -1) return (NAN); 244 244 245 245 if (photcodes[0].code[Np].type == PHOT_REF) { … … 260 260 261 261 Np = photcodes[0].hashcode[measure[0].photcode]; 262 if (Np == -1) return (N O_MAG);262 if (Np == -1) return (NAN); 263 263 264 264 if (photcodes[0].code[Np].type == PHOT_REF) { … … 271 271 /* for DEP, color must be made of PRI/SEC */ 272 272 mc = PhotColorForCode (average, secfilt, NULL, code); 273 if ( mc == NO_MAG) return (Mcat);273 if (isnan(mc)) return (Mcat); 274 274 mc = mc - SCALE*code[0].dX; 275 275 … … 291 291 292 292 Np = photcodes[0].hashcode[measure[0].photcode]; 293 if (Np == -1) return (N O_MAG);293 if (Np == -1) return (NAN); 294 294 295 295 if (photcodes[0].code[Np].type == PHOT_REF) { … … 302 302 /* for DEP, color must be made of PRI/SEC */ 303 303 mc = PhotColorForCode (average, secfilt, NULL, code); 304 if ( mc == NO_MAG) return (Mrel);304 if (isnan(mc)) return (Mrel); 305 305 mc = mc - SCALE*code[0].dX; 306 306 … … 323 323 /* code must be the matching PRI/SEC code for this measurement or an equivalent ALT */ 324 324 Np = photcodes[0].hashcode[thisone[0].photcode]; 325 if (Np == -1) { 326 return (NO_MAG); 327 } 325 if (Np == -1) return (NAN); 328 326 329 327 if (photcodes[0].code[Np].type == PHOT_REF) { … … 331 329 return (Mrel); 332 330 } 333 if (code[0].code != photcodes[0].code[Np].equiv) { 334 return (NO_MAG); 335 } 331 if (code[0].code != photcodes[0].code[Np].equiv) return (NAN); 336 332 337 333 Mcal = PhotRel (thisone, average, secfilt) + SCALE*code[0].C; 338 334 339 335 mc = PhotColorForCode (average, secfilt, measure, code); 340 if ( mc == NO_MAG) return (Mcal);336 if (isnan(mc)) return (Mcal); 341 337 mc = mc - SCALE*code[0].dX; 342 338 … … 358 354 PhotCode *color; 359 355 360 m1 = m2 = N O_MAG;356 m1 = m2 = NAN; 361 357 362 358 if (measure == NULL) { … … 364 360 Ns2 = photcodes[0].hashNsec[code[0].c2]; 365 361 366 m1 = (Ns1 == -1) ? N O_MAG: secfilt[Ns1].M;367 m2 = (Ns2 == -1) ? N O_MAG: secfilt[Ns2].M;368 mc = ( (m1 == NO_MAG) || (m2 == NO_MAG)) ? NO_MAG: (m1 - m2);362 m1 = (Ns1 == -1) ? NAN : secfilt[Ns1].M; 363 m2 = (Ns2 == -1) ? NAN : secfilt[Ns2].M; 364 mc = (isnan(m1) || isnan(m2)) ? NAN : (m1 - m2); 369 365 return (mc); 370 366 } … … 372 368 /* find magnitude matching first color term */ 373 369 color = GetPhotcodebyCode (code[0].c1); 374 if (color == NULL) return (N O_MAG);370 if (color == NULL) return (NAN); 375 371 if (color[0].type == PHOT_REF) { 376 for (i = 0; (i < average[0].Nm) && ( m1 == NO_MAG); i++) {372 for (i = 0; (i < average[0].Nm) && (isnan(m1)); i++) { 377 373 if (measure[i].photcode == color[0].code) { 378 374 m1 = measure[i].M; … … 381 377 } else { 382 378 Ns = photcodes[0].hashNsec[color[0].code]; 383 m1 = (Ns == -1) ? N O_MAG: secfilt[Ns].M;379 m1 = (Ns == -1) ? NAN : secfilt[Ns].M; 384 380 } 385 381 386 382 /* find magnitude matching second color term */ 387 383 color = GetPhotcodebyCode (code[0].c2); 388 if (color == NULL) return (N O_MAG);384 if (color == NULL) return (NAN); 389 385 if (color[0].type == PHOT_REF) { 390 for (i = 0; (i < average[0].Nm) && ( m2 == NO_MAG); i++) {386 for (i = 0; (i < average[0].Nm) && (isnan(m2)); i++) { 391 387 if (measure[i].photcode == color[0].code) { 392 388 m2 = measure[i].M; … … 395 391 } else { 396 392 Ns = photcodes[0].hashNsec[color[0].code]; 397 m2 = (Ns == -1) ? N O_MAG: secfilt[Ns].M;393 m2 = (Ns == -1) ? NAN : secfilt[Ns].M; 398 394 } 399 mc = ( (m1 == NO_MAG) || (m2 == NO_MAG)) ? NO_MAG: (m1 - m2);395 mc = (isnan(m1)) || isnan(m2))) ? NAN : (m1 - m2); 400 396 return (mc); 401 397 } … … 409 405 410 406 Ns = photcodes[0].hashNsec[code[0].code]; 411 Mave = (Ns == -1) ? N O_MAG: secfilt[Ns].M;407 Mave = (Ns == -1) ? NAN : secfilt[Ns].M; 412 408 Mref = Mave + SCALE*code[0].C; 413 409 414 410 mc = PhotColorForCode (average, secfilt, measure, code); 415 if ( mc == NO_MAG) return (Mref);411 if (isnan(mc)) return (Mref); 416 412 mc = mc - SCALE*code[0].dX; 417 413 … … 433 429 434 430 Ns = photcodes[0].hashNsec[code[0].code]; 435 Mave = (Ns == -1) ? N O_MAG: secfilt[Ns].M;431 Mave = (Ns == -1) ? NAN : secfilt[Ns].M; 436 432 return (Mave); 437 433 } … … 443 439 444 440 Ns = photcodes[0].hashNsec[code[0].code]; 445 dM = (Ns == -1) ? N O_MAG: secfilt[Ns].dM;441 dM = (Ns == -1) ? NAN : secfilt[Ns].dM; 446 442 return (dM); 447 443 } 448 444 445 // XXX return NAN or NAN_S_SHORT? (secfilt->Xm is short) 449 446 float PhotXm (PhotCode *code, Average *average, SecFilt *secfilt) { 450 447 … … 454 451 455 452 Ns = photcodes[0].hashNsec[code[0].code]; 456 Mi = (Ns == -1) ? N O_MAG: secfilt[Ns].Xm;457 Xm = ( Mi == NO_MAG) ? -1.0 : pow (10.0, 0.01*Mi);453 Mi = (Ns == -1) ? NAN : secfilt[Ns].Xm; 454 Xm = (isnan(Mi)) ? -1.0 : pow (10.0, 0.01*Mi); 458 455 return (Xm); 459 456 } … … 478 475 } else { 479 476 Ns = photcodes[0].hashNsec[code[0].code]; 480 M1 = (Ns == -1) ? N O_MAG: secfilt[Ns].M;477 M1 = (Ns == -1) ? NAN : secfilt[Ns].M; 481 478 } 482 479 … … 494 491 } else { 495 492 Ns = photcodes[0].hashNsec[code[0].code]; 496 M2 = (Ns == -1) ? N O_MAG: secfilt[Ns].M;493 M2 = (Ns == -1) ? NAN : secfilt[Ns].M; 497 494 } 498 495 -
trunk/Ohana/src/libdvo/src/photfits.c
r12332 r15509 31 31 return (0); 32 32 } 33 return (N O_MAG);33 return (NAN_S_SHORT); 34 34 } 35 35
Note:
See TracChangeset
for help on using the changeset viewer.
