Changeset 36533
- Timestamp:
- Feb 18, 2014, 2:50:41 PM (12 years ago)
- Location:
- branches/eam_branches/ipp-20140206/Ohana/src/libdvo
- Files:
-
- 5 edited
-
include/dvo.h (modified) (2 diffs)
-
src/dbExtractAverages.c (modified) (1 diff)
-
src/dvo_convert.c (modified) (1 diff)
-
src/dvo_convert_PS1_V4.c (modified) (1 diff)
-
src/dvo_photcode_ops.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20140206/Ohana/src/libdvo/include/dvo.h
r36520 r36533 445 445 } MeasureTiny; 446 446 447 /** STRUCT DEFINITION **/ 448 typedef struct { 449 double R; // RA (decimal degrees ) 450 double D; // DEC (decimal degrees ) 451 float dR; // RA error (arcsec) 452 float dD; // DEC error (arcsec) 453 float uR; // RA*cos(D) proper-motion (arcsec/year) 454 float uD; // DEC proper-motion (arcsec/year) 455 float duR; // RA*cos(D) p-m error (arcsec/year) 456 float duD; // DEC p-m error (arcsec/year) 457 float P; // parallax (arcsec) 458 float dP; // parallax error (arcsec) 459 float ChiSqAve; // astrometry analysis chisq 460 float ChiSqPM; // astrometry analysis chisq 461 float ChiSqPar; // astrometry analysis chisq 462 int Tmean; // mean epoch (PM,PAR ref) (unix time seconds) 463 int Trange; // mean epoch (PM,PAR ref) (unix time seconds) 464 float Xp; // unused 465 unsigned short Npos; // number of detections used for astrometry 466 unsigned short Nmeasure; // number of psf measurements 467 unsigned short Nmissing; // number of missings 468 unsigned short Nextend; // number of extended measurements 469 uint32_t measureOffset; // offset to first psf measurement 470 uint32_t missingOffset; // offset to first missing obs 471 uint32_t extendOffset; // offset to first extended measurement 472 uint32_t flags; // average object flags (star; ghost; etc) 473 uint32_t photFlagsUpper; // upper bit of 2 bit summary of per-measure photflags 474 uint32_t photFlagsLower; // lower bit of 2 bit summary of per-measure photflags 475 unsigned int objID; // unique ID for object in table 476 unsigned int catID; // unique ID for table in which object was first realized 477 uint64_t extID; // external ID for object (eg PSPS objID) 478 } Average_PS1_V4alt; 479 480 Average_PS1_V4alt *gfits_table_get_Average_PS1_V4alt (FTable *table, off_t *Ndata, char *swapped); 481 Average *Average_PS1_V4alt_ToInternal (Average_PS1_V4alt *in, off_t Nvalues); 447 482 448 483 /** STRUCT DEFINITION **/ … … 625 660 626 661 float PhotAperInst (Measure *measure); 662 float PhotAperAve (PhotCode *code, Average *average, SecFilt *secfilt); 627 663 float PhotKronInst (Measure *measure); 628 664 float PhotKronAve (PhotCode *code, Average *average, SecFilt *secfilt); -
branches/eam_branches/ipp-20140206/Ohana/src/libdvo/src/dbExtractAverages.c
r36084 r36533 243 243 break; 244 244 245 case MAG_APER: 246 value.Flt = PhotAperAve (field->photcode, average, secfilt); 247 break; 248 245 249 case MAG_KRON: 246 250 value.Flt = PhotKronAve (field->photcode, average, secfilt); -
branches/eam_branches/ipp-20140206/Ohana/src/libdvo/src/dvo_convert.c
r36490 r36533 63 63 fprintf (stderr, "EXTNAME missing for average table\n"); 64 64 return (FALSE); 65 } 66 67 // block to convert broken tables (PS1_V4 made before the Xfix addition) 68 if (!strcmp (extname, "DVO_AVERAGE_PS1_V4") && (ftable[0].header[0].Naxis[0] == 120)) { 69 Average_PS1_V4alt *tmpAverage; 70 tmpAverage = gfits_table_get_Average_PS1_V4alt (ftable, Naverage, NULL); 71 if (!tmpAverage) { 72 fprintf (stderr, "ERROR: failed to read averages\n"); 73 exit (2); 74 } 75 average = Average_PS1_V4alt_ToInternal (tmpAverage, *Naverage); 76 free (tmpAverage); 77 *format = DVO_FORMAT_PS1_V4; 78 return (average); 65 79 } 66 80 -
branches/eam_branches/ipp-20140206/Ohana/src/libdvo/src/dvo_convert_PS1_V4.c
r36490 r36533 647 647 } 648 648 649 // 'primary' is needed to conform with the API for Loneos and Elixir, but is not used 650 Average *Average_PS1_V4alt_ToInternal (Average_PS1_V4alt *in, off_t Nvalues) { 651 652 off_t i; 653 Average *out; 654 655 ALLOCATE_ZERO (out, Average, Nvalues); 656 657 for (i = 0; i < Nvalues; i++) { 658 dvo_average_init (&out[i]); 659 660 out[i].R = in[i].R; 661 out[i].D = in[i].D; 662 out[i].dR = in[i].dR; 663 out[i].dD = in[i].dD; 664 out[i].uR = in[i].uR; 665 out[i].uD = in[i].uD; 666 out[i].duR = in[i].duR; 667 out[i].duD = in[i].duD; 668 out[i].P = in[i].P; 669 out[i].dP = in[i].dP; 670 out[i].ChiSqAve = in[i].ChiSqAve; 671 out[i].ChiSqPM = in[i].ChiSqPM; 672 out[i].ChiSqPar = in[i].ChiSqPar; 673 out[i].Tmean = in[i].Tmean; 674 out[i].Trange = in[i].Trange; 675 out[i].Npos = in[i].Npos; 676 out[i].Nmeasure = in[i].Nmeasure; 677 out[i].Nmissing = in[i].Nmissing; 678 out[i].Nextend = in[i].Nextend; 679 out[i].measureOffset = in[i].measureOffset; 680 out[i].missingOffset = in[i].missingOffset; 681 out[i].extendOffset = in[i].extendOffset; 682 out[i].flags = in[i].flags; 683 out[i].photFlagsUpper = in[i].photFlagsUpper; 684 out[i].photFlagsLower = in[i].photFlagsLower; 685 out[i].objID = in[i].objID; 686 out[i].catID = in[i].catID; 687 out[i].extID = in[i].extID; 688 } 689 return (out); 690 } 691 692 /******/ 693 694 int gfits_convert_Average_PS1_V4alt (Average_PS1_V4alt *data, off_t size, off_t nitems) { 695 696 off_t i; 697 unsigned char *byte, tmp; 698 699 if (size != 120) { 700 fprintf (stderr, "WARNING: mismatch in data types Average_PS1_V4alt: "OFF_T_FMT" vs %d\n", size, 120); 701 return (FALSE); 702 } 703 704 /* provide initial values to avoid compiler warnings for non-BYTE_SWAP arch */ 705 i = tmp = 0; 706 byte = NULL; 707 708 # ifdef BYTE_SWAP 709 byte = (unsigned char *) data; 710 for (i = 0; i < nitems; i++, byte += 129) { 711 /** BYTE SWAP **/ 712 SWAP_DBLE (0); // RA 713 SWAP_DBLE (8); // DEC 714 SWAP_WORD (16); // RA_ERR 715 SWAP_WORD (20); // DEC_ERR 716 SWAP_WORD (24); // U_RA 717 SWAP_WORD (28); // U_DEC 718 SWAP_WORD (32); // V_RA_ERR 719 SWAP_WORD (36); // V_DEC_ERR 720 SWAP_WORD (40); // PAR 721 SWAP_WORD (44); // PAR_ERR 722 SWAP_WORD (48); // CHISQ_POS 723 SWAP_WORD (52); // CHISQ_PM 724 SWAP_WORD (56); // CHISQ_PAP 725 SWAP_WORD (60); // MEAN_EPOCH 726 SWAP_WORD (64); // TIME_RANGE 727 SWAP_WORD (68); // SIGMA 728 SWAP_BYTE (72); // NUMBER_POS 729 SWAP_BYTE (74); // NMEASURE 730 SWAP_BYTE (76); // NMISSING 731 SWAP_BYTE (78); // NEXTEND 732 SWAP_WORD (80); // OFF_MEASURE 733 SWAP_WORD (84); // OFF_MISSING 734 SWAP_WORD (88); // OFF_EXTEND 735 SWAP_WORD (92); // FLAGS 736 SWAP_WORD (96); // PHOTFLAGS_U 737 SWAP_WORD (100); // PHOTFLAGS_L 738 SWAP_WORD (104); // OBJ_ID 739 SWAP_WORD (108); // CAT_ID 740 SWAP_DBLE (112); // EXT_ID 741 } 742 # endif 743 744 return (TRUE); 745 } 746 747 /*** add test of EXTNAME and header-defined columns? ***/ 748 /* return internal structure representation */ 749 Average_PS1_V4alt *gfits_table_get_Average_PS1_V4alt (FTable *ftable, off_t *Ndata, char *swapped) { 750 751 int Ncols; 752 Average_PS1_V4alt *data; 753 754 Ncols = ftable[0].header[0].Naxis[0]; 755 if (Ncols != 120) { 756 fprintf (stderr, "ERROR: mis-match in table size: width is %d but should be %d bytes\n", Ncols, 176); 757 return NULL; 758 } 759 760 *Ndata = ftable[0].header[0].Naxis[1]; 761 data = (Average_PS1_V4alt *) ftable[0].buffer; 762 if ((swapped == NULL) || (*swapped == FALSE)) { 763 if (!gfits_convert_Average_PS1_V4alt (data, sizeof (Average_PS1_V4alt), *Ndata)) { 764 return NULL; 765 } 766 gfits_table_scale_data (ftable); 767 if (swapped != NULL) *swapped = TRUE; 768 } 769 return (data); 770 } 771 -
branches/eam_branches/ipp-20140206/Ohana/src/libdvo/src/dvo_photcode_ops.c
r36520 r36533 561 561 } 562 562 563 float PhotAperAve (PhotCode *code, Average *average, SecFilt *secfilt) { 564 565 int Ns; 566 float Maper; 567 568 if (code == NULL) return NAN; 569 570 Ns = photcodes[0].hashNsec[code[0].code]; 571 Maper = (Ns == -1) ? NAN : secfilt[Ns].Map; 572 return (Maper); 573 } 574 563 575 float PhotKronAve (PhotCode *code, Average *average, SecFilt *secfilt) { 564 576
Note:
See TracChangeset
for help on using the changeset viewer.
