Changeset 38062 for trunk/Ohana/src/libdvo
- Timestamp:
- Mar 29, 2015, 6:52:41 AM (11 years ago)
- Location:
- trunk
- Files:
-
- 11 edited
-
. (modified) (1 prop)
-
Ohana (modified) (1 prop)
-
Ohana/src/libdvo/include/dvo.h (modified) (1 diff)
-
Ohana/src/libdvo/include/dvodb.h (modified) (5 diffs)
-
Ohana/src/libdvo/src/dbExtractAverages.c (modified) (6 diffs)
-
Ohana/src/libdvo/src/dbExtractMeasures.c (modified) (1 diff)
-
Ohana/src/libdvo/src/dbFields.c (modified) (1 diff)
-
Ohana/src/libdvo/src/dvo_catalog.c (modified) (1 diff)
-
Ohana/src/libdvo/src/dvo_convert.c (modified) (1 diff)
-
Ohana/src/libdvo/src/dvo_convert_PS1_V5.c (modified) (5 diffs)
-
Ohana/src/libdvo/src/dvo_tiny_values.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk
- Property svn:mergeinfo changed
-
trunk/Ohana
- Property svn:mergeinfo deleted
-
trunk/Ohana/src/libdvo/include/dvo.h
r37992 r38062 555 555 Measure *Measure_PS1_V4alt_ToInternal (Average *ave, Measure_PS1_V4alt *in, off_t Nvalues); 556 556 557 typedef struct { 558 double R; // RA at epoch (degrees) 559 double D; // DEC at epoch (degrees) 560 float M; // catalog mag (mag) 561 float dM; // mag error (mag) 562 float Map; // aperture mag (mag) 563 float dMap; // aperture mag (mag) 564 float Mkron; // kron magnitude (mag) 565 float dMkron; // kron magnitude error (mag) 566 float Mcal; // image cal mag (mag) 567 float dMcal; // systematic calibration error (mag) 568 float dt; // exposure time (2.5*log(exptime)) 569 float FluxPSF; // flux from psf fit (counts/sec) 570 float dFluxPSF; // error on psf flux (counts/sec) 571 float FluxKron; // flux from kron ap (counts/sec) 572 float dFluxKron; // error on kron flux (counts/sec) 573 float FluxAp; // flux from ap ap (counts/sec) 574 float dFluxAp; // error on ap flux (counts/sec) 575 float airmass; // (airmass - 1) (airmass) 576 float az; // telescope azimuth 577 float Xccd; // X coord on chip (raw value) (pixels) 578 float Yccd; // Y coord on chip (raw value) (pixels) 579 float Xfix; // X coord after correction (pixels) 580 float Yfix; // Y coord after correction (pixels) 581 float XoffKH; // X offset from correction (pixels) 582 float YoffKH; // Y offset from correction (pixels) 583 float XoffDCR; // X offset from correction (pixels) 584 float YoffDCR; // Y offset from correction (pixels) 585 float RoffGAL; // RA offset from correction (arcsec) 586 float DoffGAL; // DEC offset from correction (arcsec) 587 float Sky; // local estimate of sky flux (counts/sec) 588 float dSky; // local estimate of sky flux (counts/sec) 589 int t; // time in seconds (UNIX) 590 unsigned int averef; // reference to average entry 591 unsigned int detID; // detection ID 592 unsigned int objID; // unique ID for object in table 593 unsigned int catID; // unique ID for table in which object was first realized 594 uint64_t extID; // external ID (eg PSPS detID) 595 unsigned int imageID; // reference to DVO image ID 596 float psfQF; // psf coverage/quality factor 597 float psfQFperf; // psf coverage / quality factor (all mask bits) 598 float psfChisq; // psf fit chisq 599 int psfNdof; // psf degrees of freedom 600 int psfNpix; // psf number of pixels 601 int photFlags2; // flags supplied by photometry program 602 float extNsigma; // Nsigma deviation towards EXT 603 short FWx; // object fwhm major axis (1/100 of pixels) 604 short FWy; // object fwhm minor axis (1/100 of pixels ) 605 short theta; // angle wrt ccd X dir ((0xffff/360) deg) 606 short Mxx; // second moments in pixel coords (1/100 of pixels) 607 short Mxy; // second moments in pixel coords (1/100 of pixels) 608 short Myy; // second moments in pixel coords (1/100 of pixels) 609 unsigned short t_msec; // time fraction of second (milliseconds) 610 unsigned short photcode; // photcode 611 short dXccd; // X coord error on chip (1/100 of pixels) 612 short dYccd; // Y coord error on chip (1/100 of pixels) 613 short dRsys; // systematic error from astrom (1/100 of pixels) 614 short posangle; // position angle sky to chip ((0xffff/360) deg) 615 float pltscale; // plate scale (arcsec/pixel) 616 unsigned int dbFlags; // flags supplied by analysis in database 617 unsigned int photFlags; // flags supplied by photometry program 618 int padding; // padding to ensure 8byte blocks 619 } Measure_PS1_V5alt; 620 621 Measure *Measure_PS1_V5alt_ToInternal (Average *ave, Measure_PS1_V5alt *in, off_t Nvalues); 622 int gfits_convert_Measure_PS1_V5alt (Measure_PS1_V5alt *data, off_t size, off_t nitems); 623 Measure_PS1_V5alt *gfits_table_get_Measure_PS1_V5alt (FTable *ftable, off_t *Ndata, char *swapped); 624 557 625 // alternate version of PS1_V5 (old dev version) 558 626 typedef struct { -
trunk/Ohana/src/libdvo/include/dvodb.h
r37871 r38062 178 178 MEAS_XOFF_DCR, 179 179 MEAS_YOFF_DCR, 180 MEAS_XOFF_CAM, 181 MEAS_YOFF_CAM, 180 182 MEAS_ROFF_GAL, 181 183 MEAS_DOFF_GAL, … … 237 239 MEAS_RA_GALMODEL, // model pm prediction 238 240 MEAS_DEC_GALMODEL, // model pm prediction 239 } ;241 } dvoMeasureType; 240 242 241 243 /* average fields */ … … 289 291 AVE_RA_GALMODEL, // model pm prediction 290 292 AVE_DEC_GALMODEL, // model pm prediction 291 } ;293 } dvoAverageType; 292 294 293 295 // AVE_NPHOT, … … 365 367 IMAGE_REF_COLOR_BLUE, 366 368 IMAGE_REF_COLOR_RED 367 } ;369 } dvoImageType; 368 370 369 371 enum {DVO_TABLE_AVERAGE, DVO_TABLE_MEASURE, DVO_TABLE_IMAGE}; … … 383 385 int extract; 384 386 int table; 385 int ID; 387 int ID; // may be either dvoMeasureType or dvoAverageType 386 388 387 389 dvoMagSourceType magSource; // chip, (forced) warp, stack [only relevant for averages] -
trunk/Ohana/src/libdvo/src/dbExtractAverages.c
r37807 r38062 53 53 54 54 // off_t i; 55 int n; 55 56 dbValue value; 56 57 … … 186 187 case AVE_PHOT: 187 188 // if we request mag:ave, use equiv for photcode (ie a given measure, say GPC1.g.XY01, will return g for mag:ave) 188 if (field->photcode->type == PHOT_MAG) { 189 // this is an error 190 break; 191 } 192 193 // if we ask for 2MASS_K, etc (REF values), return NAN unless measure->code matches 194 if (field->photcode->type == PHOT_REF) { 195 // need to ensure measure exists. 196 break; 197 } 198 199 // if we ask for GPC1.g.XY03:rel, etc (DEP values), return NAN unless measure->code matches 200 if (field->photcode->type == PHOT_DEP) { 201 // again. 202 break; 203 } 204 205 /* in some cases below we need a measurement which matches the requested photcode. 206 here is some sample code to find this. 207 208 for (i = 0; i < average[0].Nmeasure; i++) { 209 if (field->photcode->code != measure[i].photcode) continue; 210 value.Flt = measure[i].M; 211 break; 212 } 213 */ 189 190 // this is an error (no exposed photcodes should be of type PHOT_MAG) 191 if (field->photcode->type == PHOT_MAG) break; 214 192 215 193 switch (field->magOption) { … … 220 198 break; 221 199 case MAG_LEVEL_REF: 222 // which measure is needed here?223 // PhotRef (field->photcode, average, secfilt, measure, field->magClass, field->magSource);224 200 break; 225 201 case MAG_LEVEL_INST: 202 // find an appropriate measure (if one exists) 203 for (n = 0; n < average->Nmeasure; n++) { 204 if (field->photcode->code != measure[n].photcode) continue; 205 value.Flt = PhotInst (&measure[n], field->magClass); 206 break; 207 } 208 break; 226 209 case MAG_LEVEL_CAT: 210 // find an appropriate measure (if one exists) 211 for (n = 0; n < average->Nmeasure; n++) { 212 if (field->photcode->code != measure[n].photcode) continue; 213 value.Flt = PhotCat (&measure[n], field->magClass); 214 break; 215 } 216 break; 227 217 case MAG_LEVEL_SYS: 218 // find an appropriate measure (if one exists) 219 for (n = 0; n < average->Nmeasure; n++) { 220 if (field->photcode->code != measure[n].photcode) continue; 221 value.Flt = PhotSys (&measure[n], average, secfilt, field->magClass); 222 break; 223 } 224 break; 228 225 case MAG_LEVEL_REL: 226 // find an appropriate measure (if one exists) 227 for (n = 0; n < average->Nmeasure; n++) { 228 if (field->photcode->code != measure[n].photcode) continue; 229 value.Flt = PhotRel (&measure[n], average, secfilt, field->magClass); 230 break; 231 } 232 break; 229 233 case MAG_LEVEL_CAL: 230 234 case MAG_LEVEL_NONE: … … 243 247 case MAG_LEVEL_SYS: 244 248 case MAG_LEVEL_REL: 249 // find an appropriate measure (if one exists) 250 for (n = 0; n < average->Nmeasure; n++) { 251 if (field->photcode->code != measure[n].photcode) continue; 252 value.Flt = PhotErr (&measure[n], field->magClass); 253 break; 254 } 255 break; 245 256 case MAG_LEVEL_CAL: 246 257 case MAG_LEVEL_NONE: … … 259 270 break; 260 271 case MAG_LEVEL_INST: 272 // find an appropriate measure (if one exists) 273 for (n = 0; n < average->Nmeasure; n++) { 274 if (field->photcode->code != measure[n].photcode) continue; 275 value.Flt = PhotFluxInst (&measure[n], field->magClass); 276 break; 277 } 278 break; 261 279 case MAG_LEVEL_CAT: 280 // find an appropriate measure (if one exists) 281 for (n = 0; n < average->Nmeasure; n++) { 282 if (field->photcode->code != measure[n].photcode) continue; 283 value.Flt = PhotFluxCat (&measure[n], field->magClass); 284 break; 285 } 286 break; 262 287 case MAG_LEVEL_SYS: 288 // find an appropriate measure (if one exists) 289 for (n = 0; n < average->Nmeasure; n++) { 290 if (field->photcode->code != measure[n].photcode) continue; 291 value.Flt = PhotFluxSys (&measure[n], average, secfilt, field->magClass); 292 break; 293 } 294 break; 263 295 case MAG_LEVEL_REL: 296 // find an appropriate measure (if one exists) 297 for (n = 0; n < average->Nmeasure; n++) { 298 if (field->photcode->code != measure[n].photcode) continue; 299 value.Flt = PhotFluxRel (&measure[n], average, secfilt, field->magClass); 300 break; 301 } 302 break; 264 303 case MAG_LEVEL_CAL: 265 304 case MAG_LEVEL_NONE: … … 278 317 case MAG_LEVEL_SYS: 279 318 case MAG_LEVEL_REL: 319 // find an appropriate measure (if one exists) 320 for (n = 0; n < average->Nmeasure; n++) { 321 if (field->photcode->code != measure[n].photcode) continue; 322 value.Flt = PhotFluxInstErr (&measure[n], field->magClass); 323 break; 324 } 325 break; 280 326 case MAG_LEVEL_CAL: 281 327 case MAG_LEVEL_NONE: -
trunk/Ohana/src/libdvo/src/dbExtractMeasures.c
r37871 r38062 573 573 case MEAS_XOFF_DCR: { value.Flt = measure[0].XoffDCR; break; } 574 574 case MEAS_YOFF_DCR: { value.Flt = measure[0].YoffDCR; break; } 575 case MEAS_XOFF_CAM: { value.Flt = measure[0].XoffCAM; break; } 576 case MEAS_YOFF_CAM: { value.Flt = measure[0].YoffCAM; break; } 575 577 case MEAS_ROFF_GAL: { value.Flt = measure[0].RoffGAL; break; } 576 578 case MEAS_DOFF_GAL: { value.Flt = measure[0].DoffGAL; break; } -
trunk/Ohana/src/libdvo/src/dbFields.c
r37871 r38062 480 480 if (!strcasecmp (fieldName, "XOFF_DCR")) ESCAPE (MEAS_XOFF_DCR, OPIHI_FLT); 481 481 if (!strcasecmp (fieldName, "YOFF_DCR")) ESCAPE (MEAS_YOFF_DCR, OPIHI_FLT); 482 if (!strcasecmp (fieldName, "XOFF_CAM")) ESCAPE (MEAS_XOFF_CAM, OPIHI_FLT); 483 if (!strcasecmp (fieldName, "YOFF_CAM")) ESCAPE (MEAS_YOFF_CAM, OPIHI_FLT); 482 484 if (!strcasecmp (fieldName, "ROFF_GAL")) ESCAPE (MEAS_ROFF_GAL, OPIHI_FLT); 483 485 if (!strcasecmp (fieldName, "DOFF_GAL")) ESCAPE (MEAS_DOFF_GAL, OPIHI_FLT); -
trunk/Ohana/src/libdvo/src/dvo_catalog.c
r37995 r38062 273 273 measure->XoffDCR = NAN; 274 274 measure->YoffDCR = NAN; 275 measure->XoffCAM = NAN; 276 measure->YoffCAM = NAN; 275 277 measure->RoffGAL = NAN; 276 278 measure->DoffGAL = NAN; -
trunk/Ohana/src/libdvo/src/dvo_convert.c
r37995 r38062 204 204 free (tmpMeasure); 205 205 *format = DVO_FORMAT_PS1_V4; 206 return (measure); 207 } 208 209 // block to convert PV1_V5_0 tables (PS1_V5 made before the XoffCAM,YoffCAM addition) 210 if (!strcmp (extname, "DVO_MEASURE_PS1_V5") && (ftable[0].header[0].Naxis[0] == 232)) { 211 fprintf (stderr, "reading alt PS1_V5 format\n"); 212 Measure_PS1_V5alt *tmpMeasure; 213 tmpMeasure = gfits_table_get_Measure_PS1_V5alt (ftable, Nmeasure, NULL); 214 if (!tmpMeasure) { 215 fprintf (stderr, "ERROR: failed to read measures\n"); 216 exit (2); 217 } 218 myAssert (average, "conversion to internal needs average table"); 219 measure = Measure_PS1_V5alt_ToInternal (average, tmpMeasure, *Nmeasure); 220 free (tmpMeasure); 221 *format = DVO_FORMAT_PS1_V5; 206 222 return (measure); 207 223 } -
trunk/Ohana/src/libdvo/src/dvo_convert_PS1_V5.c
r37995 r38062 4 4 5 5 Measure *Measure_PS1_V5_ToInternal (Average *ave, Measure_PS1_V5 *in, off_t Nvalues) { 6 7 off_t i; 8 Measure *out; 9 10 ALLOCATE_ZERO (out, Measure, Nvalues); 11 12 for (i = 0; i < Nvalues; i++) { 13 dvo_measure_init (&out[i]); 14 15 out[i].R = in[i].R; 16 out[i].D = in[i].D; 17 out[i].M = in[i].M; 18 out[i].dM = in[i].dM; 19 out[i].Map = in[i].Map; 20 out[i].dMap = in[i].dMap; 21 out[i].Mkron = in[i].Mkron; 22 out[i].dMkron = in[i].dMkron; 23 out[i].Mcal = in[i].Mcal; 24 out[i].dMcal = in[i].dMcal; 25 out[i].dt = in[i].dt; 26 out[i].FluxPSF = in[i].FluxPSF; 27 out[i].dFluxPSF = in[i].dFluxPSF; 28 out[i].FluxKron = in[i].FluxKron; 29 out[i].dFluxKron = in[i].dFluxKron; 30 out[i].FluxAp = in[i].FluxAp; 31 out[i].dFluxAp = in[i].dFluxAp; 32 out[i].airmass = in[i].airmass; 33 out[i].az = in[i].az; 34 out[i].Xccd = in[i].Xccd; 35 out[i].Yccd = in[i].Yccd; 36 out[i].Xfix = in[i].Xfix; 37 out[i].Yfix = in[i].Yfix; 38 out[i].XoffKH = in[i].XoffKH; 39 out[i].YoffKH = in[i].YoffKH; 40 out[i].XoffDCR = in[i].XoffDCR; 41 out[i].YoffDCR = in[i].YoffDCR; 42 out[i].XoffCAM = in[i].XoffCAM; 43 out[i].YoffCAM = in[i].YoffCAM; 44 out[i].RoffGAL = in[i].RoffGAL; 45 out[i].DoffGAL = in[i].DoffGAL; 46 out[i].Sky = in[i].Sky; 47 out[i].dSky = in[i].dSky; 48 out[i].t = in[i].t; 49 out[i].averef = in[i].averef; 50 out[i].detID = in[i].detID; 51 out[i].objID = in[i].objID; 52 out[i].catID = in[i].catID; 53 out[i].extID = in[i].extID; 54 out[i].imageID = in[i].imageID; 55 out[i].psfQF = in[i].psfQF; 56 out[i].psfQFperf = in[i].psfQFperf; 57 out[i].psfChisq = in[i].psfChisq; 58 out[i].psfNdof = in[i].psfNdof; 59 out[i].psfNpix = in[i].psfNpix; 60 out[i].extNsigma = in[i].extNsigma; 61 out[i].FWx = in[i].FWx; 62 out[i].FWy = in[i].FWy; 63 out[i].theta = in[i].theta; 64 out[i].Mxx = in[i].Mxx; 65 out[i].Mxy = in[i].Mxy; 66 out[i].Myy = in[i].Myy; 67 out[i].t_msec = in[i].t_msec; 68 out[i].photcode = in[i].photcode; 69 out[i].dXccd = in[i].dXccd; 70 out[i].dYccd = in[i].dYccd; 71 out[i].dRsys = in[i].dRsys; 72 out[i].posangle = in[i].posangle; 73 out[i].pltscale = in[i].pltscale; 74 out[i].dbFlags = in[i].dbFlags; 75 out[i].photFlags = in[i].photFlags; 76 out[i].photFlags2 = in[i].photFlags2; 77 } 78 return (out); 79 } 80 81 Measure_PS1_V5 *MeasureInternalTo_PS1_V5 (Average *ave, Measure *in, off_t Nvalues) { 82 83 off_t i; 84 Measure_PS1_V5 *out; 85 86 ALLOCATE_ZERO (out, Measure_PS1_V5, Nvalues); 87 88 for (i = 0; i < Nvalues; i++) { 89 out[i].R = in[i].R; 90 out[i].D = in[i].D; 91 out[i].M = in[i].M; 92 out[i].dM = in[i].dM; 93 out[i].Map = in[i].Map; 94 out[i].dMap = in[i].dMap; 95 out[i].Mkron = in[i].Mkron; 96 out[i].dMkron = in[i].dMkron; 97 out[i].Mcal = in[i].Mcal; 98 out[i].dMcal = in[i].dMcal; 99 out[i].dt = in[i].dt; 100 out[i].FluxPSF = in[i].FluxPSF; 101 out[i].dFluxPSF = in[i].dFluxPSF; 102 out[i].FluxKron = in[i].FluxKron; 103 out[i].dFluxKron = in[i].dFluxKron; 104 out[i].FluxAp = in[i].FluxAp; 105 out[i].dFluxAp = in[i].dFluxAp; 106 out[i].airmass = in[i].airmass; 107 out[i].az = in[i].az; 108 out[i].Xccd = in[i].Xccd; 109 out[i].Yccd = in[i].Yccd; 110 out[i].Xfix = in[i].Xfix; 111 out[i].Yfix = in[i].Yfix; 112 out[i].XoffKH = in[i].XoffKH; 113 out[i].YoffKH = in[i].YoffKH; 114 out[i].XoffDCR = in[i].XoffDCR; 115 out[i].YoffDCR = in[i].YoffDCR; 116 out[i].XoffCAM = in[i].XoffCAM; 117 out[i].YoffCAM = in[i].YoffCAM; 118 out[i].RoffGAL = in[i].RoffGAL; 119 out[i].DoffGAL = in[i].DoffGAL; 120 out[i].Sky = in[i].Sky; 121 out[i].dSky = in[i].dSky; 122 out[i].t = in[i].t; 123 out[i].averef = in[i].averef; 124 out[i].detID = in[i].detID; 125 out[i].objID = in[i].objID; 126 out[i].catID = in[i].catID; 127 out[i].extID = in[i].extID; 128 out[i].imageID = in[i].imageID; 129 out[i].psfQF = in[i].psfQF; 130 out[i].psfQFperf = in[i].psfQFperf; 131 out[i].psfChisq = in[i].psfChisq; 132 out[i].psfNdof = in[i].psfNdof; 133 out[i].psfNpix = in[i].psfNpix; 134 out[i].extNsigma = in[i].extNsigma; 135 out[i].FWx = in[i].FWx; 136 out[i].FWy = in[i].FWy; 137 out[i].theta = in[i].theta; 138 out[i].Mxx = in[i].Mxx; 139 out[i].Mxy = in[i].Mxy; 140 out[i].Myy = in[i].Myy; 141 out[i].t_msec = in[i].t_msec; 142 out[i].photcode = in[i].photcode; 143 out[i].dXccd = in[i].dXccd; 144 out[i].dYccd = in[i].dYccd; 145 out[i].dRsys = in[i].dRsys; 146 out[i].posangle = in[i].posangle; 147 out[i].pltscale = in[i].pltscale; 148 out[i].dbFlags = in[i].dbFlags; 149 out[i].photFlags = in[i].photFlags; 150 out[i].photFlags2 = in[i].photFlags2; 151 } 152 return (out); 153 } 154 155 // 'primary' is needed to conform with the API for Loneos and Elixir, but is not used 156 Average *Average_PS1_V5_ToInternal (Average_PS1_V5 *in, off_t Nvalues, SecFilt **primary) { 157 158 off_t i; 159 Average *out; 160 161 ALLOCATE_ZERO (out, Average, Nvalues); 162 163 for (i = 0; i < Nvalues; i++) { 164 dvo_average_init (&out[i]); 165 166 out[i].R = in[i].R; 167 out[i].D = in[i].D; 168 out[i].dR = in[i].dR; 169 out[i].dD = in[i].dD; 170 out[i].uR = in[i].uR; 171 out[i].uD = in[i].uD; 172 out[i].duR = in[i].duR; 173 out[i].duD = in[i].duD; 174 out[i].P = in[i].P; 175 out[i].dP = in[i].dP; 176 177 out[i].Rstk = in[i].Rstk; 178 out[i].Dstk = in[i].Dstk; 179 out[i].dRstk = in[i].dRstk; 180 out[i].dDstk = in[i].dDstk; 181 182 out[i].ChiSqAve = in[i].ChiSqAve; 183 out[i].ChiSqPM = in[i].ChiSqPM; 184 out[i].ChiSqPar = in[i].ChiSqPar; 185 out[i].Tmean = in[i].Tmean; 186 out[i].Trange = in[i].Trange; 187 188 out[i].psfQF = in[i].psfQF; 189 out[i].psfQFperf = in[i].psfQFperf; 190 out[i].stargal = in[i].stargal; 191 out[i].Npos = in[i].Npos; 192 193 out[i].Nmeasure = in[i].Nmeasure; 194 out[i].Nmissing = in[i].Nmissing; 195 out[i].Nlensing = in[i].Nlensing; 196 out[i].Nlensobj = in[i].Nlensobj; 197 out[i].Nstarpar = in[i].Nstarpar; 198 out[i].Nextend = in[i].Nextend; 199 200 out[i].measureOffset = in[i].measureOffset; 201 out[i].missingOffset = in[i].missingOffset; 202 out[i].lensingOffset = in[i].lensingOffset; 203 out[i].lensobjOffset = in[i].lensobjOffset; 204 out[i].starparOffset = in[i].starparOffset; 205 out[i].extendOffset = in[i].extendOffset; 206 207 out[i].refColorBlue = in[i].refColorBlue; 208 out[i].refColorRed = in[i].refColorRed; 209 210 out[i].tessID = in[i].tessID; 211 out[i].skycellID = in[i].skycellID; 212 out[i].projectionID = in[i].projectionID; 213 214 out[i].flags = in[i].flags; 215 out[i].photFlagsUpper = in[i].photFlagsUpper; 216 out[i].photFlagsLower = in[i].photFlagsLower; 217 out[i].objID = in[i].objID; 218 out[i].catID = in[i].catID; 219 out[i].extID = in[i].extID; 220 out[i].extIDgc = in[i].extIDgc; 221 } 222 return (out); 223 } 224 225 // 'primary' is needed to conform with the API for Loneos and Elixir, but is not used 226 Average_PS1_V5 *AverageInternalTo_PS1_V5 (Average *in, off_t Nvalues, SecFilt *primary) { 227 228 off_t i; 229 Average_PS1_V5 *out; 230 231 ALLOCATE_ZERO (out, Average_PS1_V5, Nvalues); 232 233 for (i = 0; i < Nvalues; i++) { 234 out[i].R = in[i].R; 235 out[i].D = in[i].D; 236 out[i].dR = in[i].dR; 237 out[i].dD = in[i].dD; 238 out[i].uR = in[i].uR; 239 out[i].uD = in[i].uD; 240 out[i].duR = in[i].duR; 241 out[i].duD = in[i].duD; 242 out[i].P = in[i].P; 243 out[i].dP = in[i].dP; 244 245 out[i].Rstk = in[i].Rstk; 246 out[i].Dstk = in[i].Dstk; 247 out[i].dRstk = in[i].dRstk; 248 out[i].dDstk = in[i].dDstk; 249 250 out[i].ChiSqAve = in[i].ChiSqAve; 251 out[i].ChiSqPM = in[i].ChiSqPM; 252 out[i].ChiSqPar = in[i].ChiSqPar; 253 out[i].Tmean = in[i].Tmean; 254 out[i].Trange = in[i].Trange; 255 256 out[i].psfQF = in[i].psfQF; 257 out[i].psfQFperf = in[i].psfQFperf; 258 out[i].stargal = in[i].stargal; 259 out[i].Npos = in[i].Npos; 260 261 out[i].Nmeasure = in[i].Nmeasure; 262 out[i].Nmissing = in[i].Nmissing; 263 out[i].Nlensing = in[i].Nlensing; 264 out[i].Nlensobj = in[i].Nlensobj; 265 out[i].Nstarpar = in[i].Nstarpar; 266 out[i].Nextend = in[i].Nextend; 267 268 out[i].measureOffset = in[i].measureOffset; 269 out[i].missingOffset = in[i].missingOffset; 270 out[i].lensingOffset = in[i].lensingOffset; 271 out[i].lensobjOffset = in[i].lensobjOffset; 272 out[i].starparOffset = in[i].starparOffset; 273 out[i].extendOffset = in[i].extendOffset; 274 275 out[i].refColorBlue = in[i].refColorBlue; 276 out[i].refColorRed = in[i].refColorRed; 277 278 out[i].tessID = in[i].tessID; 279 out[i].skycellID = in[i].skycellID; 280 out[i].projectionID = in[i].projectionID; 281 282 out[i].flags = in[i].flags; 283 out[i].photFlagsUpper = in[i].photFlagsUpper; 284 out[i].photFlagsLower = in[i].photFlagsLower; 285 out[i].objID = in[i].objID; 286 out[i].catID = in[i].catID; 287 out[i].extID = in[i].extID; 288 out[i].extIDgc = in[i].extIDgc; 289 } 290 return (out); 291 } 292 293 SecFilt *SecFilt_PS1_V5_ToInternal (SecFilt_PS1_V5 *in, off_t Nvalues) { 294 295 off_t i; 296 SecFilt *out; 297 298 ALLOCATE_ZERO (out, SecFilt, Nvalues); 299 300 for (i = 0; i < Nvalues; i++) { 301 dvo_secfilt_init (&out[i]); 302 303 out[i].M = in[i].M; 304 out[i].dM = in[i].dM; 305 out[i].Map = in[i].Map; 306 out[i].dMap = in[i].dMap; 307 out[i].sMap = in[i].sMap; 308 out[i].Mkron = in[i].Mkron; 309 out[i].dMkron = in[i].dMkron; 310 out[i].sMkron = in[i].sMkron; 311 312 out[i].psfQfMax = in[i].psfQfMax; 313 out[i].psfQfPerfMax = in[i].psfQfPerfMax; 314 315 out[i].Mstdev = in[i].Mstdev; 316 out[i].Mmin = in[i].Mmin; 317 out[i].Mmax = in[i].Mmax; 318 out[i].Mchisq = in[i].Mchisq; 319 320 out[i].Ncode = in[i].Ncode; 321 out[i].Nused = in[i].Nused; 322 out[i].NusedKron = in[i].NusedKron; 323 out[i].NusedAp = in[i].NusedAp; 324 325 out[i].flags = in[i].flags; 326 327 out[i].MpsfStk = in[i].MpsfStk; 328 out[i].FpsfStk = in[i].FpsfStk; 329 out[i].dFpsfStk = in[i].dFpsfStk; 330 331 out[i].MkronStk = in[i].MkronStk; 332 out[i].FkronStk = in[i].FkronStk; 333 out[i].dFkronStk = in[i].dFkronStk; 334 335 out[i].MapStk = in[i].MapStk; 336 out[i].FapStk = in[i].FapStk; 337 out[i].dFapStk = in[i].dFapStk; 338 339 out[i].Nstack = in[i].Nstack; 340 out[i].NstackDet = in[i].NstackDet; 341 342 out[i].stackPrmryOff = in[i].stackPrmryOff; 343 out[i].stackBestOff = in[i].stackBestOff; 344 345 out[i].MpsfWrp = in[i].MpsfWrp; 346 out[i].FpsfWrp = in[i].FpsfWrp; 347 out[i].dFpsfWrp = in[i].dFpsfWrp; 348 out[i].sFpsfWrp = in[i].sFpsfWrp; 349 350 out[i].MkronWrp = in[i].MkronWrp; 351 out[i].FkronWrp = in[i].FkronWrp; 352 out[i].dFkronWrp = in[i].dFkronWrp; 353 out[i].sFkronWrp = in[i].sFkronWrp; 354 355 out[i].MapWrp = in[i].MapWrp; 356 out[i].FapWrp = in[i].FapWrp; 357 out[i].dFapWrp = in[i].dFapWrp; 358 out[i].sFapWrp = in[i].sFapWrp; 359 360 out[i].NusedWrp = in[i].NusedWrp; 361 out[i].NusedKronWrp = in[i].NusedKronWrp; 362 out[i].NusedApWrp = in[i].NusedApWrp; 363 364 out[i].Nwarp = in[i].Nwarp; 365 out[i].NwarpGood = in[i].NwarpGood; 366 367 out[i].ubercalDist = in[i].ubercalDist; 368 } 369 return (out); 370 } 371 372 SecFilt_PS1_V5 *SecFiltInternalTo_PS1_V5 (SecFilt *in, off_t Nvalues) { 373 374 off_t i; 375 SecFilt_PS1_V5 *out; 376 377 ALLOCATE_ZERO (out, SecFilt_PS1_V5, Nvalues); 378 379 for (i = 0; i < Nvalues; i++) { 380 381 out[i].M = in[i].M; 382 out[i].dM = in[i].dM; 383 out[i].Map = in[i].Map; 384 out[i].dMap = in[i].dMap; 385 out[i].sMap = in[i].sMap; 386 out[i].Mkron = in[i].Mkron; 387 out[i].dMkron = in[i].dMkron; 388 out[i].sMkron = in[i].sMkron; 389 390 out[i].psfQfMax = in[i].psfQfMax; 391 out[i].psfQfPerfMax = in[i].psfQfPerfMax; 392 393 out[i].Mstdev = in[i].Mstdev; 394 out[i].Mmin = in[i].Mmin; 395 out[i].Mmax = in[i].Mmax; 396 out[i].Mchisq = in[i].Mchisq; 397 398 out[i].Ncode = in[i].Ncode; 399 out[i].Nused = in[i].Nused; 400 out[i].NusedKron = in[i].NusedKron; 401 out[i].NusedAp = in[i].NusedAp; 402 403 out[i].flags = in[i].flags; 404 405 out[i].MpsfStk = in[i].MpsfStk; 406 out[i].FpsfStk = in[i].FpsfStk; 407 out[i].dFpsfStk = in[i].dFpsfStk; 408 409 out[i].MkronStk = in[i].MkronStk; 410 out[i].FkronStk = in[i].FkronStk; 411 out[i].dFkronStk = in[i].dFkronStk; 412 413 out[i].MapStk = in[i].MapStk; 414 out[i].FapStk = in[i].FapStk; 415 out[i].dFapStk = in[i].dFapStk; 416 417 out[i].Nstack = in[i].Nstack; 418 out[i].NstackDet = in[i].NstackDet; 419 420 out[i].stackPrmryOff = in[i].stackPrmryOff; 421 out[i].stackBestOff = in[i].stackBestOff; 422 423 out[i].MpsfWrp = in[i].MpsfWrp; 424 out[i].FpsfWrp = in[i].FpsfWrp; 425 out[i].dFpsfWrp = in[i].dFpsfWrp; 426 out[i].sFpsfWrp = in[i].sFpsfWrp; 427 428 out[i].MkronWrp = in[i].MkronWrp; 429 out[i].FkronWrp = in[i].FkronWrp; 430 out[i].dFkronWrp = in[i].dFkronWrp; 431 out[i].sFkronWrp = in[i].sFkronWrp; 432 433 out[i].MapWrp = in[i].MapWrp; 434 out[i].FapWrp = in[i].FapWrp; 435 out[i].dFapWrp = in[i].dFapWrp; 436 out[i].sFapWrp = in[i].sFapWrp; 437 438 out[i].NusedWrp = in[i].NusedWrp; 439 out[i].NusedKronWrp = in[i].NusedKronWrp; 440 out[i].NusedApWrp = in[i].NusedApWrp; 441 442 out[i].Nwarp = in[i].Nwarp; 443 out[i].NwarpGood = in[i].NwarpGood; 444 445 out[i].ubercalDist = in[i].ubercalDist; 446 } 447 return (out); 448 } 449 450 Lensing *Lensing_PS1_V5_R2_ToInternal (Lensing_PS1_V5_R2 *in, off_t Nvalues) { 451 452 off_t i; 453 Lensing *out; 454 455 ALLOCATE_ZERO (out, Lensing, Nvalues); 456 457 for (i = 0; i < Nvalues; i++) { 458 dvo_lensing_init (&out[i]); 459 460 out[i].X11_sm_obj = in[i].X11_sm_obj; 461 out[i].X12_sm_obj = in[i].X12_sm_obj; 462 out[i].X22_sm_obj = in[i].X22_sm_obj; 463 out[i].E1_sm_obj = in[i].E1_sm_obj; 464 out[i].E2_sm_obj = in[i].E2_sm_obj; 465 466 out[i].X11_sh_obj = in[i].X11_sh_obj; 467 out[i].X12_sh_obj = in[i].X12_sh_obj; 468 out[i].X22_sh_obj = in[i].X22_sh_obj; 469 out[i].E1_sh_obj = in[i].E1_sh_obj; 470 out[i].E2_sh_obj = in[i].E2_sh_obj; 471 472 out[i].X11_sm_psf = in[i].X11_sm_psf; 473 out[i].X12_sm_psf = in[i].X12_sm_psf; 474 out[i].X22_sm_psf = in[i].X22_sm_psf; 475 out[i].E1_sm_psf = in[i].E1_sm_psf; 476 out[i].E2_sm_psf = in[i].E2_sm_psf; 477 478 out[i].X11_sh_psf = in[i].X11_sh_psf; 479 out[i].X12_sh_psf = in[i].X12_sh_psf; 480 out[i].X22_sh_psf = in[i].X22_sh_psf; 481 out[i].E1_sh_psf = in[i].E1_sh_psf; 482 out[i].E2_sh_psf = in[i].E2_sh_psf; 483 484 out[i].E1_psf = in[i].E1_psf; 485 out[i].E2_psf = in[i].E2_psf; 486 487 out[i].F_ApR5 = in[i].F_ApR5; 488 out[i].dF_ApR5 = in[i].dF_ApR5; 489 out[i].sF_ApR5 = in[i].sF_ApR5; 490 out[i].fF_ApR5 = in[i].fF_ApR5; 491 492 out[i].F_ApR6 = in[i].F_ApR6; 493 out[i].dF_ApR6 = in[i].dF_ApR6; 494 out[i].sF_ApR6 = in[i].sF_ApR6; 495 out[i].fF_ApR6 = in[i].fF_ApR6; 496 497 out[i].detID = in[i].detID; 498 out[i].objID = in[i].objID; 499 out[i].catID = in[i].catID; 500 out[i].averef = in[i].averef; 501 502 out[i].imageID = in[i].imageID; 503 } 504 return (out); 505 } 506 507 Lensing_PS1_V5_R2 *LensingInternalTo_PS1_V5_R2 (Lensing *in, off_t Nvalues) { 508 509 off_t i; 510 Lensing_PS1_V5_R2 *out; 511 512 ALLOCATE_ZERO (out, Lensing_PS1_V5, Nvalues); 513 514 for (i = 0; i < Nvalues; i++) { 515 516 out[i].X11_sm_obj = in[i].X11_sm_obj; 517 out[i].X12_sm_obj = in[i].X12_sm_obj; 518 out[i].X22_sm_obj = in[i].X22_sm_obj; 519 out[i].E1_sm_obj = in[i].E1_sm_obj; 520 out[i].E2_sm_obj = in[i].E2_sm_obj; 521 522 out[i].X11_sh_obj = in[i].X11_sh_obj; 523 out[i].X12_sh_obj = in[i].X12_sh_obj; 524 out[i].X22_sh_obj = in[i].X22_sh_obj; 525 out[i].E1_sh_obj = in[i].E1_sh_obj; 526 out[i].E2_sh_obj = in[i].E2_sh_obj; 527 528 out[i].X11_sm_psf = in[i].X11_sm_psf; 529 out[i].X12_sm_psf = in[i].X12_sm_psf; 530 out[i].X22_sm_psf = in[i].X22_sm_psf; 531 out[i].E1_sm_psf = in[i].E1_sm_psf; 532 out[i].E2_sm_psf = in[i].E2_sm_psf; 533 534 out[i].X11_sh_psf = in[i].X11_sh_psf; 535 out[i].X12_sh_psf = in[i].X12_sh_psf; 536 out[i].X22_sh_psf = in[i].X22_sh_psf; 537 out[i].E1_sh_psf = in[i].E1_sh_psf; 538 out[i].E2_sh_psf = in[i].E2_sh_psf; 539 540 out[i].E1_psf = in[i].E1_psf; 541 out[i].E2_psf = in[i].E2_psf; 542 543 out[i].F_ApR5 = in[i].F_ApR5; 544 out[i].dF_ApR5 = in[i].dF_ApR5; 545 out[i].sF_ApR5 = in[i].sF_ApR5; 546 out[i].fF_ApR5 = in[i].fF_ApR5; 547 548 out[i].F_ApR6 = in[i].F_ApR6; 549 out[i].dF_ApR6 = in[i].dF_ApR6; 550 out[i].sF_ApR6 = in[i].sF_ApR6; 551 out[i].fF_ApR6 = in[i].fF_ApR6; 552 553 out[i].detID = in[i].detID; 554 out[i].objID = in[i].objID; 555 out[i].catID = in[i].catID; 556 out[i].averef = in[i].averef; 557 558 out[i].imageID = in[i].imageID; 559 } 560 return (out); 561 } 562 563 Lensobj *Lensobj_PS1_V5_ToInternal (Lensobj_PS1_V5 *in, off_t Nvalues) { 564 565 off_t i; 566 Lensobj *out; 567 568 ALLOCATE_ZERO (out, Lensobj, Nvalues); 569 570 for (i = 0; i < Nvalues; i++) { 571 dvo_lensobj_init (&out[i], FALSE); 572 573 out[i].X11_sm_obj = in[i].X11_sm_obj; 574 out[i].X12_sm_obj = in[i].X12_sm_obj; 575 out[i].X22_sm_obj = in[i].X22_sm_obj; 576 out[i].E1_sm_obj = in[i].E1_sm_obj; 577 out[i].E2_sm_obj = in[i].E2_sm_obj; 578 579 out[i].X11_sh_obj = in[i].X11_sh_obj; 580 out[i].X12_sh_obj = in[i].X12_sh_obj; 581 out[i].X22_sh_obj = in[i].X22_sh_obj; 582 out[i].E1_sh_obj = in[i].E1_sh_obj; 583 out[i].E2_sh_obj = in[i].E2_sh_obj; 584 585 out[i].X11_sm_psf = in[i].X11_sm_psf; 586 out[i].X12_sm_psf = in[i].X12_sm_psf; 587 out[i].X22_sm_psf = in[i].X22_sm_psf; 588 out[i].E1_sm_psf = in[i].E1_sm_psf; 589 out[i].E2_sm_psf = in[i].E2_sm_psf; 590 591 out[i].X11_sh_psf = in[i].X11_sh_psf; 592 out[i].X12_sh_psf = in[i].X12_sh_psf; 593 out[i].X22_sh_psf = in[i].X22_sh_psf; 594 out[i].E1_sh_psf = in[i].E1_sh_psf; 595 out[i].E2_sh_psf = in[i].E2_sh_psf; 596 597 out[i].F_ApR5 = in[i].F_ApR5; 598 out[i].dF_ApR5 = in[i].dF_ApR5; 599 out[i].sF_ApR5 = in[i].sF_ApR5; 600 out[i].fF_ApR5 = in[i].fF_ApR5; 601 602 out[i].F_ApR6 = in[i].F_ApR6; 603 out[i].dF_ApR6 = in[i].dF_ApR6; 604 out[i].sF_ApR6 = in[i].sF_ApR6; 605 out[i].fF_ApR6 = in[i].fF_ApR6; 606 607 out[i].gamma = in[i].gamma; 608 out[i].E1 = in[i].E1; 609 out[i].E2 = in[i].E2; 610 611 out[i].objID = in[i].objID; 612 out[i].catID = in[i].catID; 613 614 out[i].photcode = in[i].photcode; 615 out[i].Nmeas = in[i].Nmeas; 616 } 617 return (out); 618 } 619 620 Lensobj_PS1_V5 *LensobjInternalTo_PS1_V5 (Lensobj *in, off_t Nvalues) { 621 622 off_t i; 623 Lensobj_PS1_V5 *out; 624 625 ALLOCATE_ZERO (out, Lensobj_PS1_V5, Nvalues); 626 627 for (i = 0; i < Nvalues; i++) { 628 629 out[i].X11_sm_obj = in[i].X11_sm_obj; 630 out[i].X12_sm_obj = in[i].X12_sm_obj; 631 out[i].X22_sm_obj = in[i].X22_sm_obj; 632 out[i].E1_sm_obj = in[i].E1_sm_obj; 633 out[i].E2_sm_obj = in[i].E2_sm_obj; 634 635 out[i].X11_sh_obj = in[i].X11_sh_obj; 636 out[i].X12_sh_obj = in[i].X12_sh_obj; 637 out[i].X22_sh_obj = in[i].X22_sh_obj; 638 out[i].E1_sh_obj = in[i].E1_sh_obj; 639 out[i].E2_sh_obj = in[i].E2_sh_obj; 640 641 out[i].X11_sm_psf = in[i].X11_sm_psf; 642 out[i].X12_sm_psf = in[i].X12_sm_psf; 643 out[i].X22_sm_psf = in[i].X22_sm_psf; 644 out[i].E1_sm_psf = in[i].E1_sm_psf; 645 out[i].E2_sm_psf = in[i].E2_sm_psf; 646 647 out[i].X11_sh_psf = in[i].X11_sh_psf; 648 out[i].X12_sh_psf = in[i].X12_sh_psf; 649 out[i].X22_sh_psf = in[i].X22_sh_psf; 650 out[i].E1_sh_psf = in[i].E1_sh_psf; 651 out[i].E2_sh_psf = in[i].E2_sh_psf; 652 653 out[i].F_ApR5 = in[i].F_ApR5; 654 out[i].dF_ApR5 = in[i].dF_ApR5; 655 out[i].sF_ApR5 = in[i].sF_ApR5; 656 out[i].fF_ApR5 = in[i].fF_ApR5; 657 658 out[i].F_ApR6 = in[i].F_ApR6; 659 out[i].dF_ApR6 = in[i].dF_ApR6; 660 out[i].sF_ApR6 = in[i].sF_ApR6; 661 out[i].fF_ApR6 = in[i].fF_ApR6; 662 663 out[i].gamma = in[i].gamma; 664 out[i].E1 = in[i].E1; 665 out[i].E2 = in[i].E2; 666 667 out[i].objID = in[i].objID; 668 out[i].catID = in[i].catID; 669 670 out[i].photcode = in[i].photcode; 671 out[i].Nmeas = in[i].Nmeas; 672 } 673 return (out); 674 } 675 676 StarPar *StarPar_PS1_V5_ToInternal (StarPar_PS1_V5 *in, off_t Nvalues) { 677 678 off_t i; 679 StarPar *out; 680 681 ALLOCATE_ZERO (out, StarPar, Nvalues); 682 683 for (i = 0; i < Nvalues; i++) { 684 dvo_starpar_init (&out[i]); 685 686 out[i].R = in[i].R; 687 out[i].D = in[i].D; 688 out[i].galLat = in[i].galLat; 689 out[i].galLon = in[i].galLon; 690 691 out[i].Ebv = in[i].Ebv ; 692 out[i].dEbv = in[i].dEbv ; 693 out[i].DistMag = in[i].DistMag ; 694 out[i].dDistMag = in[i].dDistMag; 695 out[i].M_r = in[i].M_r ; 696 out[i].dM_r = in[i].dM_r ; 697 out[i].FeH = in[i].FeH ; 698 out[i].dFeH = in[i].dFeH ; 699 out[i].uRA = in[i].uRA ; 700 out[i].uDEC = in[i].uDEC ; 701 702 out[i].averef = in[i].averef; 703 out[i].objID = in[i].objID ; 704 out[i].catID = in[i].catID ; 705 } 706 return (out); 707 } 708 709 StarPar_PS1_V5 *StarParInternalTo_PS1_V5 (StarPar *in, off_t Nvalues) { 710 711 off_t i; 712 StarPar_PS1_V5 *out; 713 714 ALLOCATE_ZERO (out, StarPar_PS1_V5, Nvalues); 715 716 for (i = 0; i < Nvalues; i++) { 717 718 out[i].R = in[i].R; 719 out[i].D = in[i].D; 720 out[i].galLat = in[i].galLat; 721 out[i].galLon = in[i].galLon; 722 723 out[i].Ebv = in[i].Ebv ; 724 out[i].dEbv = in[i].dEbv ; 725 out[i].DistMag = in[i].DistMag ; 726 out[i].dDistMag = in[i].dDistMag; 727 out[i].M_r = in[i].M_r ; 728 out[i].dM_r = in[i].dM_r ; 729 out[i].FeH = in[i].FeH ; 730 out[i].dFeH = in[i].dFeH ; 731 out[i].uRA = in[i].uRA ; 732 out[i].uDEC = in[i].uDEC ; 733 734 out[i].averef = in[i].averef; 735 out[i].objID = in[i].objID ; 736 out[i].catID = in[i].catID ; 737 } 738 return (out); 739 } 740 741 # define RAW_IMAGE_NAME_LEN 117 742 743 Image *Image_PS1_V5_ToInternal (Image_PS1_V5 *in, off_t Nvalues, off_t Nalloc) { 744 745 off_t i; 746 Image *out; 747 748 char *buffer; 749 ALLOCATE_ZERO (buffer, char, Nalloc); 750 out = (Image *) buffer; 751 // ALLOCATE_ZERO (out, Image, Nvalues); 752 753 for (i = 0; i < Nvalues; i++) { 754 // this is only safe because the initial 120 bytes in Coords match CoordsDisk 755 memcpy (&out[i].coords, &in[i].coords, sizeof(CoordsDisk)); 756 out[i].coords.mosaic = NULL; 757 out[i].coords.offsetMap = NULL; 758 759 // RAW_IMAGE_NAME_LEN == DVO_IMAGE_NAME_LEN 760 strncpy (out[i].name, in[i].name, RAW_IMAGE_NAME_LEN - 1); 761 out[i].name[RAW_IMAGE_NAME_LEN - 1] = 0; // force termination 762 763 out[i].tzero = in[i].tzero; 764 out[i].nstar = in[i].nstar; 765 out[i].secz = in[i].secz; 766 out[i].NX = in[i].NX; 767 out[i].NY = in[i].NY; 768 out[i].apmifit = in[i].apmifit; 769 out[i].dapmifit = in[i].dapmifit; 770 out[i].Mcal = in[i].Mcal; 771 out[i].dMcal = in[i].dMcal; 772 out[i].Xm = in[i].Xm; 773 out[i].photcode = in[i].photcode; 774 out[i].exptime = in[i].exptime; 775 out[i].sidtime = in[i].sidtime; 776 out[i].latitude = in[i].latitude; 777 778 out[i].RAo = in[i].RAo; 779 out[i].DECo = in[i].DECo; 780 out[i].Radius = in[i].Radius; 781 out[i].refColorBlue = in[i].refColorBlue; 782 out[i].refColorRed = in[i].refColorRed; 783 784 out[i].detection_limit = in[i].detection_limit; 785 out[i].saturation_limit = in[i].saturation_limit; 786 out[i].cerror = in[i].cerror; 787 out[i].fwhm_x = in[i].fwhm_x; 788 out[i].fwhm_y = in[i].fwhm_y; 789 out[i].trate = in[i].trate; 790 out[i].ccdnum = in[i].ccdnum; 791 out[i].flags = in[i].flags; 792 out[i].imageID = in[i].imageID; 793 out[i].parentID = in[i].parentID; 794 out[i].externID = in[i].externID; 795 out[i].sourceID = in[i].sourceID; 796 797 // as of 2011.02.03, the old Mx,My,..., Mxxxx,Myyyy have been deprecated and replaced 798 // with the following. (no real databases used those values -- see 799 // libdvo/doc/dvo-images.txt) 800 out[i].nLinkAstrom = in[i].nLinkAstrom; 801 out[i].nLinkPhotom = in[i].nLinkPhotom; 802 out[i].ubercalDist = in[i].ubercalDist; 803 out[i].dXpixSys = in[i].dXpixSys; 804 out[i].dYpixSys = in[i].dYpixSys; 805 out[i].dMagSys = in[i].dMagSys; 806 out[i].nFitAstrom = in[i].nFitAstrom; 807 out[i].nFitPhotom = in[i].nFitPhotom; 808 out[i].photom_map_id = in[i].photom_map_id; 809 out[i].astrom_map_id = in[i].astrom_map_id; 810 } 811 return (out); 812 } 813 814 Image_PS1_V5 *ImageInternalTo_PS1_V5 (Image *in, off_t Nvalues) { 815 816 off_t i; 817 Image_PS1_V5 *out; 818 819 ALLOCATE_ZERO (out, Image_PS1_V5, Nvalues); 820 821 for (i = 0; i < Nvalues; i++) { 822 // this is only save because the initial 120 bytes in Coords match CoordsDisk 823 memcpy (&out[i].coords, &in[i].coords, sizeof(CoordsDisk)); 824 825 // RAW_IMAGE_NAME_LEN == DVO_IMAGE_NAME_LEN 826 strncpy (out[i].name, in[i].name, RAW_IMAGE_NAME_LEN - 1); 827 out[i].name[RAW_IMAGE_NAME_LEN - 1] = 0; // force termination 828 829 out[i].tzero = in[i].tzero; 830 out[i].nstar = in[i].nstar; 831 out[i].secz = in[i].secz; 832 out[i].NX = in[i].NX; 833 out[i].NY = in[i].NY; 834 out[i].apmifit = in[i].apmifit; 835 out[i].dapmifit = in[i].dapmifit; 836 out[i].Mcal = in[i].Mcal; 837 out[i].dMcal = in[i].dMcal; 838 out[i].Xm = in[i].Xm; 839 out[i].photcode = in[i].photcode; 840 out[i].exptime = in[i].exptime; 841 out[i].sidtime = in[i].sidtime; 842 out[i].latitude = in[i].latitude; 843 844 out[i].RAo = in[i].RAo; 845 out[i].DECo = in[i].DECo; 846 out[i].Radius = in[i].Radius; 847 out[i].refColorBlue = in[i].refColorBlue; 848 out[i].refColorRed = in[i].refColorRed; 849 850 out[i].detection_limit = in[i].detection_limit; 851 out[i].saturation_limit = in[i].saturation_limit; 852 out[i].cerror = in[i].cerror; 853 out[i].fwhm_x = in[i].fwhm_x; 854 out[i].fwhm_y = in[i].fwhm_y; 855 out[i].trate = in[i].trate; 856 out[i].ccdnum = in[i].ccdnum; 857 out[i].flags = in[i].flags; 858 out[i].imageID = in[i].imageID; 859 out[i].parentID = in[i].parentID; 860 out[i].externID = in[i].externID; 861 out[i].sourceID = in[i].sourceID; 862 863 // as of 2011.02.03, the old Mx,My,..., Mxxxx,Myyyy have been deprecated and replaced 864 // with the following. (no real databases used those values -- see 865 // libdvo/doc/dvo-images.txt) 866 out[i].nLinkAstrom = in[i].nLinkAstrom; 867 out[i].nLinkPhotom = in[i].nLinkPhotom; 868 out[i].ubercalDist = in[i].ubercalDist; 869 out[i].dXpixSys = in[i].dXpixSys; 870 out[i].dYpixSys = in[i].dYpixSys; 871 out[i].dMagSys = in[i].dMagSys; 872 out[i].nFitAstrom = in[i].nFitAstrom; 873 out[i].nFitPhotom = in[i].nFitPhotom; 874 out[i].photom_map_id = in[i].photom_map_id; 875 out[i].astrom_map_id = in[i].astrom_map_id; 876 } 877 return (out); 878 } 879 880 PhotCode *PhotCode_PS1_V5_To_Internal (PhotCode_PS1_V5 *in, off_t Nvalues) { 881 882 off_t i; 883 PhotCode *out; 884 885 ALLOCATE_ZERO (out, PhotCode, Nvalues); 886 887 for (i = 0; i < Nvalues; i++) { 888 strncpy (out[i].name, in[i].name, 31); // out[32], in[32] 889 out[i].name[31] = 0; // force termination 890 891 out[i].code = in[i].code; 892 out[i].type = in[i].type; 893 out[i].C = in[i].C; 894 out[i].dC = in[i].dC; 895 out[i].dX = in[i].dX; 896 out[i].K = in[i].K; 897 out[i].c1 = in[i].c1; 898 out[i].c2 = in[i].c2; 899 out[i].equiv = in[i].equiv; 900 out[i].Nc = in[i].Nc; 901 memcpy (out[i].X, in[i].X, 4*sizeof(float)); 902 903 out[i].astromErrSys = in[i].astromErrSys; 904 out[i].astromErrScale = in[i].astromErrScale; 905 out[i].astromErrMagScale = in[i].astromErrMagScale; 906 out[i].photomErrSys = in[i].photomErrSys; 907 908 out[i].photomPoorMask = in[i].photomPoorMask; 909 out[i].photomBadMask = in[i].photomBadMask; 910 out[i].astromPoorMask = in[i].astromPoorMask; 911 out[i].astromBadMask = in[i].astromBadMask; 912 } 913 return (out); 914 } 915 916 PhotCode_PS1_V5 *PhotCode_Internal_To_PS1_V5 (PhotCode *in, off_t Nvalues) { 917 918 off_t i; 919 PhotCode_PS1_V5 *out; 920 921 ALLOCATE_ZERO (out, PhotCode_PS1_V5, Nvalues); 922 923 for (i = 0; i < Nvalues; i++) { 924 strncpy (out[i].name, in[i].name, 31); // out[32], in[32] 925 out[i].name[31] = 0; // force termination 926 927 out[i].code = in[i].code; 928 out[i].type = in[i].type; 929 out[i].C = in[i].C; 930 out[i].dC = in[i].dC; 931 out[i].dX = in[i].dX; 932 out[i].K = in[i].K; 933 out[i].c1 = in[i].c1; 934 out[i].c2 = in[i].c2; 935 out[i].equiv = in[i].equiv; 936 out[i].Nc = in[i].Nc; 937 memcpy (out[i].X, in[i].X, 4*sizeof(float)); 938 939 out[i].astromErrSys = in[i].astromErrSys; 940 out[i].astromErrScale = in[i].astromErrScale; 941 out[i].astromErrMagScale = in[i].astromErrMagScale; 942 out[i].photomErrSys = in[i].photomErrSys; 943 944 out[i].photomPoorMask = in[i].photomPoorMask; 945 out[i].photomBadMask = in[i].photomBadMask; 946 out[i].astromPoorMask = in[i].astromPoorMask; 947 out[i].astromBadMask = in[i].astromBadMask; 948 } 949 return (out); 950 } 951 952 /*********************** old / alternate version **********************/ 953 954 // 'primary' is needed to conform with the API for Loneos and Elixir, but is not used 955 Average *Average_PS1_V5alt_ToInternal (Average_PS1_V5alt *in, off_t Nvalues) { 956 957 off_t i; 958 Average *out; 959 960 ALLOCATE_ZERO (out, Average, Nvalues); 961 962 for (i = 0; i < Nvalues; i++) { 963 dvo_average_init (&out[i]); 964 965 out[i].R = in[i].R; 966 out[i].D = in[i].D; 967 out[i].dR = in[i].dR; 968 out[i].dD = in[i].dD; 969 out[i].uR = in[i].uR; 970 out[i].uD = in[i].uD; 971 out[i].duR = in[i].duR; 972 out[i].duD = in[i].duD; 973 out[i].P = in[i].P; 974 out[i].dP = in[i].dP; 975 976 out[i].Rstk = in[i].Rstk; 977 out[i].Dstk = in[i].Dstk; 978 out[i].dRstk = in[i].dRstk; 979 out[i].dDstk = in[i].dDstk; 980 981 out[i].ChiSqAve = in[i].ChiSqAve; 982 out[i].ChiSqPM = in[i].ChiSqPM; 983 out[i].ChiSqPar = in[i].ChiSqPar; 984 out[i].Tmean = in[i].Tmean; 985 out[i].Trange = in[i].Trange; 986 987 out[i].psfQF = in[i].psfQF; 988 out[i].psfQFperf = in[i].psfQFperf; 989 out[i].stargal = in[i].stargal; 990 out[i].Npos = in[i].Npos; 991 992 out[i].Nmeasure = in[i].Nmeasure; 993 out[i].Nmissing = in[i].Nmissing; 994 out[i].Nlensing = in[i].Nlensing; 995 out[i].Nlensobj = in[i].Nlensobj; 996 out[i].Nextend = in[i].Nextend; 997 998 out[i].measureOffset = in[i].measureOffset; 999 out[i].missingOffset = in[i].missingOffset; 1000 out[i].lensingOffset = in[i].lensingOffset; 1001 out[i].lensobjOffset = in[i].lensobjOffset; 1002 out[i].starparOffset = in[i].starparOffset; 1003 out[i].extendOffset = in[i].extendOffset; 1004 1005 out[i].refColorBlue = in[i].refColorBlue; 1006 out[i].refColorRed = in[i].refColorRed; 1007 1008 out[i].flags = in[i].flags; 1009 out[i].photFlagsUpper = in[i].photFlagsUpper; 1010 out[i].photFlagsLower = in[i].photFlagsLower; 1011 out[i].objID = in[i].objID; 1012 out[i].catID = in[i].catID; 1013 out[i].extID = in[i].extID; 1014 out[i].extIDgc = in[i].extIDgc; 1015 } 1016 return (out); 1017 } 1018 1019 int gfits_convert_Average_PS1_V5alt (Average_PS1_V5alt *data, off_t size, off_t nitems) { 1020 1021 off_t i; 1022 unsigned char *byte, tmp; 1023 1024 if (size != 184) { 1025 fprintf (stderr, "WARNING: mismatch in data types Average_PS1_V5alt: "OFF_T_FMT" vs %d\n", size, 184); 1026 return (FALSE); 1027 } 1028 1029 /* provide initial values to avoid compiler warnings for non-BYTE_SWAP arch */ 1030 i = tmp = 0; 1031 byte = NULL; 1032 1033 # ifdef BYTE_SWAP 1034 byte = (unsigned char *) data; 1035 for (i = 0; i < nitems; i++, byte += 184) { 1036 /** BYTE SWAP **/ 1037 SWAP_DBLE (0); // RA 1038 SWAP_DBLE (8); // DEC 1039 SWAP_WORD (16); // RA_ERR 1040 SWAP_WORD (20); // DEC_ERR 1041 SWAP_WORD (24); // U_RA 1042 SWAP_WORD (28); // U_DEC 1043 SWAP_WORD (32); // V_RA_ERR 1044 SWAP_WORD (36); // V_DEC_ERR 1045 SWAP_WORD (40); // PAR 1046 SWAP_WORD (44); // PAR_ERR 1047 SWAP_DBLE (48); // RA_STK 1048 SWAP_DBLE (56); // DEC_STK 1049 SWAP_WORD (64); // RA_STK_ERR 1050 SWAP_WORD (68); // DEC_STK_ERR 1051 SWAP_WORD (72); // CHISQ_POS 1052 SWAP_WORD (76); // CHISQ_PM 1053 SWAP_WORD (80); // CHISQ_PAP 1054 SWAP_WORD (84); // MEAN_EPOCH 1055 SWAP_WORD (88); // TIME_RANGE 1056 SWAP_WORD (92); // PSF_QF 1057 SWAP_WORD (96); // PSF_QF_PERF 1058 SWAP_WORD (100); // STARGAL_SEP 1059 SWAP_BYTE (104); // NUMBER_POS 1060 SWAP_BYTE (106); // NMEASURE 1061 SWAP_BYTE (108); // NMISSING 1062 SWAP_BYTE (110); // NLENSING 1063 SWAP_BYTE (112); // NLENSOBJ 1064 SWAP_BYTE (114); // NEXTEND 1065 SWAP_WORD (116); // OFF_MEASURE 1066 SWAP_WORD (120); // OFF_MISSING 1067 SWAP_WORD (124); // OFF_LENSING 1068 SWAP_WORD (128); // OFF_LENSOBJ 1069 SWAP_WORD (132); // OFF_EXTEND 1070 SWAP_WORD (136); // OFF_PARAMS 1071 SWAP_WORD (140); // REF_COLOR_BLUE 1072 SWAP_WORD (144); // REF_COLOR_RED 1073 SWAP_WORD (148); // FLAGS 1074 SWAP_WORD (152); // PHOTFLAGS_U 1075 SWAP_WORD (156); // PHOTFLAGS_L 1076 SWAP_WORD (160); // OBJ_ID 1077 SWAP_WORD (164); // CAT_ID 1078 SWAP_DBLE (168); // EXT_ID 1079 SWAP_DBLE (176); // EXT_ID_GC 1080 } 1081 # endif 1082 1083 return (TRUE); 1084 } 1085 1086 /*** add test of EXTNAME and header-defined columns? ***/ 1087 /* return internal structure representation */ 1088 Average_PS1_V5alt *gfits_table_get_Average_PS1_V5alt (FTable *ftable, off_t *Ndata, char *swapped) { 1089 1090 int Ncols; 1091 Average_PS1_V5alt *data; 1092 1093 Ncols = ftable[0].header[0].Naxis[0]; 1094 if (Ncols != 184) { 1095 fprintf (stderr, "ERROR: mis-match in table size: width is %d but should be %d bytes\n", Ncols, 184); 1096 return NULL; 1097 } 1098 1099 *Ndata = ftable[0].header[0].Naxis[1]; 1100 data = (Average_PS1_V5alt *) ftable[0].buffer; 1101 if ((swapped == NULL) || (*swapped == FALSE)) { 1102 if (!gfits_convert_Average_PS1_V5alt (data, sizeof (Average_PS1_V5alt), *Ndata)) { 1103 return NULL; 1104 } 1105 gfits_table_scale_data (ftable); 1106 if (swapped != NULL) *swapped = TRUE; 1107 } 1108 return (data); 1109 } 1110 1111 /****** alt secfilt **********/ 1112 1113 SecFilt *SecFilt_PS1_V5alt_ToInternal (SecFilt_PS1_V5alt *in, off_t Nvalues) { 1114 1115 off_t i; 1116 SecFilt *out; 1117 1118 ALLOCATE_ZERO (out, SecFilt, Nvalues); 1119 1120 for (i = 0; i < Nvalues; i++) { 1121 dvo_secfilt_init (&out[i]); 1122 1123 out[i].M = in[i].M; 1124 out[i].dM = in[i].dM; 1125 out[i].Map = in[i].Map; 1126 out[i].dMap = in[i].dMap; 1127 out[i].sMap = in[i].sMap; 1128 out[i].Mkron = in[i].Mkron; 1129 out[i].dMkron = in[i].dMkron; 1130 1131 out[i].Mstdev = in[i].Mstdev; 1132 out[i].Mmin = in[i].Mmin; 1133 out[i].Mmax = in[i].Mmax; 1134 out[i].Mchisq = in[i].Mchisq; 1135 1136 out[i].Ncode = in[i].Ncode; 1137 out[i].Nused = in[i].Nused; 1138 out[i].NusedKron = in[i].NusedKron; 1139 out[i].NusedAp = in[i].NusedAp; 1140 1141 out[i].flags = in[i].flags; 1142 1143 out[i].MpsfStk = in[i].MpsfStk; 1144 out[i].FpsfStk = in[i].FpsfStk; 1145 out[i].dFpsfStk = in[i].dFpsfStk; 1146 1147 out[i].MkronStk = in[i].MkronStk; 1148 out[i].FkronStk = in[i].FkronStk; 1149 out[i].dFkronStk = in[i].dFkronStk; 1150 1151 out[i].MapStk = in[i].MapStk; 1152 out[i].FapStk = in[i].FapStk; 1153 out[i].dFapStk = in[i].dFapStk; 1154 1155 out[i].stackPrmryOff = in[i].stackPrmryOff; 1156 out[i].stackBestOff = in[i].stackBestOff; 1157 1158 out[i].MpsfWrp = in[i].MpsfWrp; 1159 out[i].FpsfWrp = in[i].FpsfWrp; 1160 out[i].dFpsfWrp = in[i].dFpsfWrp; 1161 out[i].sFpsfWrp = in[i].sFpsfWrp; 1162 1163 out[i].MkronWrp = in[i].MkronWrp; 1164 out[i].FkronWrp = in[i].FkronWrp; 1165 out[i].dFkronWrp = in[i].dFkronWrp; 1166 out[i].sFkronWrp = in[i].sFkronWrp; 1167 1168 out[i].MapWrp = in[i].MapWrp; 1169 out[i].FapWrp = in[i].FapWrp; 1170 out[i].dFapWrp = in[i].dFapWrp; 1171 out[i].sFapWrp = in[i].sFapWrp; 1172 1173 out[i].NusedWrp = in[i].NusedWrp; 1174 out[i].NusedKronWrp = in[i].NusedKronWrp; 1175 out[i].NusedApWrp = in[i].NusedApWrp; 1176 1177 out[i].ubercalDist = in[i].ubercalDist; 1178 } 1179 return (out); 1180 } 1181 1182 int gfits_convert_SecFilt_PS1_V5alt (SecFilt_PS1_V5alt *data, off_t size, off_t nitems) { 1183 1184 off_t i; 1185 unsigned char *byte, tmp; 1186 1187 if (size != 160) { 1188 fprintf (stderr, "WARNING: mismatch in data types SecFilt_PS1_V5alt: "OFF_T_FMT" vs %d\n", size, 160); 1189 return (FALSE); 1190 } 1191 1192 /* provide initial values to avoid compiler warnings for non-BYTE_SWAP arch */ 1193 i = tmp = 0; 1194 byte = NULL; 1195 1196 # ifdef BYTE_SWAP 1197 byte = (unsigned char *) data; 1198 for (i = 0; i < nitems; i++, byte += 160) { 1199 /** BYTE SWAP **/ 1200 SWAP_WORD (0); // MAG 1201 SWAP_WORD (4); // MAG_ERR 1202 SWAP_WORD (8); // MAG_AP 1203 SWAP_WORD (12); // MAG_AP_ERR 1204 SWAP_WORD (16); // MAG_AP_STDEV 1205 SWAP_WORD (20); // MAG_KRON 1206 SWAP_WORD (24); // MAG_KRON_ERR 1207 SWAP_WORD (28); // MAG_KRON_STDEV 1208 SWAP_WORD (32); // MAG_STDEV 1209 SWAP_WORD (36); // MAG_MIN 1210 SWAP_WORD (40); // MAG_MAX 1211 SWAP_WORD (44); // MAG_CHI 1212 SWAP_BYTE (48); // NCODE 1213 SWAP_BYTE (50); // NUSED 1214 SWAP_BYTE (52); // NUSED_KRON 1215 SWAP_BYTE (54); // NUSED_AP 1216 SWAP_WORD (56); // FLAGS 1217 SWAP_WORD (60); // MAG_PSF_STK 1218 SWAP_WORD (64); // FLUX_PSF_STK 1219 SWAP_WORD (68); // FLUX_PSF_STK_ERR 1220 SWAP_WORD (72); // MAG_KRON_STK 1221 SWAP_WORD (76); // FLUX_KRON_STK 1222 SWAP_WORD (80); // FLUX_KRON_STK_ERR 1223 SWAP_WORD (84); // MAG_AP_STK 1224 SWAP_WORD (88); // FLUX_AP_STK 1225 SWAP_WORD (92); // FLUX_AP_STK_ERR 1226 SWAP_WORD (96); // STACK_PRIMARY_OFF 1227 SWAP_WORD (100); // STACK_BEST_OFF 1228 SWAP_WORD (104); // MAG_PSF_WRP 1229 SWAP_WORD (108); // FLUX_PSF_WRP 1230 SWAP_WORD (112); // FLUX_PSF_WRP_ERR 1231 SWAP_WORD (116); // FLUX_PSF_WRP_STD 1232 SWAP_WORD (120); // MAG_KRON_WRP 1233 SWAP_WORD (124); // FLUX_KRON_WRP 1234 SWAP_WORD (128); // FLUX_KRON_WRP_ERR 1235 SWAP_WORD (132); // FLUX_KRON_WRP_STD 1236 SWAP_WORD (136); // MAG_AP_WRP 1237 SWAP_WORD (140); // FLUX_AP_WRP 1238 SWAP_WORD (144); // FLUX_AP_WRP_ERR 1239 SWAP_WORD (148); // FLUX_AP_WRP_STD 1240 SWAP_BYTE (152); // NUSED_WRP 1241 SWAP_BYTE (154); // NUSED_KRON_WRP 1242 SWAP_BYTE (156); // NUSED_AP_WRP 1243 SWAP_BYTE (158); // UBERCAL_DIST 1244 } 1245 # endif 1246 1247 return (TRUE); 1248 } 1249 1250 /*** add test of EXTNAME and header-defined columns? ***/ 1251 /* return internal structure representation */ 1252 SecFilt_PS1_V5alt *gfits_table_get_SecFilt_PS1_V5alt (FTable *ftable, off_t *Ndata, char *swapped) { 1253 1254 int Ncols; 1255 SecFilt_PS1_V5alt *data; 1256 1257 Ncols = ftable[0].header[0].Naxis[0]; 1258 if (Ncols != 160) { 1259 fprintf (stderr, "ERROR: mis-match in table size: width is %d but should be %d bytes\n", Ncols, 160); 1260 return NULL; 1261 } 1262 1263 *Ndata = ftable[0].header[0].Naxis[1]; 1264 data = (SecFilt_PS1_V5alt *) ftable[0].buffer; 1265 if ((swapped == NULL) || (*swapped == FALSE)) { 1266 if (!gfits_convert_SecFilt_PS1_V5alt (data, sizeof (SecFilt_PS1_V5alt), *Ndata)) { 1267 return NULL; 1268 } 1269 gfits_table_scale_data (ftable); 1270 if (swapped != NULL) *swapped = TRUE; 1271 } 1272 return (data); 1273 } 1274 1275 Lensing *Lensing_PS1_V5_R0_ToInternal (Lensing_PS1_V5_R0 *in, off_t Nvalues) { 1276 1277 off_t i; 1278 Lensing *out; 1279 1280 ALLOCATE_ZERO (out, Lensing, Nvalues); 1281 1282 for (i = 0; i < Nvalues; i++) { 1283 dvo_lensing_init (&out[i]); 1284 1285 out[i].X11_sm_obj = in[i].X11_sm_obj; 1286 out[i].X12_sm_obj = in[i].X12_sm_obj; 1287 out[i].X22_sm_obj = in[i].X22_sm_obj; 1288 out[i].E1_sm_obj = in[i].E1_sm_obj; 1289 out[i].E2_sm_obj = in[i].E2_sm_obj; 1290 1291 out[i].X11_sh_obj = in[i].X11_sh_obj; 1292 out[i].X12_sh_obj = in[i].X12_sh_obj; 1293 out[i].X22_sh_obj = in[i].X22_sh_obj; 1294 out[i].E1_sh_obj = in[i].E1_sh_obj; 1295 out[i].E2_sh_obj = in[i].E2_sh_obj; 1296 1297 out[i].X11_sm_psf = in[i].X11_sm_psf; 1298 out[i].X12_sm_psf = in[i].X12_sm_psf; 1299 out[i].X22_sm_psf = in[i].X22_sm_psf; 1300 out[i].E1_sm_psf = in[i].E1_sm_psf; 1301 out[i].E2_sm_psf = in[i].E2_sm_psf; 1302 1303 out[i].X11_sh_psf = in[i].X11_sh_psf; 1304 out[i].X12_sh_psf = in[i].X12_sh_psf; 1305 out[i].X22_sh_psf = in[i].X22_sh_psf; 1306 out[i].E1_sh_psf = in[i].E1_sh_psf; 1307 out[i].E2_sh_psf = in[i].E2_sh_psf; 1308 1309 out[i].F_ApR5 = in[i].F_ApR5; 1310 out[i].dF_ApR5 = in[i].dF_ApR5; 1311 out[i].sF_ApR5 = in[i].sF_ApR5; 1312 out[i].fF_ApR5 = in[i].fF_ApR5; 1313 1314 out[i].F_ApR6 = in[i].F_ApR6; 1315 out[i].dF_ApR6 = in[i].dF_ApR6; 1316 out[i].sF_ApR6 = in[i].sF_ApR6; 1317 out[i].fF_ApR6 = in[i].fF_ApR6; 1318 1319 out[i].detID = in[i].detID; 1320 out[i].objID = in[i].objID; 1321 out[i].catID = in[i].catID; 1322 out[i].averef = in[i].averef; 1323 } 1324 return (out); 1325 } 1326 1327 Lensing *Lensing_PS1_V5_R1_ToInternal (Lensing_PS1_V5_R1 *in, off_t Nvalues) { 1328 1329 off_t i; 1330 Lensing *out; 1331 1332 ALLOCATE_ZERO (out, Lensing, Nvalues); 1333 1334 for (i = 0; i < Nvalues; i++) { 1335 dvo_lensing_init (&out[i]); 1336 1337 out[i].X11_sm_obj = in[i].X11_sm_obj; 1338 out[i].X12_sm_obj = in[i].X12_sm_obj; 1339 out[i].X22_sm_obj = in[i].X22_sm_obj; 1340 out[i].E1_sm_obj = in[i].E1_sm_obj; 1341 out[i].E2_sm_obj = in[i].E2_sm_obj; 1342 1343 out[i].X11_sh_obj = in[i].X11_sh_obj; 1344 out[i].X12_sh_obj = in[i].X12_sh_obj; 1345 out[i].X22_sh_obj = in[i].X22_sh_obj; 1346 out[i].E1_sh_obj = in[i].E1_sh_obj; 1347 out[i].E2_sh_obj = in[i].E2_sh_obj; 1348 1349 out[i].X11_sm_psf = in[i].X11_sm_psf; 1350 out[i].X12_sm_psf = in[i].X12_sm_psf; 1351 out[i].X22_sm_psf = in[i].X22_sm_psf; 1352 out[i].E1_sm_psf = in[i].E1_sm_psf; 1353 out[i].E2_sm_psf = in[i].E2_sm_psf; 1354 1355 out[i].X11_sh_psf = in[i].X11_sh_psf; 1356 out[i].X12_sh_psf = in[i].X12_sh_psf; 1357 out[i].X22_sh_psf = in[i].X22_sh_psf; 1358 out[i].E1_sh_psf = in[i].E1_sh_psf; 1359 out[i].E2_sh_psf = in[i].E2_sh_psf; 1360 1361 out[i].F_ApR5 = in[i].F_ApR5; 1362 out[i].dF_ApR5 = in[i].dF_ApR5; 1363 out[i].sF_ApR5 = in[i].sF_ApR5; 1364 out[i].fF_ApR5 = in[i].fF_ApR5; 1365 1366 out[i].F_ApR6 = in[i].F_ApR6; 1367 out[i].dF_ApR6 = in[i].dF_ApR6; 1368 out[i].sF_ApR6 = in[i].sF_ApR6; 1369 out[i].fF_ApR6 = in[i].fF_ApR6; 1370 1371 out[i].detID = in[i].detID; 1372 out[i].objID = in[i].objID; 1373 out[i].catID = in[i].catID; 1374 out[i].averef = in[i].averef; 1375 1376 out[i].imageID = in[i].imageID; 1377 } 1378 return (out); 1379 } 1380 1381 /********** PS1_V5alt measure ************/ 1382 1383 Measure *Measure_PS1_V5alt_ToInternal (Average *ave, Measure_PS1_V5alt *in, off_t Nvalues) { 6 1384 7 1385 off_t i; … … 77 1455 } 78 1456 79 Measure_PS1_V5 *MeasureInternalTo_PS1_V5 (Average *ave, Measure *in, off_t Nvalues) { 80 81 off_t i; 82 Measure_PS1_V5 *out; 83 84 ALLOCATE_ZERO (out, Measure_PS1_V5, Nvalues); 85 86 for (i = 0; i < Nvalues; i++) { 87 out[i].R = in[i].R; 88 out[i].D = in[i].D; 89 out[i].M = in[i].M; 90 out[i].dM = in[i].dM; 91 out[i].Map = in[i].Map; 92 out[i].dMap = in[i].dMap; 93 out[i].Mkron = in[i].Mkron; 94 out[i].dMkron = in[i].dMkron; 95 out[i].Mcal = in[i].Mcal; 96 out[i].dMcal = in[i].dMcal; 97 out[i].dt = in[i].dt; 98 out[i].FluxPSF = in[i].FluxPSF; 99 out[i].dFluxPSF = in[i].dFluxPSF; 100 out[i].FluxKron = in[i].FluxKron; 101 out[i].dFluxKron = in[i].dFluxKron; 102 out[i].FluxAp = in[i].FluxAp; 103 out[i].dFluxAp = in[i].dFluxAp; 104 out[i].airmass = in[i].airmass; 105 out[i].az = in[i].az; 106 out[i].Xccd = in[i].Xccd; 107 out[i].Yccd = in[i].Yccd; 108 out[i].Xfix = in[i].Xfix; 109 out[i].Yfix = in[i].Yfix; 110 out[i].XoffKH = in[i].XoffKH; 111 out[i].YoffKH = in[i].YoffKH; 112 out[i].XoffDCR = in[i].XoffDCR; 113 out[i].YoffDCR = in[i].YoffDCR; 114 out[i].RoffGAL = in[i].RoffGAL; 115 out[i].DoffGAL = in[i].DoffGAL; 116 out[i].Sky = in[i].Sky; 117 out[i].dSky = in[i].dSky; 118 out[i].t = in[i].t; 119 out[i].averef = in[i].averef; 120 out[i].detID = in[i].detID; 121 out[i].objID = in[i].objID; 122 out[i].catID = in[i].catID; 123 out[i].extID = in[i].extID; 124 out[i].imageID = in[i].imageID; 125 out[i].psfQF = in[i].psfQF; 126 out[i].psfQFperf = in[i].psfQFperf; 127 out[i].psfChisq = in[i].psfChisq; 128 out[i].psfNdof = in[i].psfNdof; 129 out[i].psfNpix = in[i].psfNpix; 130 out[i].extNsigma = in[i].extNsigma; 131 out[i].FWx = in[i].FWx; 132 out[i].FWy = in[i].FWy; 133 out[i].theta = in[i].theta; 134 out[i].Mxx = in[i].Mxx; 135 out[i].Mxy = in[i].Mxy; 136 out[i].Myy = in[i].Myy; 137 out[i].t_msec = in[i].t_msec; 138 out[i].photcode = in[i].photcode; 139 out[i].dXccd = in[i].dXccd; 140 out[i].dYccd = in[i].dYccd; 141 out[i].dRsys = in[i].dRsys; 142 out[i].posangle = in[i].posangle; 143 out[i].pltscale = in[i].pltscale; 144 out[i].dbFlags = in[i].dbFlags; 145 out[i].photFlags = in[i].photFlags; 146 out[i].photFlags2 = in[i].photFlags2; 147 } 148 return (out); 149 } 150 151 // 'primary' is needed to conform with the API for Loneos and Elixir, but is not used 152 Average *Average_PS1_V5_ToInternal (Average_PS1_V5 *in, off_t Nvalues, SecFilt **primary) { 153 154 off_t i; 155 Average *out; 156 157 ALLOCATE_ZERO (out, Average, Nvalues); 158 159 for (i = 0; i < Nvalues; i++) { 160 dvo_average_init (&out[i]); 161 162 out[i].R = in[i].R; 163 out[i].D = in[i].D; 164 out[i].dR = in[i].dR; 165 out[i].dD = in[i].dD; 166 out[i].uR = in[i].uR; 167 out[i].uD = in[i].uD; 168 out[i].duR = in[i].duR; 169 out[i].duD = in[i].duD; 170 out[i].P = in[i].P; 171 out[i].dP = in[i].dP; 172 173 out[i].Rstk = in[i].Rstk; 174 out[i].Dstk = in[i].Dstk; 175 out[i].dRstk = in[i].dRstk; 176 out[i].dDstk = in[i].dDstk; 177 178 out[i].ChiSqAve = in[i].ChiSqAve; 179 out[i].ChiSqPM = in[i].ChiSqPM; 180 out[i].ChiSqPar = in[i].ChiSqPar; 181 out[i].Tmean = in[i].Tmean; 182 out[i].Trange = in[i].Trange; 183 184 out[i].psfQF = in[i].psfQF; 185 out[i].psfQFperf = in[i].psfQFperf; 186 out[i].stargal = in[i].stargal; 187 out[i].Npos = in[i].Npos; 188 189 out[i].Nmeasure = in[i].Nmeasure; 190 out[i].Nmissing = in[i].Nmissing; 191 out[i].Nlensing = in[i].Nlensing; 192 out[i].Nlensobj = in[i].Nlensobj; 193 out[i].Nstarpar = in[i].Nstarpar; 194 out[i].Nextend = in[i].Nextend; 195 196 out[i].measureOffset = in[i].measureOffset; 197 out[i].missingOffset = in[i].missingOffset; 198 out[i].lensingOffset = in[i].lensingOffset; 199 out[i].lensobjOffset = in[i].lensobjOffset; 200 out[i].starparOffset = in[i].starparOffset; 201 out[i].extendOffset = in[i].extendOffset; 202 203 out[i].refColorBlue = in[i].refColorBlue; 204 out[i].refColorRed = in[i].refColorRed; 205 206 out[i].tessID = in[i].tessID; 207 out[i].skycellID = in[i].skycellID; 208 out[i].projectionID = in[i].projectionID; 209 210 out[i].flags = in[i].flags; 211 out[i].photFlagsUpper = in[i].photFlagsUpper; 212 out[i].photFlagsLower = in[i].photFlagsLower; 213 out[i].objID = in[i].objID; 214 out[i].catID = in[i].catID; 215 out[i].extID = in[i].extID; 216 out[i].extIDgc = in[i].extIDgc; 217 } 218 return (out); 219 } 220 221 // 'primary' is needed to conform with the API for Loneos and Elixir, but is not used 222 Average_PS1_V5 *AverageInternalTo_PS1_V5 (Average *in, off_t Nvalues, SecFilt *primary) { 223 224 off_t i; 225 Average_PS1_V5 *out; 226 227 ALLOCATE_ZERO (out, Average_PS1_V5, Nvalues); 228 229 for (i = 0; i < Nvalues; i++) { 230 out[i].R = in[i].R; 231 out[i].D = in[i].D; 232 out[i].dR = in[i].dR; 233 out[i].dD = in[i].dD; 234 out[i].uR = in[i].uR; 235 out[i].uD = in[i].uD; 236 out[i].duR = in[i].duR; 237 out[i].duD = in[i].duD; 238 out[i].P = in[i].P; 239 out[i].dP = in[i].dP; 240 241 out[i].Rstk = in[i].Rstk; 242 out[i].Dstk = in[i].Dstk; 243 out[i].dRstk = in[i].dRstk; 244 out[i].dDstk = in[i].dDstk; 245 246 out[i].ChiSqAve = in[i].ChiSqAve; 247 out[i].ChiSqPM = in[i].ChiSqPM; 248 out[i].ChiSqPar = in[i].ChiSqPar; 249 out[i].Tmean = in[i].Tmean; 250 out[i].Trange = in[i].Trange; 251 252 out[i].psfQF = in[i].psfQF; 253 out[i].psfQFperf = in[i].psfQFperf; 254 out[i].stargal = in[i].stargal; 255 out[i].Npos = in[i].Npos; 256 257 out[i].Nmeasure = in[i].Nmeasure; 258 out[i].Nmissing = in[i].Nmissing; 259 out[i].Nlensing = in[i].Nlensing; 260 out[i].Nlensobj = in[i].Nlensobj; 261 out[i].Nstarpar = in[i].Nstarpar; 262 out[i].Nextend = in[i].Nextend; 263 264 out[i].measureOffset = in[i].measureOffset; 265 out[i].missingOffset = in[i].missingOffset; 266 out[i].lensingOffset = in[i].lensingOffset; 267 out[i].lensobjOffset = in[i].lensobjOffset; 268 out[i].starparOffset = in[i].starparOffset; 269 out[i].extendOffset = in[i].extendOffset; 270 271 out[i].refColorBlue = in[i].refColorBlue; 272 out[i].refColorRed = in[i].refColorRed; 273 274 out[i].tessID = in[i].tessID; 275 out[i].skycellID = in[i].skycellID; 276 out[i].projectionID = in[i].projectionID; 277 278 out[i].flags = in[i].flags; 279 out[i].photFlagsUpper = in[i].photFlagsUpper; 280 out[i].photFlagsLower = in[i].photFlagsLower; 281 out[i].objID = in[i].objID; 282 out[i].catID = in[i].catID; 283 out[i].extID = in[i].extID; 284 out[i].extIDgc = in[i].extIDgc; 285 } 286 return (out); 287 } 288 289 SecFilt *SecFilt_PS1_V5_ToInternal (SecFilt_PS1_V5 *in, off_t Nvalues) { 290 291 off_t i; 292 SecFilt *out; 293 294 ALLOCATE_ZERO (out, SecFilt, Nvalues); 295 296 for (i = 0; i < Nvalues; i++) { 297 dvo_secfilt_init (&out[i]); 298 299 out[i].M = in[i].M; 300 out[i].dM = in[i].dM; 301 out[i].Map = in[i].Map; 302 out[i].dMap = in[i].dMap; 303 out[i].sMap = in[i].sMap; 304 out[i].Mkron = in[i].Mkron; 305 out[i].dMkron = in[i].dMkron; 306 out[i].sMkron = in[i].sMkron; 307 308 out[i].psfQfMax = in[i].psfQfMax; 309 out[i].psfQfPerfMax = in[i].psfQfPerfMax; 310 311 out[i].Mstdev = in[i].Mstdev; 312 out[i].Mmin = in[i].Mmin; 313 out[i].Mmax = in[i].Mmax; 314 out[i].Mchisq = in[i].Mchisq; 315 316 out[i].Ncode = in[i].Ncode; 317 out[i].Nused = in[i].Nused; 318 out[i].NusedKron = in[i].NusedKron; 319 out[i].NusedAp = in[i].NusedAp; 320 321 out[i].flags = in[i].flags; 322 323 out[i].MpsfStk = in[i].MpsfStk; 324 out[i].FpsfStk = in[i].FpsfStk; 325 out[i].dFpsfStk = in[i].dFpsfStk; 326 327 out[i].MkronStk = in[i].MkronStk; 328 out[i].FkronStk = in[i].FkronStk; 329 out[i].dFkronStk = in[i].dFkronStk; 330 331 out[i].MapStk = in[i].MapStk; 332 out[i].FapStk = in[i].FapStk; 333 out[i].dFapStk = in[i].dFapStk; 334 335 out[i].Nstack = in[i].Nstack; 336 out[i].NstackDet = in[i].NstackDet; 337 338 out[i].stackPrmryOff = in[i].stackPrmryOff; 339 out[i].stackBestOff = in[i].stackBestOff; 340 341 out[i].MpsfWrp = in[i].MpsfWrp; 342 out[i].FpsfWrp = in[i].FpsfWrp; 343 out[i].dFpsfWrp = in[i].dFpsfWrp; 344 out[i].sFpsfWrp = in[i].sFpsfWrp; 345 346 out[i].MkronWrp = in[i].MkronWrp; 347 out[i].FkronWrp = in[i].FkronWrp; 348 out[i].dFkronWrp = in[i].dFkronWrp; 349 out[i].sFkronWrp = in[i].sFkronWrp; 350 351 out[i].MapWrp = in[i].MapWrp; 352 out[i].FapWrp = in[i].FapWrp; 353 out[i].dFapWrp = in[i].dFapWrp; 354 out[i].sFapWrp = in[i].sFapWrp; 355 356 out[i].NusedWrp = in[i].NusedWrp; 357 out[i].NusedKronWrp = in[i].NusedKronWrp; 358 out[i].NusedApWrp = in[i].NusedApWrp; 359 360 out[i].Nwarp = in[i].Nwarp; 361 out[i].NwarpGood = in[i].NwarpGood; 362 363 out[i].ubercalDist = in[i].ubercalDist; 364 } 365 return (out); 366 } 367 368 SecFilt_PS1_V5 *SecFiltInternalTo_PS1_V5 (SecFilt *in, off_t Nvalues) { 369 370 off_t i; 371 SecFilt_PS1_V5 *out; 372 373 ALLOCATE_ZERO (out, SecFilt_PS1_V5, Nvalues); 374 375 for (i = 0; i < Nvalues; i++) { 376 377 out[i].M = in[i].M; 378 out[i].dM = in[i].dM; 379 out[i].Map = in[i].Map; 380 out[i].dMap = in[i].dMap; 381 out[i].sMap = in[i].sMap; 382 out[i].Mkron = in[i].Mkron; 383 out[i].dMkron = in[i].dMkron; 384 out[i].sMkron = in[i].sMkron; 385 386 out[i].psfQfMax = in[i].psfQfMax; 387 out[i].psfQfPerfMax = in[i].psfQfPerfMax; 388 389 out[i].Mstdev = in[i].Mstdev; 390 out[i].Mmin = in[i].Mmin; 391 out[i].Mmax = in[i].Mmax; 392 out[i].Mchisq = in[i].Mchisq; 393 394 out[i].Ncode = in[i].Ncode; 395 out[i].Nused = in[i].Nused; 396 out[i].NusedKron = in[i].NusedKron; 397 out[i].NusedAp = in[i].NusedAp; 398 399 out[i].flags = in[i].flags; 400 401 out[i].MpsfStk = in[i].MpsfStk; 402 out[i].FpsfStk = in[i].FpsfStk; 403 out[i].dFpsfStk = in[i].dFpsfStk; 404 405 out[i].MkronStk = in[i].MkronStk; 406 out[i].FkronStk = in[i].FkronStk; 407 out[i].dFkronStk = in[i].dFkronStk; 408 409 out[i].MapStk = in[i].MapStk; 410 out[i].FapStk = in[i].FapStk; 411 out[i].dFapStk = in[i].dFapStk; 412 413 out[i].Nstack = in[i].Nstack; 414 out[i].NstackDet = in[i].NstackDet; 415 416 out[i].stackPrmryOff = in[i].stackPrmryOff; 417 out[i].stackBestOff = in[i].stackBestOff; 418 419 out[i].MpsfWrp = in[i].MpsfWrp; 420 out[i].FpsfWrp = in[i].FpsfWrp; 421 out[i].dFpsfWrp = in[i].dFpsfWrp; 422 out[i].sFpsfWrp = in[i].sFpsfWrp; 423 424 out[i].MkronWrp = in[i].MkronWrp; 425 out[i].FkronWrp = in[i].FkronWrp; 426 out[i].dFkronWrp = in[i].dFkronWrp; 427 out[i].sFkronWrp = in[i].sFkronWrp; 428 429 out[i].MapWrp = in[i].MapWrp; 430 out[i].FapWrp = in[i].FapWrp; 431 out[i].dFapWrp = in[i].dFapWrp; 432 out[i].sFapWrp = in[i].sFapWrp; 433 434 out[i].NusedWrp = in[i].NusedWrp; 435 out[i].NusedKronWrp = in[i].NusedKronWrp; 436 out[i].NusedApWrp = in[i].NusedApWrp; 437 438 out[i].Nwarp = in[i].Nwarp; 439 out[i].NwarpGood = in[i].NwarpGood; 440 441 out[i].ubercalDist = in[i].ubercalDist; 442 } 443 return (out); 444 } 445 446 Lensing *Lensing_PS1_V5_R2_ToInternal (Lensing_PS1_V5_R2 *in, off_t Nvalues) { 447 448 off_t i; 449 Lensing *out; 450 451 ALLOCATE_ZERO (out, Lensing, Nvalues); 452 453 for (i = 0; i < Nvalues; i++) { 454 dvo_lensing_init (&out[i]); 455 456 out[i].X11_sm_obj = in[i].X11_sm_obj; 457 out[i].X12_sm_obj = in[i].X12_sm_obj; 458 out[i].X22_sm_obj = in[i].X22_sm_obj; 459 out[i].E1_sm_obj = in[i].E1_sm_obj; 460 out[i].E2_sm_obj = in[i].E2_sm_obj; 461 462 out[i].X11_sh_obj = in[i].X11_sh_obj; 463 out[i].X12_sh_obj = in[i].X12_sh_obj; 464 out[i].X22_sh_obj = in[i].X22_sh_obj; 465 out[i].E1_sh_obj = in[i].E1_sh_obj; 466 out[i].E2_sh_obj = in[i].E2_sh_obj; 467 468 out[i].X11_sm_psf = in[i].X11_sm_psf; 469 out[i].X12_sm_psf = in[i].X12_sm_psf; 470 out[i].X22_sm_psf = in[i].X22_sm_psf; 471 out[i].E1_sm_psf = in[i].E1_sm_psf; 472 out[i].E2_sm_psf = in[i].E2_sm_psf; 473 474 out[i].X11_sh_psf = in[i].X11_sh_psf; 475 out[i].X12_sh_psf = in[i].X12_sh_psf; 476 out[i].X22_sh_psf = in[i].X22_sh_psf; 477 out[i].E1_sh_psf = in[i].E1_sh_psf; 478 out[i].E2_sh_psf = in[i].E2_sh_psf; 479 480 out[i].E1_psf = in[i].E1_psf; 481 out[i].E2_psf = in[i].E2_psf; 482 483 out[i].F_ApR5 = in[i].F_ApR5; 484 out[i].dF_ApR5 = in[i].dF_ApR5; 485 out[i].sF_ApR5 = in[i].sF_ApR5; 486 out[i].fF_ApR5 = in[i].fF_ApR5; 487 488 out[i].F_ApR6 = in[i].F_ApR6; 489 out[i].dF_ApR6 = in[i].dF_ApR6; 490 out[i].sF_ApR6 = in[i].sF_ApR6; 491 out[i].fF_ApR6 = in[i].fF_ApR6; 492 493 out[i].detID = in[i].detID; 494 out[i].objID = in[i].objID; 495 out[i].catID = in[i].catID; 496 out[i].averef = in[i].averef; 497 498 out[i].imageID = in[i].imageID; 499 } 500 return (out); 501 } 502 503 Lensing_PS1_V5_R2 *LensingInternalTo_PS1_V5_R2 (Lensing *in, off_t Nvalues) { 504 505 off_t i; 506 Lensing_PS1_V5_R2 *out; 507 508 ALLOCATE_ZERO (out, Lensing_PS1_V5, Nvalues); 509 510 for (i = 0; i < Nvalues; i++) { 511 512 out[i].X11_sm_obj = in[i].X11_sm_obj; 513 out[i].X12_sm_obj = in[i].X12_sm_obj; 514 out[i].X22_sm_obj = in[i].X22_sm_obj; 515 out[i].E1_sm_obj = in[i].E1_sm_obj; 516 out[i].E2_sm_obj = in[i].E2_sm_obj; 517 518 out[i].X11_sh_obj = in[i].X11_sh_obj; 519 out[i].X12_sh_obj = in[i].X12_sh_obj; 520 out[i].X22_sh_obj = in[i].X22_sh_obj; 521 out[i].E1_sh_obj = in[i].E1_sh_obj; 522 out[i].E2_sh_obj = in[i].E2_sh_obj; 523 524 out[i].X11_sm_psf = in[i].X11_sm_psf; 525 out[i].X12_sm_psf = in[i].X12_sm_psf; 526 out[i].X22_sm_psf = in[i].X22_sm_psf; 527 out[i].E1_sm_psf = in[i].E1_sm_psf; 528 out[i].E2_sm_psf = in[i].E2_sm_psf; 529 530 out[i].X11_sh_psf = in[i].X11_sh_psf; 531 out[i].X12_sh_psf = in[i].X12_sh_psf; 532 out[i].X22_sh_psf = in[i].X22_sh_psf; 533 out[i].E1_sh_psf = in[i].E1_sh_psf; 534 out[i].E2_sh_psf = in[i].E2_sh_psf; 535 536 out[i].E1_psf = in[i].E1_psf; 537 out[i].E2_psf = in[i].E2_psf; 538 539 out[i].F_ApR5 = in[i].F_ApR5; 540 out[i].dF_ApR5 = in[i].dF_ApR5; 541 out[i].sF_ApR5 = in[i].sF_ApR5; 542 out[i].fF_ApR5 = in[i].fF_ApR5; 543 544 out[i].F_ApR6 = in[i].F_ApR6; 545 out[i].dF_ApR6 = in[i].dF_ApR6; 546 out[i].sF_ApR6 = in[i].sF_ApR6; 547 out[i].fF_ApR6 = in[i].fF_ApR6; 548 549 out[i].detID = in[i].detID; 550 out[i].objID = in[i].objID; 551 out[i].catID = in[i].catID; 552 out[i].averef = in[i].averef; 553 554 out[i].imageID = in[i].imageID; 555 } 556 return (out); 557 } 558 559 Lensobj *Lensobj_PS1_V5_ToInternal (Lensobj_PS1_V5 *in, off_t Nvalues) { 560 561 off_t i; 562 Lensobj *out; 563 564 ALLOCATE_ZERO (out, Lensobj, Nvalues); 565 566 for (i = 0; i < Nvalues; i++) { 567 dvo_lensobj_init (&out[i], FALSE); 568 569 out[i].X11_sm_obj = in[i].X11_sm_obj; 570 out[i].X12_sm_obj = in[i].X12_sm_obj; 571 out[i].X22_sm_obj = in[i].X22_sm_obj; 572 out[i].E1_sm_obj = in[i].E1_sm_obj; 573 out[i].E2_sm_obj = in[i].E2_sm_obj; 574 575 out[i].X11_sh_obj = in[i].X11_sh_obj; 576 out[i].X12_sh_obj = in[i].X12_sh_obj; 577 out[i].X22_sh_obj = in[i].X22_sh_obj; 578 out[i].E1_sh_obj = in[i].E1_sh_obj; 579 out[i].E2_sh_obj = in[i].E2_sh_obj; 580 581 out[i].X11_sm_psf = in[i].X11_sm_psf; 582 out[i].X12_sm_psf = in[i].X12_sm_psf; 583 out[i].X22_sm_psf = in[i].X22_sm_psf; 584 out[i].E1_sm_psf = in[i].E1_sm_psf; 585 out[i].E2_sm_psf = in[i].E2_sm_psf; 586 587 out[i].X11_sh_psf = in[i].X11_sh_psf; 588 out[i].X12_sh_psf = in[i].X12_sh_psf; 589 out[i].X22_sh_psf = in[i].X22_sh_psf; 590 out[i].E1_sh_psf = in[i].E1_sh_psf; 591 out[i].E2_sh_psf = in[i].E2_sh_psf; 592 593 out[i].F_ApR5 = in[i].F_ApR5; 594 out[i].dF_ApR5 = in[i].dF_ApR5; 595 out[i].sF_ApR5 = in[i].sF_ApR5; 596 out[i].fF_ApR5 = in[i].fF_ApR5; 597 598 out[i].F_ApR6 = in[i].F_ApR6; 599 out[i].dF_ApR6 = in[i].dF_ApR6; 600 out[i].sF_ApR6 = in[i].sF_ApR6; 601 out[i].fF_ApR6 = in[i].fF_ApR6; 602 603 out[i].gamma = in[i].gamma; 604 out[i].E1 = in[i].E1; 605 out[i].E2 = in[i].E2; 606 607 out[i].objID = in[i].objID; 608 out[i].catID = in[i].catID; 609 610 out[i].photcode = in[i].photcode; 611 out[i].Nmeas = in[i].Nmeas; 612 } 613 return (out); 614 } 615 616 Lensobj_PS1_V5 *LensobjInternalTo_PS1_V5 (Lensobj *in, off_t Nvalues) { 617 618 off_t i; 619 Lensobj_PS1_V5 *out; 620 621 ALLOCATE_ZERO (out, Lensobj_PS1_V5, Nvalues); 622 623 for (i = 0; i < Nvalues; i++) { 624 625 out[i].X11_sm_obj = in[i].X11_sm_obj; 626 out[i].X12_sm_obj = in[i].X12_sm_obj; 627 out[i].X22_sm_obj = in[i].X22_sm_obj; 628 out[i].E1_sm_obj = in[i].E1_sm_obj; 629 out[i].E2_sm_obj = in[i].E2_sm_obj; 630 631 out[i].X11_sh_obj = in[i].X11_sh_obj; 632 out[i].X12_sh_obj = in[i].X12_sh_obj; 633 out[i].X22_sh_obj = in[i].X22_sh_obj; 634 out[i].E1_sh_obj = in[i].E1_sh_obj; 635 out[i].E2_sh_obj = in[i].E2_sh_obj; 636 637 out[i].X11_sm_psf = in[i].X11_sm_psf; 638 out[i].X12_sm_psf = in[i].X12_sm_psf; 639 out[i].X22_sm_psf = in[i].X22_sm_psf; 640 out[i].E1_sm_psf = in[i].E1_sm_psf; 641 out[i].E2_sm_psf = in[i].E2_sm_psf; 642 643 out[i].X11_sh_psf = in[i].X11_sh_psf; 644 out[i].X12_sh_psf = in[i].X12_sh_psf; 645 out[i].X22_sh_psf = in[i].X22_sh_psf; 646 out[i].E1_sh_psf = in[i].E1_sh_psf; 647 out[i].E2_sh_psf = in[i].E2_sh_psf; 648 649 out[i].F_ApR5 = in[i].F_ApR5; 650 out[i].dF_ApR5 = in[i].dF_ApR5; 651 out[i].sF_ApR5 = in[i].sF_ApR5; 652 out[i].fF_ApR5 = in[i].fF_ApR5; 653 654 out[i].F_ApR6 = in[i].F_ApR6; 655 out[i].dF_ApR6 = in[i].dF_ApR6; 656 out[i].sF_ApR6 = in[i].sF_ApR6; 657 out[i].fF_ApR6 = in[i].fF_ApR6; 658 659 out[i].gamma = in[i].gamma; 660 out[i].E1 = in[i].E1; 661 out[i].E2 = in[i].E2; 662 663 out[i].objID = in[i].objID; 664 out[i].catID = in[i].catID; 665 666 out[i].photcode = in[i].photcode; 667 out[i].Nmeas = in[i].Nmeas; 668 } 669 return (out); 670 } 671 672 StarPar *StarPar_PS1_V5_ToInternal (StarPar_PS1_V5 *in, off_t Nvalues) { 673 674 off_t i; 675 StarPar *out; 676 677 ALLOCATE_ZERO (out, StarPar, Nvalues); 678 679 for (i = 0; i < Nvalues; i++) { 680 dvo_starpar_init (&out[i]); 681 682 out[i].R = in[i].R; 683 out[i].D = in[i].D; 684 out[i].galLat = in[i].galLat; 685 out[i].galLon = in[i].galLon; 686 687 out[i].Ebv = in[i].Ebv ; 688 out[i].dEbv = in[i].dEbv ; 689 out[i].DistMag = in[i].DistMag ; 690 out[i].dDistMag = in[i].dDistMag; 691 out[i].M_r = in[i].M_r ; 692 out[i].dM_r = in[i].dM_r ; 693 out[i].FeH = in[i].FeH ; 694 out[i].dFeH = in[i].dFeH ; 695 out[i].uRA = in[i].uRA ; 696 out[i].uDEC = in[i].uDEC ; 697 698 out[i].averef = in[i].averef; 699 out[i].objID = in[i].objID ; 700 out[i].catID = in[i].catID ; 701 } 702 return (out); 703 } 704 705 StarPar_PS1_V5 *StarParInternalTo_PS1_V5 (StarPar *in, off_t Nvalues) { 706 707 off_t i; 708 StarPar_PS1_V5 *out; 709 710 ALLOCATE_ZERO (out, StarPar_PS1_V5, Nvalues); 711 712 for (i = 0; i < Nvalues; i++) { 713 714 out[i].R = in[i].R; 715 out[i].D = in[i].D; 716 out[i].galLat = in[i].galLat; 717 out[i].galLon = in[i].galLon; 718 719 out[i].Ebv = in[i].Ebv ; 720 out[i].dEbv = in[i].dEbv ; 721 out[i].DistMag = in[i].DistMag ; 722 out[i].dDistMag = in[i].dDistMag; 723 out[i].M_r = in[i].M_r ; 724 out[i].dM_r = in[i].dM_r ; 725 out[i].FeH = in[i].FeH ; 726 out[i].dFeH = in[i].dFeH ; 727 out[i].uRA = in[i].uRA ; 728 out[i].uDEC = in[i].uDEC ; 729 730 out[i].averef = in[i].averef; 731 out[i].objID = in[i].objID ; 732 out[i].catID = in[i].catID ; 733 } 734 return (out); 735 } 736 737 # define RAW_IMAGE_NAME_LEN 117 738 739 Image *Image_PS1_V5_ToInternal (Image_PS1_V5 *in, off_t Nvalues, off_t Nalloc) { 740 741 off_t i; 742 Image *out; 743 744 char *buffer; 745 ALLOCATE_ZERO (buffer, char, Nalloc); 746 out = (Image *) buffer; 747 // ALLOCATE_ZERO (out, Image, Nvalues); 748 749 for (i = 0; i < Nvalues; i++) { 750 // this is only safe because the initial 120 bytes in Coords match CoordsDisk 751 memcpy (&out[i].coords, &in[i].coords, sizeof(CoordsDisk)); 752 out[i].coords.mosaic = NULL; 753 out[i].coords.offsetMap = NULL; 754 755 // RAW_IMAGE_NAME_LEN == DVO_IMAGE_NAME_LEN 756 strncpy (out[i].name, in[i].name, RAW_IMAGE_NAME_LEN - 1); 757 out[i].name[RAW_IMAGE_NAME_LEN - 1] = 0; // force termination 758 759 out[i].tzero = in[i].tzero; 760 out[i].nstar = in[i].nstar; 761 out[i].secz = in[i].secz; 762 out[i].NX = in[i].NX; 763 out[i].NY = in[i].NY; 764 out[i].apmifit = in[i].apmifit; 765 out[i].dapmifit = in[i].dapmifit; 766 out[i].Mcal = in[i].Mcal; 767 out[i].dMcal = in[i].dMcal; 768 out[i].Xm = in[i].Xm; 769 out[i].photcode = in[i].photcode; 770 out[i].exptime = in[i].exptime; 771 out[i].sidtime = in[i].sidtime; 772 out[i].latitude = in[i].latitude; 773 774 out[i].RAo = in[i].RAo; 775 out[i].DECo = in[i].DECo; 776 out[i].Radius = in[i].Radius; 777 out[i].refColorBlue = in[i].refColorBlue; 778 out[i].refColorRed = in[i].refColorRed; 779 780 out[i].detection_limit = in[i].detection_limit; 781 out[i].saturation_limit = in[i].saturation_limit; 782 out[i].cerror = in[i].cerror; 783 out[i].fwhm_x = in[i].fwhm_x; 784 out[i].fwhm_y = in[i].fwhm_y; 785 out[i].trate = in[i].trate; 786 out[i].ccdnum = in[i].ccdnum; 787 out[i].flags = in[i].flags; 788 out[i].imageID = in[i].imageID; 789 out[i].parentID = in[i].parentID; 790 out[i].externID = in[i].externID; 791 out[i].sourceID = in[i].sourceID; 792 793 // as of 2011.02.03, the old Mx,My,..., Mxxxx,Myyyy have been deprecated and replaced 794 // with the following. (no real databases used those values -- see 795 // libdvo/doc/dvo-images.txt) 796 out[i].nLinkAstrom = in[i].nLinkAstrom; 797 out[i].nLinkPhotom = in[i].nLinkPhotom; 798 out[i].ubercalDist = in[i].ubercalDist; 799 out[i].dXpixSys = in[i].dXpixSys; 800 out[i].dYpixSys = in[i].dYpixSys; 801 out[i].dMagSys = in[i].dMagSys; 802 out[i].nFitAstrom = in[i].nFitAstrom; 803 out[i].nFitPhotom = in[i].nFitPhotom; 804 out[i].photom_map_id = in[i].photom_map_id; 805 out[i].astrom_map_id = in[i].astrom_map_id; 806 } 807 return (out); 808 } 809 810 Image_PS1_V5 *ImageInternalTo_PS1_V5 (Image *in, off_t Nvalues) { 811 812 off_t i; 813 Image_PS1_V5 *out; 814 815 ALLOCATE_ZERO (out, Image_PS1_V5, Nvalues); 816 817 for (i = 0; i < Nvalues; i++) { 818 // this is only save because the initial 120 bytes in Coords match CoordsDisk 819 memcpy (&out[i].coords, &in[i].coords, sizeof(CoordsDisk)); 820 821 // RAW_IMAGE_NAME_LEN == DVO_IMAGE_NAME_LEN 822 strncpy (out[i].name, in[i].name, RAW_IMAGE_NAME_LEN - 1); 823 out[i].name[RAW_IMAGE_NAME_LEN - 1] = 0; // force termination 824 825 out[i].tzero = in[i].tzero; 826 out[i].nstar = in[i].nstar; 827 out[i].secz = in[i].secz; 828 out[i].NX = in[i].NX; 829 out[i].NY = in[i].NY; 830 out[i].apmifit = in[i].apmifit; 831 out[i].dapmifit = in[i].dapmifit; 832 out[i].Mcal = in[i].Mcal; 833 out[i].dMcal = in[i].dMcal; 834 out[i].Xm = in[i].Xm; 835 out[i].photcode = in[i].photcode; 836 out[i].exptime = in[i].exptime; 837 out[i].sidtime = in[i].sidtime; 838 out[i].latitude = in[i].latitude; 839 840 out[i].RAo = in[i].RAo; 841 out[i].DECo = in[i].DECo; 842 out[i].Radius = in[i].Radius; 843 out[i].refColorBlue = in[i].refColorBlue; 844 out[i].refColorRed = in[i].refColorRed; 845 846 out[i].detection_limit = in[i].detection_limit; 847 out[i].saturation_limit = in[i].saturation_limit; 848 out[i].cerror = in[i].cerror; 849 out[i].fwhm_x = in[i].fwhm_x; 850 out[i].fwhm_y = in[i].fwhm_y; 851 out[i].trate = in[i].trate; 852 out[i].ccdnum = in[i].ccdnum; 853 out[i].flags = in[i].flags; 854 out[i].imageID = in[i].imageID; 855 out[i].parentID = in[i].parentID; 856 out[i].externID = in[i].externID; 857 out[i].sourceID = in[i].sourceID; 858 859 // as of 2011.02.03, the old Mx,My,..., Mxxxx,Myyyy have been deprecated and replaced 860 // with the following. (no real databases used those values -- see 861 // libdvo/doc/dvo-images.txt) 862 out[i].nLinkAstrom = in[i].nLinkAstrom; 863 out[i].nLinkPhotom = in[i].nLinkPhotom; 864 out[i].ubercalDist = in[i].ubercalDist; 865 out[i].dXpixSys = in[i].dXpixSys; 866 out[i].dYpixSys = in[i].dYpixSys; 867 out[i].dMagSys = in[i].dMagSys; 868 out[i].nFitAstrom = in[i].nFitAstrom; 869 out[i].nFitPhotom = in[i].nFitPhotom; 870 out[i].photom_map_id = in[i].photom_map_id; 871 out[i].astrom_map_id = in[i].astrom_map_id; 872 } 873 return (out); 874 } 875 876 PhotCode *PhotCode_PS1_V5_To_Internal (PhotCode_PS1_V5 *in, off_t Nvalues) { 877 878 off_t i; 879 PhotCode *out; 880 881 ALLOCATE_ZERO (out, PhotCode, Nvalues); 882 883 for (i = 0; i < Nvalues; i++) { 884 strncpy (out[i].name, in[i].name, 31); // out[32], in[32] 885 out[i].name[31] = 0; // force termination 886 887 out[i].code = in[i].code; 888 out[i].type = in[i].type; 889 out[i].C = in[i].C; 890 out[i].dC = in[i].dC; 891 out[i].dX = in[i].dX; 892 out[i].K = in[i].K; 893 out[i].c1 = in[i].c1; 894 out[i].c2 = in[i].c2; 895 out[i].equiv = in[i].equiv; 896 out[i].Nc = in[i].Nc; 897 memcpy (out[i].X, in[i].X, 4*sizeof(float)); 898 899 out[i].astromErrSys = in[i].astromErrSys; 900 out[i].astromErrScale = in[i].astromErrScale; 901 out[i].astromErrMagScale = in[i].astromErrMagScale; 902 out[i].photomErrSys = in[i].photomErrSys; 903 904 out[i].photomPoorMask = in[i].photomPoorMask; 905 out[i].photomBadMask = in[i].photomBadMask; 906 out[i].astromPoorMask = in[i].astromPoorMask; 907 out[i].astromBadMask = in[i].astromBadMask; 908 } 909 return (out); 910 } 911 912 PhotCode_PS1_V5 *PhotCode_Internal_To_PS1_V5 (PhotCode *in, off_t Nvalues) { 913 914 off_t i; 915 PhotCode_PS1_V5 *out; 916 917 ALLOCATE_ZERO (out, PhotCode_PS1_V5, Nvalues); 918 919 for (i = 0; i < Nvalues; i++) { 920 strncpy (out[i].name, in[i].name, 31); // out[32], in[32] 921 out[i].name[31] = 0; // force termination 922 923 out[i].code = in[i].code; 924 out[i].type = in[i].type; 925 out[i].C = in[i].C; 926 out[i].dC = in[i].dC; 927 out[i].dX = in[i].dX; 928 out[i].K = in[i].K; 929 out[i].c1 = in[i].c1; 930 out[i].c2 = in[i].c2; 931 out[i].equiv = in[i].equiv; 932 out[i].Nc = in[i].Nc; 933 memcpy (out[i].X, in[i].X, 4*sizeof(float)); 934 935 out[i].astromErrSys = in[i].astromErrSys; 936 out[i].astromErrScale = in[i].astromErrScale; 937 out[i].astromErrMagScale = in[i].astromErrMagScale; 938 out[i].photomErrSys = in[i].photomErrSys; 939 940 out[i].photomPoorMask = in[i].photomPoorMask; 941 out[i].photomBadMask = in[i].photomBadMask; 942 out[i].astromPoorMask = in[i].astromPoorMask; 943 out[i].astromBadMask = in[i].astromBadMask; 944 } 945 return (out); 946 } 947 948 /*********************** old / alternate version **********************/ 949 950 // 'primary' is needed to conform with the API for Loneos and Elixir, but is not used 951 Average *Average_PS1_V5alt_ToInternal (Average_PS1_V5alt *in, off_t Nvalues) { 952 953 off_t i; 954 Average *out; 955 956 ALLOCATE_ZERO (out, Average, Nvalues); 957 958 for (i = 0; i < Nvalues; i++) { 959 dvo_average_init (&out[i]); 960 961 out[i].R = in[i].R; 962 out[i].D = in[i].D; 963 out[i].dR = in[i].dR; 964 out[i].dD = in[i].dD; 965 out[i].uR = in[i].uR; 966 out[i].uD = in[i].uD; 967 out[i].duR = in[i].duR; 968 out[i].duD = in[i].duD; 969 out[i].P = in[i].P; 970 out[i].dP = in[i].dP; 971 972 out[i].Rstk = in[i].Rstk; 973 out[i].Dstk = in[i].Dstk; 974 out[i].dRstk = in[i].dRstk; 975 out[i].dDstk = in[i].dDstk; 976 977 out[i].ChiSqAve = in[i].ChiSqAve; 978 out[i].ChiSqPM = in[i].ChiSqPM; 979 out[i].ChiSqPar = in[i].ChiSqPar; 980 out[i].Tmean = in[i].Tmean; 981 out[i].Trange = in[i].Trange; 982 983 out[i].psfQF = in[i].psfQF; 984 out[i].psfQFperf = in[i].psfQFperf; 985 out[i].stargal = in[i].stargal; 986 out[i].Npos = in[i].Npos; 987 988 out[i].Nmeasure = in[i].Nmeasure; 989 out[i].Nmissing = in[i].Nmissing; 990 out[i].Nlensing = in[i].Nlensing; 991 out[i].Nlensobj = in[i].Nlensobj; 992 out[i].Nextend = in[i].Nextend; 993 994 out[i].measureOffset = in[i].measureOffset; 995 out[i].missingOffset = in[i].missingOffset; 996 out[i].lensingOffset = in[i].lensingOffset; 997 out[i].lensobjOffset = in[i].lensobjOffset; 998 out[i].starparOffset = in[i].starparOffset; 999 out[i].extendOffset = in[i].extendOffset; 1000 1001 out[i].refColorBlue = in[i].refColorBlue; 1002 out[i].refColorRed = in[i].refColorRed; 1003 1004 out[i].flags = in[i].flags; 1005 out[i].photFlagsUpper = in[i].photFlagsUpper; 1006 out[i].photFlagsLower = in[i].photFlagsLower; 1007 out[i].objID = in[i].objID; 1008 out[i].catID = in[i].catID; 1009 out[i].extID = in[i].extID; 1010 out[i].extIDgc = in[i].extIDgc; 1011 } 1012 return (out); 1013 } 1014 1015 int gfits_convert_Average_PS1_V5alt (Average_PS1_V5alt *data, off_t size, off_t nitems) { 1457 int gfits_convert_Measure_PS1_V5alt (Measure_PS1_V5alt *data, off_t size, off_t nitems) { 1016 1458 1017 1459 off_t i; 1018 1460 unsigned char *byte, tmp; 1019 1461 1020 if (size != 184) {1021 fprintf (stderr, "WARNING: mismatch in data types Average_PS1_V5alt: "OFF_T_FMT" vs %d\n", size, 184);1462 if (size != 232) { 1463 fprintf (stderr, "WARNING: mismatch in data types Measure_PS1_V5alt: "OFF_T_FMT" vs %d\n", size, 232); 1022 1464 return (FALSE); 1023 1465 } … … 1029 1471 # ifdef BYTE_SWAP 1030 1472 byte = (unsigned char *) data; 1031 for (i = 0; i < nitems; i++, byte += 184) {1473 for (i = 0; i < nitems; i++, byte += 232) { 1032 1474 /** BYTE SWAP **/ 1033 1475 SWAP_DBLE (0); // RA 1034 1476 SWAP_DBLE (8); // DEC 1035 SWAP_WORD (16); // RA_ERR 1036 SWAP_WORD (20); // DEC_ERR 1037 SWAP_WORD (24); // U_RA 1038 SWAP_WORD (28); // U_DEC 1039 SWAP_WORD (32); // V_RA_ERR 1040 SWAP_WORD (36); // V_DEC_ERR 1041 SWAP_WORD (40); // PAR 1042 SWAP_WORD (44); // PAR_ERR 1043 SWAP_DBLE (48); // RA_STK 1044 SWAP_DBLE (56); // DEC_STK 1045 SWAP_WORD (64); // RA_STK_ERR 1046 SWAP_WORD (68); // DEC_STK_ERR 1047 SWAP_WORD (72); // CHISQ_POS 1048 SWAP_WORD (76); // CHISQ_PM 1049 SWAP_WORD (80); // CHISQ_PAP 1050 SWAP_WORD (84); // MEAN_EPOCH 1051 SWAP_WORD (88); // TIME_RANGE 1052 SWAP_WORD (92); // PSF_QF 1053 SWAP_WORD (96); // PSF_QF_PERF 1054 SWAP_WORD (100); // STARGAL_SEP 1055 SWAP_BYTE (104); // NUMBER_POS 1056 SWAP_BYTE (106); // NMEASURE 1057 SWAP_BYTE (108); // NMISSING 1058 SWAP_BYTE (110); // NLENSING 1059 SWAP_BYTE (112); // NLENSOBJ 1060 SWAP_BYTE (114); // NEXTEND 1061 SWAP_WORD (116); // OFF_MEASURE 1062 SWAP_WORD (120); // OFF_MISSING 1063 SWAP_WORD (124); // OFF_LENSING 1064 SWAP_WORD (128); // OFF_LENSOBJ 1065 SWAP_WORD (132); // OFF_EXTEND 1066 SWAP_WORD (136); // OFF_PARAMS 1067 SWAP_WORD (140); // REF_COLOR_BLUE 1068 SWAP_WORD (144); // REF_COLOR_RED 1069 SWAP_WORD (148); // FLAGS 1070 SWAP_WORD (152); // PHOTFLAGS_U 1071 SWAP_WORD (156); // PHOTFLAGS_L 1072 SWAP_WORD (160); // OBJ_ID 1073 SWAP_WORD (164); // CAT_ID 1074 SWAP_DBLE (168); // EXT_ID 1075 SWAP_DBLE (176); // EXT_ID_GC 1477 SWAP_WORD (16); // MAG 1478 SWAP_WORD (20); // MAG_ERR 1479 SWAP_WORD (24); // M_APER 1480 SWAP_WORD (28); // M_APER_ERR 1481 SWAP_WORD (32); // M_KRON 1482 SWAP_WORD (36); // M_KRON_ERR 1483 SWAP_WORD (40); // M_CAL 1484 SWAP_WORD (44); // MAG_CAL_ERR 1485 SWAP_WORD (48); // M_TIME 1486 SWAP_WORD (52); // FLUX_PSF 1487 SWAP_WORD (56); // FLUX_PSF_ERR 1488 SWAP_WORD (60); // FLUX_KRON 1489 SWAP_WORD (64); // FLUX_KRON_ERR 1490 SWAP_WORD (68); // FLUX_AP 1491 SWAP_WORD (72); // FLUX_AP_ERR 1492 SWAP_WORD (76); // AIRMASS 1493 SWAP_WORD (80); // AZ 1494 SWAP_WORD (84); // X_CCD 1495 SWAP_WORD (88); // Y_CCD 1496 SWAP_WORD (92); // X_FIX 1497 SWAP_WORD (96); // Y_FIX 1498 SWAP_WORD (100); // X_OFF_KH 1499 SWAP_WORD (104); // Y_OFF_KH 1500 SWAP_WORD (108); // X_OFF_DCR 1501 SWAP_WORD (112); // Y_OFF_DCR 1502 SWAP_WORD (116); // R_OFF_GAL 1503 SWAP_WORD (120); // D_OFF_GAL 1504 SWAP_WORD (124); // SKY_FLUX 1505 SWAP_WORD (128); // SKY_FLUX_ERR 1506 SWAP_WORD (132); // TIME 1507 SWAP_WORD (136); // AVE_REF 1508 SWAP_WORD (140); // DET_ID 1509 SWAP_WORD (144); // OBJ_ID 1510 SWAP_WORD (148); // CAT_ID 1511 SWAP_DBLE (152); // EXT_ID 1512 SWAP_WORD (160); // IMAGE_ID 1513 SWAP_WORD (164); // PSF_QF 1514 SWAP_WORD (168); // PSF_QF_PEFECT 1515 SWAP_WORD (172); // PSF_CHISQ 1516 SWAP_WORD (176); // PSF_NDOF 1517 SWAP_WORD (180); // PSF_NPIX 1518 SWAP_WORD (184); // PHOT_FLAGS 1519 SWAP_WORD (188); // EXT_NSIGMA 1520 SWAP_BYTE (192); // FWHM_MAJOR 1521 SWAP_BYTE (194); // FWHM_MINOR 1522 SWAP_BYTE (196); // PSF_THETA 1523 SWAP_BYTE (198); // MXX 1524 SWAP_BYTE (200); // MXY 1525 SWAP_BYTE (202); // MYY 1526 SWAP_BYTE (204); // TIME_MSEC 1527 SWAP_BYTE (206); // PHOTCODE 1528 SWAP_BYTE (208); // X_CCD_ERR 1529 SWAP_BYTE (210); // Y_CCD_ERR 1530 SWAP_BYTE (212); // POS_SYS_ERR 1531 SWAP_BYTE (214); // POSANGLE 1532 SWAP_WORD (216); // PLTSCALE 1533 SWAP_WORD (220); // DB_FLAGS 1534 SWAP_WORD (224); // PHOT_FLAGS 1535 SWAP_WORD (228); // PADDING 1076 1536 } 1077 1537 # endif … … 1080 1540 } 1081 1541 1082 /*** add test of EXTNAME and header-defined columns? ***/1083 1542 /* return internal structure representation */ 1084 Average_PS1_V5alt *gfits_table_get_Average_PS1_V5alt (FTable *ftable, off_t *Ndata, char *swapped) {1543 Measure_PS1_V5alt *gfits_table_get_Measure_PS1_V5alt (FTable *ftable, off_t *Ndata, char *swapped) { 1085 1544 1086 1545 int Ncols; 1087 Average_PS1_V5alt *data;1546 Measure_PS1_V5alt *data; 1088 1547 1089 1548 Ncols = ftable[0].header[0].Naxis[0]; 1090 if (Ncols != 184) {1091 fprintf (stderr, "ERROR: mis-match in table size: width is %d but should be %d bytes\n", Ncols, 184);1549 if (Ncols != 232) { 1550 fprintf (stderr, "ERROR: mis-match in table size: width is %d but should be %d bytes\n", Ncols, 232); 1092 1551 return NULL; 1093 1552 } 1094 1553 1095 1554 *Ndata = ftable[0].header[0].Naxis[1]; 1096 data = ( Average_PS1_V5alt *) ftable[0].buffer;1555 data = (Measure_PS1_V5alt *) ftable[0].buffer; 1097 1556 if ((swapped == NULL) || (*swapped == FALSE)) { 1098 if (!gfits_convert_ Average_PS1_V5alt (data, sizeof (Average_PS1_V5alt), *Ndata)) {1557 if (!gfits_convert_Measure_PS1_V5alt (data, sizeof (Measure_PS1_V5alt), *Ndata)) { 1099 1558 return NULL; 1100 1559 } … … 1105 1564 } 1106 1565 1107 /****** alt secfilt **********/ 1108 1109 SecFilt *SecFilt_PS1_V5alt_ToInternal (SecFilt_PS1_V5alt *in, off_t Nvalues) { 1110 1111 off_t i; 1112 SecFilt *out; 1113 1114 ALLOCATE_ZERO (out, SecFilt, Nvalues); 1115 1116 for (i = 0; i < Nvalues; i++) { 1117 dvo_secfilt_init (&out[i]); 1118 1119 out[i].M = in[i].M; 1120 out[i].dM = in[i].dM; 1121 out[i].Map = in[i].Map; 1122 out[i].dMap = in[i].dMap; 1123 out[i].sMap = in[i].sMap; 1124 out[i].Mkron = in[i].Mkron; 1125 out[i].dMkron = in[i].dMkron; 1126 1127 out[i].Mstdev = in[i].Mstdev; 1128 out[i].Mmin = in[i].Mmin; 1129 out[i].Mmax = in[i].Mmax; 1130 out[i].Mchisq = in[i].Mchisq; 1131 1132 out[i].Ncode = in[i].Ncode; 1133 out[i].Nused = in[i].Nused; 1134 out[i].NusedKron = in[i].NusedKron; 1135 out[i].NusedAp = in[i].NusedAp; 1136 1137 out[i].flags = in[i].flags; 1138 1139 out[i].MpsfStk = in[i].MpsfStk; 1140 out[i].FpsfStk = in[i].FpsfStk; 1141 out[i].dFpsfStk = in[i].dFpsfStk; 1142 1143 out[i].MkronStk = in[i].MkronStk; 1144 out[i].FkronStk = in[i].FkronStk; 1145 out[i].dFkronStk = in[i].dFkronStk; 1146 1147 out[i].MapStk = in[i].MapStk; 1148 out[i].FapStk = in[i].FapStk; 1149 out[i].dFapStk = in[i].dFapStk; 1150 1151 out[i].stackPrmryOff = in[i].stackPrmryOff; 1152 out[i].stackBestOff = in[i].stackBestOff; 1153 1154 out[i].MpsfWrp = in[i].MpsfWrp; 1155 out[i].FpsfWrp = in[i].FpsfWrp; 1156 out[i].dFpsfWrp = in[i].dFpsfWrp; 1157 out[i].sFpsfWrp = in[i].sFpsfWrp; 1158 1159 out[i].MkronWrp = in[i].MkronWrp; 1160 out[i].FkronWrp = in[i].FkronWrp; 1161 out[i].dFkronWrp = in[i].dFkronWrp; 1162 out[i].sFkronWrp = in[i].sFkronWrp; 1163 1164 out[i].MapWrp = in[i].MapWrp; 1165 out[i].FapWrp = in[i].FapWrp; 1166 out[i].dFapWrp = in[i].dFapWrp; 1167 out[i].sFapWrp = in[i].sFapWrp; 1168 1169 out[i].NusedWrp = in[i].NusedWrp; 1170 out[i].NusedKronWrp = in[i].NusedKronWrp; 1171 out[i].NusedApWrp = in[i].NusedApWrp; 1172 1173 out[i].ubercalDist = in[i].ubercalDist; 1174 } 1175 return (out); 1176 } 1177 1178 int gfits_convert_SecFilt_PS1_V5alt (SecFilt_PS1_V5alt *data, off_t size, off_t nitems) { 1179 1180 off_t i; 1181 unsigned char *byte, tmp; 1182 1183 if (size != 160) { 1184 fprintf (stderr, "WARNING: mismatch in data types SecFilt_PS1_V5alt: "OFF_T_FMT" vs %d\n", size, 160); 1185 return (FALSE); 1186 } 1187 1188 /* provide initial values to avoid compiler warnings for non-BYTE_SWAP arch */ 1189 i = tmp = 0; 1190 byte = NULL; 1191 1192 # ifdef BYTE_SWAP 1193 byte = (unsigned char *) data; 1194 for (i = 0; i < nitems; i++, byte += 160) { 1195 /** BYTE SWAP **/ 1196 SWAP_WORD (0); // MAG 1197 SWAP_WORD (4); // MAG_ERR 1198 SWAP_WORD (8); // MAG_AP 1199 SWAP_WORD (12); // MAG_AP_ERR 1200 SWAP_WORD (16); // MAG_AP_STDEV 1201 SWAP_WORD (20); // MAG_KRON 1202 SWAP_WORD (24); // MAG_KRON_ERR 1203 SWAP_WORD (28); // MAG_KRON_STDEV 1204 SWAP_WORD (32); // MAG_STDEV 1205 SWAP_WORD (36); // MAG_MIN 1206 SWAP_WORD (40); // MAG_MAX 1207 SWAP_WORD (44); // MAG_CHI 1208 SWAP_BYTE (48); // NCODE 1209 SWAP_BYTE (50); // NUSED 1210 SWAP_BYTE (52); // NUSED_KRON 1211 SWAP_BYTE (54); // NUSED_AP 1212 SWAP_WORD (56); // FLAGS 1213 SWAP_WORD (60); // MAG_PSF_STK 1214 SWAP_WORD (64); // FLUX_PSF_STK 1215 SWAP_WORD (68); // FLUX_PSF_STK_ERR 1216 SWAP_WORD (72); // MAG_KRON_STK 1217 SWAP_WORD (76); // FLUX_KRON_STK 1218 SWAP_WORD (80); // FLUX_KRON_STK_ERR 1219 SWAP_WORD (84); // MAG_AP_STK 1220 SWAP_WORD (88); // FLUX_AP_STK 1221 SWAP_WORD (92); // FLUX_AP_STK_ERR 1222 SWAP_WORD (96); // STACK_PRIMARY_OFF 1223 SWAP_WORD (100); // STACK_BEST_OFF 1224 SWAP_WORD (104); // MAG_PSF_WRP 1225 SWAP_WORD (108); // FLUX_PSF_WRP 1226 SWAP_WORD (112); // FLUX_PSF_WRP_ERR 1227 SWAP_WORD (116); // FLUX_PSF_WRP_STD 1228 SWAP_WORD (120); // MAG_KRON_WRP 1229 SWAP_WORD (124); // FLUX_KRON_WRP 1230 SWAP_WORD (128); // FLUX_KRON_WRP_ERR 1231 SWAP_WORD (132); // FLUX_KRON_WRP_STD 1232 SWAP_WORD (136); // MAG_AP_WRP 1233 SWAP_WORD (140); // FLUX_AP_WRP 1234 SWAP_WORD (144); // FLUX_AP_WRP_ERR 1235 SWAP_WORD (148); // FLUX_AP_WRP_STD 1236 SWAP_BYTE (152); // NUSED_WRP 1237 SWAP_BYTE (154); // NUSED_KRON_WRP 1238 SWAP_BYTE (156); // NUSED_AP_WRP 1239 SWAP_BYTE (158); // UBERCAL_DIST 1240 } 1241 # endif 1242 1243 return (TRUE); 1244 } 1245 1246 /*** add test of EXTNAME and header-defined columns? ***/ 1247 /* return internal structure representation */ 1248 SecFilt_PS1_V5alt *gfits_table_get_SecFilt_PS1_V5alt (FTable *ftable, off_t *Ndata, char *swapped) { 1249 1250 int Ncols; 1251 SecFilt_PS1_V5alt *data; 1252 1253 Ncols = ftable[0].header[0].Naxis[0]; 1254 if (Ncols != 160) { 1255 fprintf (stderr, "ERROR: mis-match in table size: width is %d but should be %d bytes\n", Ncols, 160); 1256 return NULL; 1257 } 1258 1259 *Ndata = ftable[0].header[0].Naxis[1]; 1260 data = (SecFilt_PS1_V5alt *) ftable[0].buffer; 1261 if ((swapped == NULL) || (*swapped == FALSE)) { 1262 if (!gfits_convert_SecFilt_PS1_V5alt (data, sizeof (SecFilt_PS1_V5alt), *Ndata)) { 1263 return NULL; 1264 } 1265 gfits_table_scale_data (ftable); 1266 if (swapped != NULL) *swapped = TRUE; 1267 } 1268 return (data); 1269 } 1270 1271 Lensing *Lensing_PS1_V5_R0_ToInternal (Lensing_PS1_V5_R0 *in, off_t Nvalues) { 1272 1273 off_t i; 1274 Lensing *out; 1275 1276 ALLOCATE_ZERO (out, Lensing, Nvalues); 1277 1278 for (i = 0; i < Nvalues; i++) { 1279 dvo_lensing_init (&out[i]); 1280 1281 out[i].X11_sm_obj = in[i].X11_sm_obj; 1282 out[i].X12_sm_obj = in[i].X12_sm_obj; 1283 out[i].X22_sm_obj = in[i].X22_sm_obj; 1284 out[i].E1_sm_obj = in[i].E1_sm_obj; 1285 out[i].E2_sm_obj = in[i].E2_sm_obj; 1286 1287 out[i].X11_sh_obj = in[i].X11_sh_obj; 1288 out[i].X12_sh_obj = in[i].X12_sh_obj; 1289 out[i].X22_sh_obj = in[i].X22_sh_obj; 1290 out[i].E1_sh_obj = in[i].E1_sh_obj; 1291 out[i].E2_sh_obj = in[i].E2_sh_obj; 1292 1293 out[i].X11_sm_psf = in[i].X11_sm_psf; 1294 out[i].X12_sm_psf = in[i].X12_sm_psf; 1295 out[i].X22_sm_psf = in[i].X22_sm_psf; 1296 out[i].E1_sm_psf = in[i].E1_sm_psf; 1297 out[i].E2_sm_psf = in[i].E2_sm_psf; 1298 1299 out[i].X11_sh_psf = in[i].X11_sh_psf; 1300 out[i].X12_sh_psf = in[i].X12_sh_psf; 1301 out[i].X22_sh_psf = in[i].X22_sh_psf; 1302 out[i].E1_sh_psf = in[i].E1_sh_psf; 1303 out[i].E2_sh_psf = in[i].E2_sh_psf; 1304 1305 out[i].F_ApR5 = in[i].F_ApR5; 1306 out[i].dF_ApR5 = in[i].dF_ApR5; 1307 out[i].sF_ApR5 = in[i].sF_ApR5; 1308 out[i].fF_ApR5 = in[i].fF_ApR5; 1309 1310 out[i].F_ApR6 = in[i].F_ApR6; 1311 out[i].dF_ApR6 = in[i].dF_ApR6; 1312 out[i].sF_ApR6 = in[i].sF_ApR6; 1313 out[i].fF_ApR6 = in[i].fF_ApR6; 1314 1315 out[i].detID = in[i].detID; 1316 out[i].objID = in[i].objID; 1317 out[i].catID = in[i].catID; 1318 out[i].averef = in[i].averef; 1319 } 1320 return (out); 1321 } 1322 1323 Lensing *Lensing_PS1_V5_R1_ToInternal (Lensing_PS1_V5_R1 *in, off_t Nvalues) { 1324 1325 off_t i; 1326 Lensing *out; 1327 1328 ALLOCATE_ZERO (out, Lensing, Nvalues); 1329 1330 for (i = 0; i < Nvalues; i++) { 1331 dvo_lensing_init (&out[i]); 1332 1333 out[i].X11_sm_obj = in[i].X11_sm_obj; 1334 out[i].X12_sm_obj = in[i].X12_sm_obj; 1335 out[i].X22_sm_obj = in[i].X22_sm_obj; 1336 out[i].E1_sm_obj = in[i].E1_sm_obj; 1337 out[i].E2_sm_obj = in[i].E2_sm_obj; 1338 1339 out[i].X11_sh_obj = in[i].X11_sh_obj; 1340 out[i].X12_sh_obj = in[i].X12_sh_obj; 1341 out[i].X22_sh_obj = in[i].X22_sh_obj; 1342 out[i].E1_sh_obj = in[i].E1_sh_obj; 1343 out[i].E2_sh_obj = in[i].E2_sh_obj; 1344 1345 out[i].X11_sm_psf = in[i].X11_sm_psf; 1346 out[i].X12_sm_psf = in[i].X12_sm_psf; 1347 out[i].X22_sm_psf = in[i].X22_sm_psf; 1348 out[i].E1_sm_psf = in[i].E1_sm_psf; 1349 out[i].E2_sm_psf = in[i].E2_sm_psf; 1350 1351 out[i].X11_sh_psf = in[i].X11_sh_psf; 1352 out[i].X12_sh_psf = in[i].X12_sh_psf; 1353 out[i].X22_sh_psf = in[i].X22_sh_psf; 1354 out[i].E1_sh_psf = in[i].E1_sh_psf; 1355 out[i].E2_sh_psf = in[i].E2_sh_psf; 1356 1357 out[i].F_ApR5 = in[i].F_ApR5; 1358 out[i].dF_ApR5 = in[i].dF_ApR5; 1359 out[i].sF_ApR5 = in[i].sF_ApR5; 1360 out[i].fF_ApR5 = in[i].fF_ApR5; 1361 1362 out[i].F_ApR6 = in[i].F_ApR6; 1363 out[i].dF_ApR6 = in[i].dF_ApR6; 1364 out[i].sF_ApR6 = in[i].sF_ApR6; 1365 out[i].fF_ApR6 = in[i].fF_ApR6; 1366 1367 out[i].detID = in[i].detID; 1368 out[i].objID = in[i].objID; 1369 out[i].catID = in[i].catID; 1370 out[i].averef = in[i].averef; 1371 1372 out[i].imageID = in[i].imageID; 1373 } 1374 return (out); 1375 } 1376 1566 -
trunk/Ohana/src/libdvo/src/dvo_tiny_values.c
r37807 r38062 2 2 3 3 void CopyAverageToTiny (AverageTiny *averageT, Average *average) { 4 memset (averageT, 0, sizeof(AverageTiny)); 4 5 averageT[0].R = average[0].R; 5 6 averageT[0].D = average[0].D; … … 14 15 15 16 void CopyMeasureToTiny (MeasureTiny *measureT, Measure *measure) { 17 memset (measureT, 0, sizeof(MeasureTiny)); 16 18 measureT[0].R = measure[0].R; 17 19 measureT[0].D = measure[0].D;
Note:
See TracChangeset
for help on using the changeset viewer.
