Changeset 37246 for trunk/Ohana/src/libdvo
- Timestamp:
- Aug 12, 2014, 4:10:18 PM (12 years ago)
- Location:
- trunk/Ohana
- Files:
-
- 12 edited
-
. (modified) (1 prop)
-
src/libdvo/include/dvo.h (modified) (3 diffs)
-
src/libdvo/src/dbExtractMeasures.c (modified) (1 diff)
-
src/libdvo/src/dvo_catalog.c (modified) (6 diffs)
-
src/libdvo/src/dvo_convert.c (modified) (2 diffs)
-
src/libdvo/src/dvo_convert_PS1_DEV_1.c (modified) (2 diffs)
-
src/libdvo/src/dvo_convert_PS1_DEV_2.c (modified) (2 diffs)
-
src/libdvo/src/dvo_convert_PS1_V1.c (modified) (2 diffs)
-
src/libdvo/src/dvo_convert_PS1_V2.c (modified) (2 diffs)
-
src/libdvo/src/dvo_convert_PS1_V3.c (modified) (2 diffs)
-
src/libdvo/src/dvo_convert_PS1_V4.c (modified) (3 diffs)
-
src/libdvo/src/dvo_convert_PS1_V5.c (modified) (11 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana
- Property svn:mergeinfo changed
/branches/eam_branches/ipp-20140717/Ohana merged: 37176,37198,37225-37231,37240,37243
- Property svn:mergeinfo changed
-
trunk/Ohana/src/libdvo/include/dvo.h
r37116 r37246 464 464 } MeasureTiny; 465 465 466 / ** STRUCT DEFINITION **/466 // alternate version of PS1_V4 (old dev version) 467 467 typedef struct { 468 468 double R; // RA (decimal degrees ) … … 500 500 Average *Average_PS1_V4alt_ToInternal (Average_PS1_V4alt *in, off_t Nvalues); 501 501 502 / ** STRUCT DEFINITION **/502 // alternate version of PS1_V4 (old dev version) 503 503 typedef struct { 504 504 float dR; // RA offset (arcsec) … … 556 556 Measure *Measure_PS1_V4alt_ToInternal (Average *ave, Measure_PS1_V4alt *in, off_t Nvalues); 557 557 558 // alternate version of PS1_V5 (old dev version) 559 typedef struct { 560 float M; // average mag in this band (mags) 561 float dM; // formal error on average mag (mags) 562 float Map; // ave aperture mag in this band (mags) 563 float dMap; // ave aperture mag in this band (mags) 564 float sMap; // standard deviation of ap mags (mags) 565 float Mkron; // ave kron mag in this band (mags) 566 float dMkron; // formal error on average kron mag (mags) 567 float sMkron; // standard deviation of kron mags (mags) 568 float Mstdev; // standard deviation of measurements (mags) 569 float Mmin; // min accepted mag (mags) 570 float Mmax; // max accepted mag (mags) 571 float Mchisq; // chisq on average mag (value) 572 short Ncode; // number of detections in band 573 short Nused; // number of detections used in average 574 short NusedKron; // number of detections used in average 575 short NusedAp; // number of detections used in average 576 uint32_t flags; // photometry flags 577 float MpsfStk; // magnitude from stack (primary if available) 578 float FpsfStk; // flux from stack (primary if available) 579 float dFpsfStk; // mean flux psf error 580 float MkronStk; // magnitude from stack (primary if available) 581 float FkronStk; // flux from stack (primary if available) 582 float dFkronStk; // mean flux kron error 583 float MapStk; // magnitude from stack (primary if available) 584 float FapStk; // flux from stack (primary if available) 585 float dFapStk; // mean flux ap error 586 int stackPrmryOff; // measure entry which is primary stack detection 587 int stackBestOff; // measure entry which is best stack detection 588 float MpsfWrp; // psf magnitude from stack (primary if available) 589 float FpsfWrp; // psf flux from stack (primary if available) 590 float dFpsfWrp; // mean flux psf error 591 float sFpsfWrp; // mean flux psf stdev 592 float MkronWrp; // kron magnitude from stack (primary if available) 593 float FkronWrp; // kron flux from stack (primary if available) 594 float dFkronWrp; // mean flux kron error 595 float sFkronWrp; // mean flux kron stdev 596 float MapWrp; // aper magnitude from stack (primary if available) 597 float FapWrp; // aper flux from stack (primary if available) 598 float dFapWrp; // mean flux ap error 599 float sFapWrp; // mean flux ap stdev 600 short NusedWrp; // number of detections used in average 601 short NusedKronWrp; // number of detections used in average 602 short NusedApWrp; // number of detections used in average 603 short ubercalDist; // number of images from an ubercal-image 604 } SecFilt_PS1_V5alt; 605 606 SecFilt_PS1_V5alt *gfits_table_get_SecFilt_PS1_V5alt (FTable *table, off_t *Ndata, char *swapped); 607 int gfits_convert_SecFilt_PS1_V5alt (SecFilt_PS1_V5alt *data, off_t size, off_t nitems); 608 SecFilt *SecFilt_PS1_V5alt_ToInternal (SecFilt_PS1_V5alt *in, off_t Nvalues); 609 610 // alternate version of PS1_V5alt (old dev version) 611 typedef struct { 612 double R; // RA (decimal degrees ) 613 double D; // DEC (decimal degrees ) 614 float dR; // RA error (arcsec) 615 float dD; // DEC error (arcsec) 616 float uR; // RA*cos(D) proper-motion (arcsec/year) 617 float uD; // DEC proper-motion (arcsec/year) 618 float duR; // RA*cos(D) p-m error (arcsec/year) 619 float duD; // DEC p-m error (arcsec/year) 620 float P; // parallax (arcsec) 621 float dP; // parallax error (arcsec) 622 double Rstk; // RA on stack (decimal degrees ) 623 double Dstk; // DEC on stack (decimal degrees ) 624 float dRstk; // RA error on stack (arcsec) 625 float dDstk; // DEC error on stack (arcsec) 626 float ChiSqAve; // astrometry analysis chisq 627 float ChiSqPM; // astrometry analysis chisq 628 float ChiSqPar; // astrometry analysis chisq 629 int Tmean; // mean epoch (PM,PAR ref) (unix time seconds) 630 int Trange; // mean epoch (PM,PAR ref) (unix time seconds) 631 float psfQF; // psf coverage (bad masks) 632 float psfQFperf; // psf coverage (all masks) 633 float stargal; // star / galaxy separator (1/100 arcsec) 634 unsigned short Npos; // number of detections used for astrometry 635 unsigned short Nmeasure; // number of psf measurements 636 unsigned short Nmissing; // number of missings 637 unsigned short Nlensing; // number of lensing measurements 638 unsigned short Nlensobj; // number of lensing measurements 639 unsigned short Nextend; // number of extended measurements 640 int measureOffset; // offset to first psf measurement 641 int missingOffset; // offset to first missing obs 642 int lensingOffset; // offset to first lensing obs 643 int lensobjOffset; // offset to mean lensing data 644 int extendOffset; // offset to extended object entry 645 int paramsOffset; // offset to stellar parameter data 646 float refColorBlue; // color of astrometry ref stars 647 float refColorRed; // color of astrometry ref stars 648 uint32_t flags; // average object flags (star; ghost; etc) 649 uint32_t photFlagsUpper; // upper bit of 2 bit summary of per-measure photflags 650 uint32_t photFlagsLower; // lower bit of 2 bit summary of per-measure photflags 651 unsigned int objID; // unique ID for object in table 652 unsigned int catID; // unique ID for table in which object was first realized 653 uint64_t extID; // external ID for object (eg PSPS objID) 654 uint64_t extIDgc; // external ID for object in galactic coords 655 } Average_PS1_V5alt; 656 657 Average_PS1_V5alt *gfits_table_get_Average_PS1_V5alt (FTable *table, off_t *Ndata, char *swapped); 658 int gfits_convert_Average_PS1_V5alt (Average_PS1_V5alt *data, off_t size, off_t nitems); 659 Average *Average_PS1_V5alt_ToInternal (Average_PS1_V5alt *in, off_t Nvalues); 660 558 661 /* for some reason I have merged the set of tables and the file description, 559 662 so I need to have an internal structure to point to the separate files */ -
trunk/Ohana/src/libdvo/src/dbExtractMeasures.c
r37116 r37246 646 646 case MEAS_PSF_NPIX: /* OK */ 647 647 value.Int = measure[0].psfNpix; 648 break;649 case MEAS_CR_NSIGMA: /* OK */650 value.Flt = measure[0].crNsigma;651 648 break; 652 649 case MEAS_EXT_NSIGMA: /* OK */ -
trunk/Ohana/src/libdvo/src/dvo_catalog.c
r37116 r37246 141 141 average->refColorRed = NAN; 142 142 143 average->tessID = 0; 144 average->skycellID = 0; 145 average->projectionID = 0; 146 average->dummy = 0; 147 143 148 average->flags = 0; 144 149 average->photFlagsUpper = 0; … … 173 178 secfilt->sMkron = NAN; 174 179 180 secfilt->psfQfMax = NAN; 181 secfilt->psfQfPerfMax = NAN; 182 175 183 secfilt->Mstdev = NAN; 176 184 secfilt->Mmin = NAN; … … 197 205 secfilt->dFapStk = NAN; 198 206 207 secfilt->Nstack = 0; 208 secfilt->NstackDet = 0; 209 199 210 secfilt->stackPrmryOff = -1; 200 211 secfilt->stackBestOff = -1; … … 218 229 secfilt->NusedKronWrp = 0; 219 230 secfilt->NusedApWrp = 0; 231 232 secfilt->Nwarp = 0; 233 secfilt->NwarpGood = 0; 220 234 221 235 secfilt->ubercalDist = 1000; … … 279 293 measure->psfNdof = 0; 280 294 measure->psfNpix = 0; 281 measure->crNsigma = NAN;282 295 measure->extNsigma = NAN; 283 296 … … 302 315 measure->dbFlags = 0; 303 316 measure->photFlags = 0; 317 measure->photFlags2= 0; 304 318 } 305 319 -
trunk/Ohana/src/libdvo/src/dvo_convert.c
r37116 r37246 80 80 } 81 81 82 // block to convert old tables (PS1_V5 versions made during development) 83 if (!strcmp (extname, "DVO_AVERAGE_PS1_V5") && (ftable[0].header[0].Naxis[0] == 184)) { 84 Average_PS1_V5alt *tmpAverage; 85 tmpAverage = gfits_table_get_Average_PS1_V5alt (ftable, Naverage, NULL); 86 if (!tmpAverage) { 87 fprintf (stderr, "ERROR: failed to read averages\n"); 88 exit (2); 89 } 90 average = Average_PS1_V5alt_ToInternal (tmpAverage, *Naverage); 91 free (tmpAverage); 92 *format = DVO_FORMAT_PS1_V5; 93 return (average); 94 } 95 82 96 # define CONVERT_FORMAT(NAME, FORMAT, TYPE) \ 83 97 if (!strcmp (extname, NAME)) { \ … … 285 299 return (FALSE); 286 300 } 301 302 // block to convert old tables (PS1_V5 versions made during development) 303 if (!strcmp (extname, "DVO_SECFILT_PS1_V5") && (ftable[0].header[0].Naxis[0] == 160)) { 304 SecFilt_PS1_V5alt *tmpSecFilt; 305 tmpSecFilt = gfits_table_get_SecFilt_PS1_V5alt (ftable, Nsecfilt, NULL); 306 if (!tmpSecFilt) { 307 fprintf (stderr, "ERROR: failed to read secfilts\n"); 308 exit (2); 309 } 310 secfilt = SecFilt_PS1_V5alt_ToInternal (tmpSecFilt, *Nsecfilt); 311 free (tmpSecFilt); 312 *format = DVO_FORMAT_PS1_V5; 313 return (secfilt); 314 } 315 287 316 288 317 # define CONVERT_FORMAT(NAME, FORMAT, TYPE) \ -
trunk/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_1.c
r37035 r37246 32 32 out[i].psfQF = in[i].psfQF; 33 33 out[i].psfChisq = in[i].psfChisq; 34 out[i].crNsigma = in[i].crNsigma;35 34 out[i].extNsigma = in[i].extNsigma; 36 35 out[i].FWx = in[i].FWx; … … 80 79 out[i].psfQF = in[i].psfQF; 81 80 out[i].psfChisq = in[i].psfChisq; 82 out[i].crNsigma = in[i].crNsigma;83 81 out[i].extNsigma = in[i].extNsigma; 84 82 out[i].FWx = in[i].FWx; -
trunk/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_2.c
r37035 r37246 34 34 out[i].psfQF = in[i].psfQF; 35 35 out[i].psfChisq = in[i].psfChisq; 36 out[i].crNsigma = in[i].crNsigma;37 36 out[i].extNsigma = in[i].extNsigma; 38 37 out[i].FWx = in[i].FWx; … … 80 79 out[i].psfQF = in[i].psfQF; 81 80 out[i].psfChisq = in[i].psfChisq; 82 out[i].crNsigma = in[i].crNsigma;83 81 out[i].extNsigma = in[i].extNsigma; 84 82 out[i].FWx = in[i].FWx; -
trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V1.c
r37035 r37246 40 40 out[i].psfNdof = in[i].psfNdof; 41 41 out[i].psfNpix = in[i].psfNpix; 42 out[i].crNsigma = in[i].crNsigma;43 42 out[i].extNsigma = in[i].extNsigma; 44 43 out[i].FWx = in[i].FWx; … … 95 94 out[i].psfNdof = in[i].psfNdof; 96 95 out[i].psfNpix = in[i].psfNpix; 97 out[i].crNsigma = in[i].crNsigma;98 96 out[i].extNsigma = in[i].extNsigma; 99 97 out[i].FWx = in[i].FWx; -
trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V2.c
r37035 r37246 40 40 out[i].psfNdof = in[i].psfNdof; 41 41 out[i].psfNpix = in[i].psfNpix; 42 out[i].crNsigma = in[i].crNsigma;43 42 out[i].extNsigma = in[i].extNsigma; 44 43 out[i].FWx = in[i].FWx; … … 96 95 out[i].psfNdof = in[i].psfNdof; 97 96 out[i].psfNpix = in[i].psfNpix; 98 out[i].crNsigma = in[i].crNsigma;99 97 out[i].extNsigma = in[i].extNsigma; 100 98 out[i].FWx = in[i].FWx; -
trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V3.c
r37035 r37246 40 40 out[i].psfNdof = in[i].psfNdof; 41 41 out[i].psfNpix = in[i].psfNpix; 42 out[i].crNsigma = in[i].crNsigma;43 42 out[i].extNsigma = in[i].extNsigma; 44 43 out[i].FWx = in[i].FWx; … … 96 95 out[i].psfNdof = in[i].psfNdof; 97 96 out[i].psfNpix = in[i].psfNpix; 98 out[i].crNsigma = in[i].crNsigma;99 97 out[i].extNsigma = in[i].extNsigma; 100 98 out[i].FWx = in[i].FWx; -
trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V4.c
r37116 r37246 49 49 out[i].psfNdof = in[i].psfNdof; 50 50 out[i].psfNpix = in[i].psfNpix; 51 out[i].crNsigma = in[i].crNsigma;52 51 out[i].extNsigma = in[i].extNsigma; 53 52 out[i].FWx = in[i].FWx; … … 114 113 out[i].psfNdof = in[i].psfNdof; 115 114 out[i].psfNpix = in[i].psfNpix; 116 out[i].crNsigma = in[i].crNsigma;117 115 out[i].extNsigma = in[i].extNsigma; 118 116 out[i].FWx = in[i].FWx; … … 541 539 out[i].psfNdof = in[i].psfNdof; 542 540 out[i].psfNpix = in[i].psfNpix; 543 out[i].crNsigma = in[i].crNsigma;544 541 out[i].extNsigma = in[i].extNsigma; 545 542 out[i].FWx = in[i].FWx; -
trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V5.c
r37116 r37246 56 56 out[i].psfNdof = in[i].psfNdof; 57 57 out[i].psfNpix = in[i].psfNpix; 58 out[i].crNsigma = in[i].crNsigma;59 58 out[i].extNsigma = in[i].extNsigma; 60 59 out[i].FWx = in[i].FWx; … … 73 72 out[i].dbFlags = in[i].dbFlags; 74 73 out[i].photFlags = in[i].photFlags; 74 out[i].photFlags2 = in[i].photFlags2; 75 75 } 76 76 return (out); … … 128 128 out[i].psfNdof = in[i].psfNdof; 129 129 out[i].psfNpix = in[i].psfNpix; 130 out[i].crNsigma = in[i].crNsigma;131 130 out[i].extNsigma = in[i].extNsigma; 132 131 out[i].FWx = in[i].FWx; … … 145 144 out[i].dbFlags = in[i].dbFlags; 146 145 out[i].photFlags = in[i].photFlags; 146 out[i].photFlags2 = in[i].photFlags2; 147 147 } 148 148 return (out); … … 203 203 out[i].refColorRed = in[i].refColorRed; 204 204 205 out[i].tessID = in[i].tessID; 206 out[i].skycellID = in[i].skycellID; 207 out[i].projectionID = in[i].projectionID; 208 205 209 out[i].flags = in[i].flags; 206 210 out[i].photFlagsUpper = in[i].photFlagsUpper; … … 223 227 224 228 for (i = 0; i < Nvalues; i++) { 225 out[i].R = in[i].R; 226 out[i].D = in[i].D; 227 out[i].dR = in[i].dR; 228 out[i].dD = in[i].dD; 229 out[i].uR = in[i].uR; 230 out[i].uD = in[i].uD; 231 out[i].duR = in[i].duR; 232 out[i].duD = in[i].duD; 233 out[i].P = in[i].P; 234 out[i].dP = in[i].dP; 235 236 out[i].Rstk = in[i].Rstk; 237 out[i].Dstk = in[i].Dstk; 238 out[i].dRstk = in[i].dRstk; 239 out[i].dDstk = in[i].dDstk; 240 241 out[i].ChiSqAve = in[i].ChiSqAve; 242 out[i].ChiSqPM = in[i].ChiSqPM; 243 out[i].ChiSqPar = in[i].ChiSqPar; 244 out[i].Tmean = in[i].Tmean; 245 out[i].Trange = in[i].Trange; 246 247 out[i].psfQF = in[i].psfQF; 248 out[i].psfQFperf = in[i].psfQFperf; 249 out[i].stargal = in[i].stargal; 250 out[i].Npos = in[i].Npos; 251 252 out[i].Nmeasure = in[i].Nmeasure; 253 out[i].Nmissing = in[i].Nmissing; 254 out[i].Nlensing = in[i].Nlensing; 255 out[i].Nlensobj = in[i].Nlensobj; 256 out[i].Nextend = in[i].Nextend; 257 258 out[i].measureOffset = in[i].measureOffset; 259 out[i].missingOffset = in[i].missingOffset; 260 out[i].lensingOffset = in[i].lensingOffset; 261 out[i].lensobjOffset = in[i].lensobjOffset; 262 out[i].extendOffset = in[i].extendOffset; 263 out[i].paramsOffset = in[i].paramsOffset; 264 265 out[i].refColorBlue = in[i].refColorBlue; 266 out[i].refColorRed = in[i].refColorRed; 267 268 out[i].flags = in[i].flags; 229 out[i].R = in[i].R; 230 out[i].D = in[i].D; 231 out[i].dR = in[i].dR; 232 out[i].dD = in[i].dD; 233 out[i].uR = in[i].uR; 234 out[i].uD = in[i].uD; 235 out[i].duR = in[i].duR; 236 out[i].duD = in[i].duD; 237 out[i].P = in[i].P; 238 out[i].dP = in[i].dP; 239 240 out[i].Rstk = in[i].Rstk; 241 out[i].Dstk = in[i].Dstk; 242 out[i].dRstk = in[i].dRstk; 243 out[i].dDstk = in[i].dDstk; 244 245 out[i].ChiSqAve = in[i].ChiSqAve; 246 out[i].ChiSqPM = in[i].ChiSqPM; 247 out[i].ChiSqPar = in[i].ChiSqPar; 248 out[i].Tmean = in[i].Tmean; 249 out[i].Trange = in[i].Trange; 250 251 out[i].psfQF = in[i].psfQF; 252 out[i].psfQFperf = in[i].psfQFperf; 253 out[i].stargal = in[i].stargal; 254 out[i].Npos = in[i].Npos; 255 256 out[i].Nmeasure = in[i].Nmeasure; 257 out[i].Nmissing = in[i].Nmissing; 258 out[i].Nlensing = in[i].Nlensing; 259 out[i].Nlensobj = in[i].Nlensobj; 260 out[i].Nextend = in[i].Nextend; 261 262 out[i].measureOffset = in[i].measureOffset; 263 out[i].missingOffset = in[i].missingOffset; 264 out[i].lensingOffset = in[i].lensingOffset; 265 out[i].lensobjOffset = in[i].lensobjOffset; 266 out[i].extendOffset = in[i].extendOffset; 267 out[i].paramsOffset = in[i].paramsOffset; 268 269 out[i].refColorBlue = in[i].refColorBlue; 270 out[i].refColorRed = in[i].refColorRed; 271 272 out[i].tessID = in[i].tessID; 273 out[i].skycellID = in[i].skycellID; 274 out[i].projectionID = in[i].projectionID; 275 276 out[i].flags = in[i].flags; 269 277 out[i].photFlagsUpper = in[i].photFlagsUpper; 270 278 out[i].photFlagsLower = in[i].photFlagsLower; 271 out[i].objID = in[i].objID;272 out[i].catID = in[i].catID;273 out[i].extID = in[i].extID;274 out[i].extIDgc = in[i].extIDgc;279 out[i].objID = in[i].objID; 280 out[i].catID = in[i].catID; 281 out[i].extID = in[i].extID; 282 out[i].extIDgc = in[i].extIDgc; 275 283 } 276 284 return (out); … … 286 294 for (i = 0; i < Nvalues; i++) { 287 295 dvo_secfilt_init (&out[i]); 288 289 out[i].M = in[i].M;290 out[i].dM = in[i].dM;291 out[i].Map = in[i].Map;292 out[i].dMap = in[i].dMap;293 out[i].sMap = in[i].sMap;294 out[i].Mkron = in[i].Mkron;295 out[i].dMkron = in[i].dMkron;296 297 out[i].Mstdev = in[i].Mstdev;298 out[i].Mmin = in[i].Mmin;299 out[i].Mmax = in[i].Mmax;300 out[i].Mchisq = in[i].Mchisq;301 302 out[i].Ncode = in[i].Ncode;303 out[i].Nused = in[i].Nused;304 out[i].NusedKron = in[i].NusedKron;305 out[i].NusedAp = in[i].NusedAp;306 307 out[i].flags = in[i].flags;308 309 out[i].MpsfStk = in[i].MpsfStk;310 out[i].FpsfStk = in[i].FpsfStk;311 out[i].dFpsfStk = in[i].dFpsfStk;312 313 out[i].MkronStk = in[i].MkronStk;314 out[i].FkronStk = in[i].FkronStk;315 out[i].dFkronStk = in[i].dFkronStk;316 317 out[i].MapStk = in[i].MapStk;318 out[i].FapStk = in[i].FapStk;319 out[i].dFapStk = in[i].dFapStk;320 321 out[i].stackPrmryOff = in[i].stackPrmryOff;322 out[i].stackBestOff = in[i].stackBestOff;323 324 out[i].MpsfWrp = in[i].MpsfWrp;325 out[i].FpsfWrp = in[i].FpsfWrp;326 out[i].dFpsfWrp = in[i].dFpsfWrp;327 out[i].sFpsfWrp = in[i].sFpsfWrp;328 329 out[i].MkronWrp = in[i].MkronWrp;330 out[i].FkronWrp = in[i].FkronWrp;331 out[i].dFkronWrp = in[i].dFkronWrp;332 out[i].sFkronWrp = in[i].sFkronWrp;333 334 out[i].MapWrp = in[i].MapWrp;335 out[i].FapWrp = in[i].FapWrp;336 out[i].dFapWrp = in[i].dFapWrp;337 out[i].sFapWrp = in[i].sFapWrp;338 339 out[i].NusedWrp = in[i].NusedWrp;340 out[i].NusedKronWrp = in[i].NusedKronWrp;341 out[i].NusedApWrp = in[i].NusedApWrp;342 343 out[i].ubercalDist = in[i].ubercalDist;344 }345 return (out);346 }347 348 SecFilt_PS1_V5 *SecFiltInternalTo_PS1_V5 (SecFilt *in, off_t Nvalues) {349 350 off_t i;351 SecFilt_PS1_V5 *out;352 353 ALLOCATE_ZERO (out, SecFilt_PS1_V5, Nvalues);354 355 for (i = 0; i < Nvalues; i++) {356 296 357 297 out[i].M = in[i].M; … … 364 304 out[i].sMkron = in[i].sMkron; 365 305 306 out[i].psfQfMax = in[i].psfQfMax; 307 out[i].psfQfPerfMax = in[i].psfQfPerfMax; 308 366 309 out[i].Mstdev = in[i].Mstdev; 367 310 out[i].Mmin = in[i].Mmin; … … 388 331 out[i].dFapStk = in[i].dFapStk; 389 332 333 out[i].Nstack = in[i].Nstack; 334 out[i].NstackDet = in[i].NstackDet; 335 390 336 out[i].stackPrmryOff = in[i].stackPrmryOff; 391 337 out[i].stackBestOff = in[i].stackBestOff; … … 409 355 out[i].NusedKronWrp = in[i].NusedKronWrp; 410 356 out[i].NusedApWrp = in[i].NusedApWrp; 357 358 out[i].Nwarp = in[i].Nwarp; 359 out[i].NwarpGood = in[i].NwarpGood; 360 361 out[i].ubercalDist = in[i].ubercalDist; 362 } 363 return (out); 364 } 365 366 SecFilt_PS1_V5 *SecFiltInternalTo_PS1_V5 (SecFilt *in, off_t Nvalues) { 367 368 off_t i; 369 SecFilt_PS1_V5 *out; 370 371 ALLOCATE_ZERO (out, SecFilt_PS1_V5, Nvalues); 372 373 for (i = 0; i < Nvalues; i++) { 374 375 out[i].M = in[i].M; 376 out[i].dM = in[i].dM; 377 out[i].Map = in[i].Map; 378 out[i].dMap = in[i].dMap; 379 out[i].sMap = in[i].sMap; 380 out[i].Mkron = in[i].Mkron; 381 out[i].dMkron = in[i].dMkron; 382 out[i].sMkron = in[i].sMkron; 383 384 out[i].psfQfMax = in[i].psfQfMax; 385 out[i].psfQfPerfMax = in[i].psfQfPerfMax; 386 387 out[i].Mstdev = in[i].Mstdev; 388 out[i].Mmin = in[i].Mmin; 389 out[i].Mmax = in[i].Mmax; 390 out[i].Mchisq = in[i].Mchisq; 391 392 out[i].Ncode = in[i].Ncode; 393 out[i].Nused = in[i].Nused; 394 out[i].NusedKron = in[i].NusedKron; 395 out[i].NusedAp = in[i].NusedAp; 396 397 out[i].flags = in[i].flags; 398 399 out[i].MpsfStk = in[i].MpsfStk; 400 out[i].FpsfStk = in[i].FpsfStk; 401 out[i].dFpsfStk = in[i].dFpsfStk; 402 403 out[i].MkronStk = in[i].MkronStk; 404 out[i].FkronStk = in[i].FkronStk; 405 out[i].dFkronStk = in[i].dFkronStk; 406 407 out[i].MapStk = in[i].MapStk; 408 out[i].FapStk = in[i].FapStk; 409 out[i].dFapStk = in[i].dFapStk; 410 411 out[i].Nstack = in[i].Nstack; 412 out[i].NstackDet = in[i].NstackDet; 413 414 out[i].stackPrmryOff = in[i].stackPrmryOff; 415 out[i].stackBestOff = in[i].stackBestOff; 416 417 out[i].MpsfWrp = in[i].MpsfWrp; 418 out[i].FpsfWrp = in[i].FpsfWrp; 419 out[i].dFpsfWrp = in[i].dFpsfWrp; 420 out[i].sFpsfWrp = in[i].sFpsfWrp; 421 422 out[i].MkronWrp = in[i].MkronWrp; 423 out[i].FkronWrp = in[i].FkronWrp; 424 out[i].dFkronWrp = in[i].dFkronWrp; 425 out[i].sFkronWrp = in[i].sFkronWrp; 426 427 out[i].MapWrp = in[i].MapWrp; 428 out[i].FapWrp = in[i].FapWrp; 429 out[i].dFapWrp = in[i].dFapWrp; 430 out[i].sFapWrp = in[i].sFapWrp; 431 432 out[i].NusedWrp = in[i].NusedWrp; 433 out[i].NusedKronWrp = in[i].NusedKronWrp; 434 out[i].NusedApWrp = in[i].NusedApWrp; 435 436 out[i].Nwarp = in[i].Nwarp; 437 out[i].NwarpGood = in[i].NwarpGood; 411 438 412 439 out[i].ubercalDist = in[i].ubercalDist; … … 834 861 return (out); 835 862 } 863 864 /*********************** old / alternate version **********************/ 865 866 // 'primary' is needed to conform with the API for Loneos and Elixir, but is not used 867 Average *Average_PS1_V5alt_ToInternal (Average_PS1_V5alt *in, off_t Nvalues) { 868 869 off_t i; 870 Average *out; 871 872 ALLOCATE_ZERO (out, Average, Nvalues); 873 874 for (i = 0; i < Nvalues; i++) { 875 dvo_average_init (&out[i]); 876 877 out[i].R = in[i].R; 878 out[i].D = in[i].D; 879 out[i].dR = in[i].dR; 880 out[i].dD = in[i].dD; 881 out[i].uR = in[i].uR; 882 out[i].uD = in[i].uD; 883 out[i].duR = in[i].duR; 884 out[i].duD = in[i].duD; 885 out[i].P = in[i].P; 886 out[i].dP = in[i].dP; 887 888 out[i].Rstk = in[i].Rstk; 889 out[i].Dstk = in[i].Dstk; 890 out[i].dRstk = in[i].dRstk; 891 out[i].dDstk = in[i].dDstk; 892 893 out[i].ChiSqAve = in[i].ChiSqAve; 894 out[i].ChiSqPM = in[i].ChiSqPM; 895 out[i].ChiSqPar = in[i].ChiSqPar; 896 out[i].Tmean = in[i].Tmean; 897 out[i].Trange = in[i].Trange; 898 899 out[i].psfQF = in[i].psfQF; 900 out[i].psfQFperf = in[i].psfQFperf; 901 out[i].stargal = in[i].stargal; 902 out[i].Npos = in[i].Npos; 903 904 out[i].Nmeasure = in[i].Nmeasure; 905 out[i].Nmissing = in[i].Nmissing; 906 out[i].Nlensing = in[i].Nlensing; 907 out[i].Nlensobj = in[i].Nlensobj; 908 out[i].Nextend = in[i].Nextend; 909 910 out[i].measureOffset = in[i].measureOffset; 911 out[i].missingOffset = in[i].missingOffset; 912 out[i].lensingOffset = in[i].lensingOffset; 913 out[i].lensobjOffset = in[i].lensobjOffset; 914 out[i].extendOffset = in[i].extendOffset; 915 out[i].paramsOffset = in[i].paramsOffset; 916 917 out[i].refColorBlue = in[i].refColorBlue; 918 out[i].refColorRed = in[i].refColorRed; 919 920 out[i].flags = in[i].flags; 921 out[i].photFlagsUpper = in[i].photFlagsUpper; 922 out[i].photFlagsLower = in[i].photFlagsLower; 923 out[i].objID = in[i].objID; 924 out[i].catID = in[i].catID; 925 out[i].extID = in[i].extID; 926 out[i].extIDgc = in[i].extIDgc; 927 } 928 return (out); 929 } 930 931 int gfits_convert_Average_PS1_V5alt (Average_PS1_V5alt *data, off_t size, off_t nitems) { 932 933 off_t i; 934 unsigned char *byte, tmp; 935 936 if (size != 184) { 937 fprintf (stderr, "WARNING: mismatch in data types Average_PS1_V5alt: "OFF_T_FMT" vs %d\n", size, 184); 938 return (FALSE); 939 } 940 941 /* provide initial values to avoid compiler warnings for non-BYTE_SWAP arch */ 942 i = tmp = 0; 943 byte = NULL; 944 945 # ifdef BYTE_SWAP 946 byte = (unsigned char *) data; 947 for (i = 0; i < nitems; i++, byte += 184) { 948 /** BYTE SWAP **/ 949 SWAP_DBLE (0); // RA 950 SWAP_DBLE (8); // DEC 951 SWAP_WORD (16); // RA_ERR 952 SWAP_WORD (20); // DEC_ERR 953 SWAP_WORD (24); // U_RA 954 SWAP_WORD (28); // U_DEC 955 SWAP_WORD (32); // V_RA_ERR 956 SWAP_WORD (36); // V_DEC_ERR 957 SWAP_WORD (40); // PAR 958 SWAP_WORD (44); // PAR_ERR 959 SWAP_DBLE (48); // RA_STK 960 SWAP_DBLE (56); // DEC_STK 961 SWAP_WORD (64); // RA_STK_ERR 962 SWAP_WORD (68); // DEC_STK_ERR 963 SWAP_WORD (72); // CHISQ_POS 964 SWAP_WORD (76); // CHISQ_PM 965 SWAP_WORD (80); // CHISQ_PAP 966 SWAP_WORD (84); // MEAN_EPOCH 967 SWAP_WORD (88); // TIME_RANGE 968 SWAP_WORD (92); // PSF_QF 969 SWAP_WORD (96); // PSF_QF_PERF 970 SWAP_WORD (100); // STARGAL_SEP 971 SWAP_BYTE (104); // NUMBER_POS 972 SWAP_BYTE (106); // NMEASURE 973 SWAP_BYTE (108); // NMISSING 974 SWAP_BYTE (110); // NLENSING 975 SWAP_BYTE (112); // NLENSOBJ 976 SWAP_BYTE (114); // NEXTEND 977 SWAP_WORD (116); // OFF_MEASURE 978 SWAP_WORD (120); // OFF_MISSING 979 SWAP_WORD (124); // OFF_LENSING 980 SWAP_WORD (128); // OFF_LENSOBJ 981 SWAP_WORD (132); // OFF_EXTEND 982 SWAP_WORD (136); // OFF_PARAMS 983 SWAP_WORD (140); // REF_COLOR_BLUE 984 SWAP_WORD (144); // REF_COLOR_RED 985 SWAP_WORD (148); // FLAGS 986 SWAP_WORD (152); // PHOTFLAGS_U 987 SWAP_WORD (156); // PHOTFLAGS_L 988 SWAP_WORD (160); // OBJ_ID 989 SWAP_WORD (164); // CAT_ID 990 SWAP_DBLE (168); // EXT_ID 991 SWAP_DBLE (176); // EXT_ID_GC 992 } 993 # endif 994 995 return (TRUE); 996 } 997 998 /*** add test of EXTNAME and header-defined columns? ***/ 999 /* return internal structure representation */ 1000 Average_PS1_V5alt *gfits_table_get_Average_PS1_V5alt (FTable *ftable, off_t *Ndata, char *swapped) { 1001 1002 int Ncols; 1003 Average_PS1_V5alt *data; 1004 1005 Ncols = ftable[0].header[0].Naxis[0]; 1006 if (Ncols != 184) { 1007 fprintf (stderr, "ERROR: mis-match in table size: width is %d but should be %d bytes\n", Ncols, 184); 1008 return NULL; 1009 } 1010 1011 *Ndata = ftable[0].header[0].Naxis[1]; 1012 data = (Average_PS1_V5alt *) ftable[0].buffer; 1013 if ((swapped == NULL) || (*swapped == FALSE)) { 1014 if (!gfits_convert_Average_PS1_V5alt (data, sizeof (Average_PS1_V5alt), *Ndata)) { 1015 return NULL; 1016 } 1017 gfits_table_scale_data (ftable); 1018 if (swapped != NULL) *swapped = TRUE; 1019 } 1020 return (data); 1021 } 1022 1023 /****** alt secfilt **********/ 1024 1025 SecFilt *SecFilt_PS1_V5alt_ToInternal (SecFilt_PS1_V5alt *in, off_t Nvalues) { 1026 1027 off_t i; 1028 SecFilt *out; 1029 1030 ALLOCATE_ZERO (out, SecFilt, Nvalues); 1031 1032 for (i = 0; i < Nvalues; i++) { 1033 dvo_secfilt_init (&out[i]); 1034 1035 out[i].M = in[i].M; 1036 out[i].dM = in[i].dM; 1037 out[i].Map = in[i].Map; 1038 out[i].dMap = in[i].dMap; 1039 out[i].sMap = in[i].sMap; 1040 out[i].Mkron = in[i].Mkron; 1041 out[i].dMkron = in[i].dMkron; 1042 1043 out[i].Mstdev = in[i].Mstdev; 1044 out[i].Mmin = in[i].Mmin; 1045 out[i].Mmax = in[i].Mmax; 1046 out[i].Mchisq = in[i].Mchisq; 1047 1048 out[i].Ncode = in[i].Ncode; 1049 out[i].Nused = in[i].Nused; 1050 out[i].NusedKron = in[i].NusedKron; 1051 out[i].NusedAp = in[i].NusedAp; 1052 1053 out[i].flags = in[i].flags; 1054 1055 out[i].MpsfStk = in[i].MpsfStk; 1056 out[i].FpsfStk = in[i].FpsfStk; 1057 out[i].dFpsfStk = in[i].dFpsfStk; 1058 1059 out[i].MkronStk = in[i].MkronStk; 1060 out[i].FkronStk = in[i].FkronStk; 1061 out[i].dFkronStk = in[i].dFkronStk; 1062 1063 out[i].MapStk = in[i].MapStk; 1064 out[i].FapStk = in[i].FapStk; 1065 out[i].dFapStk = in[i].dFapStk; 1066 1067 out[i].stackPrmryOff = in[i].stackPrmryOff; 1068 out[i].stackBestOff = in[i].stackBestOff; 1069 1070 out[i].MpsfWrp = in[i].MpsfWrp; 1071 out[i].FpsfWrp = in[i].FpsfWrp; 1072 out[i].dFpsfWrp = in[i].dFpsfWrp; 1073 out[i].sFpsfWrp = in[i].sFpsfWrp; 1074 1075 out[i].MkronWrp = in[i].MkronWrp; 1076 out[i].FkronWrp = in[i].FkronWrp; 1077 out[i].dFkronWrp = in[i].dFkronWrp; 1078 out[i].sFkronWrp = in[i].sFkronWrp; 1079 1080 out[i].MapWrp = in[i].MapWrp; 1081 out[i].FapWrp = in[i].FapWrp; 1082 out[i].dFapWrp = in[i].dFapWrp; 1083 out[i].sFapWrp = in[i].sFapWrp; 1084 1085 out[i].NusedWrp = in[i].NusedWrp; 1086 out[i].NusedKronWrp = in[i].NusedKronWrp; 1087 out[i].NusedApWrp = in[i].NusedApWrp; 1088 1089 out[i].ubercalDist = in[i].ubercalDist; 1090 } 1091 return (out); 1092 } 1093 1094 int gfits_convert_SecFilt_PS1_V5alt (SecFilt_PS1_V5alt *data, off_t size, off_t nitems) { 1095 1096 off_t i; 1097 unsigned char *byte, tmp; 1098 1099 if (size != 160) { 1100 fprintf (stderr, "WARNING: mismatch in data types SecFilt_PS1_V5alt: "OFF_T_FMT" vs %d\n", size, 160); 1101 return (FALSE); 1102 } 1103 1104 /* provide initial values to avoid compiler warnings for non-BYTE_SWAP arch */ 1105 i = tmp = 0; 1106 byte = NULL; 1107 1108 # ifdef BYTE_SWAP 1109 byte = (unsigned char *) data; 1110 for (i = 0; i < nitems; i++, byte += 160) { 1111 /** BYTE SWAP **/ 1112 SWAP_WORD (0); // MAG 1113 SWAP_WORD (4); // MAG_ERR 1114 SWAP_WORD (8); // MAG_AP 1115 SWAP_WORD (12); // MAG_AP_ERR 1116 SWAP_WORD (16); // MAG_AP_STDEV 1117 SWAP_WORD (20); // MAG_KRON 1118 SWAP_WORD (24); // MAG_KRON_ERR 1119 SWAP_WORD (28); // MAG_KRON_STDEV 1120 SWAP_WORD (32); // MAG_STDEV 1121 SWAP_WORD (36); // MAG_MIN 1122 SWAP_WORD (40); // MAG_MAX 1123 SWAP_WORD (44); // MAG_CHI 1124 SWAP_BYTE (48); // NCODE 1125 SWAP_BYTE (50); // NUSED 1126 SWAP_BYTE (52); // NUSED_KRON 1127 SWAP_BYTE (54); // NUSED_AP 1128 SWAP_WORD (56); // FLAGS 1129 SWAP_WORD (60); // MAG_PSF_STK 1130 SWAP_WORD (64); // FLUX_PSF_STK 1131 SWAP_WORD (68); // FLUX_PSF_STK_ERR 1132 SWAP_WORD (72); // MAG_KRON_STK 1133 SWAP_WORD (76); // FLUX_KRON_STK 1134 SWAP_WORD (80); // FLUX_KRON_STK_ERR 1135 SWAP_WORD (84); // MAG_AP_STK 1136 SWAP_WORD (88); // FLUX_AP_STK 1137 SWAP_WORD (92); // FLUX_AP_STK_ERR 1138 SWAP_WORD (96); // STACK_PRIMARY_OFF 1139 SWAP_WORD (100); // STACK_BEST_OFF 1140 SWAP_WORD (104); // MAG_PSF_WRP 1141 SWAP_WORD (108); // FLUX_PSF_WRP 1142 SWAP_WORD (112); // FLUX_PSF_WRP_ERR 1143 SWAP_WORD (116); // FLUX_PSF_WRP_STD 1144 SWAP_WORD (120); // MAG_KRON_WRP 1145 SWAP_WORD (124); // FLUX_KRON_WRP 1146 SWAP_WORD (128); // FLUX_KRON_WRP_ERR 1147 SWAP_WORD (132); // FLUX_KRON_WRP_STD 1148 SWAP_WORD (136); // MAG_AP_WRP 1149 SWAP_WORD (140); // FLUX_AP_WRP 1150 SWAP_WORD (144); // FLUX_AP_WRP_ERR 1151 SWAP_WORD (148); // FLUX_AP_WRP_STD 1152 SWAP_BYTE (152); // NUSED_WRP 1153 SWAP_BYTE (154); // NUSED_KRON_WRP 1154 SWAP_BYTE (156); // NUSED_AP_WRP 1155 SWAP_BYTE (158); // UBERCAL_DIST 1156 } 1157 # endif 1158 1159 return (TRUE); 1160 } 1161 1162 /*** add test of EXTNAME and header-defined columns? ***/ 1163 /* return internal structure representation */ 1164 SecFilt_PS1_V5alt *gfits_table_get_SecFilt_PS1_V5alt (FTable *ftable, off_t *Ndata, char *swapped) { 1165 1166 int Ncols; 1167 SecFilt_PS1_V5alt *data; 1168 1169 Ncols = ftable[0].header[0].Naxis[0]; 1170 if (Ncols != 160) { 1171 fprintf (stderr, "ERROR: mis-match in table size: width is %d but should be %d bytes\n", Ncols, 160); 1172 return NULL; 1173 } 1174 1175 *Ndata = ftable[0].header[0].Naxis[1]; 1176 data = (SecFilt_PS1_V5alt *) ftable[0].buffer; 1177 if ((swapped == NULL) || (*swapped == FALSE)) { 1178 if (!gfits_convert_SecFilt_PS1_V5alt (data, sizeof (SecFilt_PS1_V5alt), *Ndata)) { 1179 return NULL; 1180 } 1181 gfits_table_scale_data (ftable); 1182 if (swapped != NULL) *swapped = TRUE; 1183 } 1184 return (data); 1185 } 1186 1187
Note:
See TracChangeset
for help on using the changeset viewer.
