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