Changeset 29556
- Timestamp:
- Oct 25, 2010, 4:29:35 PM (16 years ago)
- Location:
- trunk/ppTranslate/src
- Files:
-
- 3 edited
-
ppMops.h (modified) (3 diffs)
-
ppMopsDetections.c (modified) (10 diffs)
-
ppMopsRead.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ppTranslate/src/ppMops.h
r28623 r29556 13 13 // Configuration data 14 14 typedef struct { 15 psArray *input; // Input filenames16 psString exp_name; // Exposure name17 psS64 exp_id; // Exposure identifier18 psS64 chip_id; // Chip stage identifier19 psS64 cam_id; // Camera stage identifier20 psS64 fake_id; // Fake stage identifier21 psS64 warp_id; // Warp stage identifier22 psS64 diff_id; // Diff stage identifier23 bool positive; // Sense of subtraction, T=positive, F=negative24 float zp, zpErr; // Magnitude zero point and error25 float rmsAstrom; // Astrometric solution RMS26 psString output; // Output filename15 psArray *input; // Input filenames 16 psString exp_name; // Exposure name 17 psS64 exp_id; // Exposure identifier 18 psS64 chip_id; // Chip stage identifier 19 psS64 cam_id; // Camera stage identifier 20 psS64 fake_id; // Fake stage identifier 21 psS64 warp_id; // Warp stage identifier 22 psS64 diff_id; // Diff stage identifier 23 bool positive; // Sense of subtraction, T=positive, F=negative 24 float zp, zpErr; // Magnitude zero point and error 25 float rmsAstrom; // Astrometric solution RMS 26 psString output; // Output filename 27 27 } ppMopsArguments; 28 28 29 29 #if 0 30 #warning "IS THERE ANYTHING TO BE MODIFIED HERE?" 30 31 TTYPE19 = 'PSF_CHISQ' / label for field 19 31 32 TFORM19 = '1E ' / data format of field: 4-byte REAL … … 58 59 59 60 typedef struct { 60 psString raBoresight, decBoresight; // RA,Dec of telescope boresight 61 psString filter; // Filter for exposure 62 float airmass; // Airmass of exposure 63 float exptime; // Exposure time 64 double posangle; // Position angle 65 double alt, az; // Telescope altitude and azimuth 66 double mjd; // Modified Julian Date 67 float seeing; // Seeing of exposure 68 long num; // Number of detections 69 psVector *x, *y; // Image coordinates 70 psVector *ra, *dec; // Sky coordinates 71 psVector *raErr, *decErr; // Error in sky coordinates 72 psVector *mag, *magErr; // Magnitude and associated error 73 psVector *chi2, *dof; // Chi^2 from fitting, with associated degrees of freedom 74 psVector *cr, *extended; // Measures of CR-ness and extendedness 75 psVector *psfMajor, *psfMinor, *psfTheta; // PSF major and minor axes, and position angle 76 psVector *quality, *numPix; // PSF quality factor and number of pixels 77 psVector *xxMoment, *xyMoment, *yyMoment; // Moments 78 psVector *flags; // psphot flags 79 psVector *diffSkyfileId; // Identifier for source image 80 psVector *naxis1, *naxis2; // Size of image 81 psVector *mask; // Mask for detections 82 psVector *nPos; // Number of positive pixels 83 psVector *fPos; // Fraction of positive flux 84 psVector *nRatioBad; // Fraction of positive pixels to negative 85 psVector *nRatioMask; // Fraction of positive pixels to masked 86 psVector *nRatioAll; // Fraction of positive pixels to all 61 psString raBoresight, decBoresight; // RA,Dec of telescope boresight 62 psString filter; // Filter for exposure 63 float airmass; // Airmass of exposure 64 float exptime; // Exposure time 65 double posangle; // Position angle 66 double alt, az; // Telescope altitude and azimuth 67 double mjd; // Modified Julian Date 68 float seeing; // Seeing of exposure 69 long num; // Number of detections 70 psVector *x, *y; // Image coordinates 71 psVector *ra, *dec; // Sky coordinates 72 psVector *raErr, *decErr; // Error in sky coordinates 73 psVector *mag, *magErr; // Magnitude and associated error 74 psVector *chi2, *dof; // Chi^2 from fitting, with associated degrees of freedom 75 psVector *cr, *extended; // Measures of CR-ness and extendedness 76 psVector *psfMajor, *psfMinor, *psfTheta; // PSF major and minor axes, and position angle 77 psVector *quality, *numPix; // PSF quality factor and number of pixels 78 psVector *xxMoment, *xyMoment, *yyMoment; // Moments 79 psVector *flags; // psphot flags 80 psVector *diffSkyfileId; // Identifier for source image 81 psVector *naxis1, *naxis2; // Size of image 82 psVector *mask; // Mask for detections 83 psVector *nPos; // Number of positive pixels 84 psVector *fPos; // Fraction of positive flux 85 psVector *nRatioBad; // Fraction of positive pixels to negative 86 psVector *nRatioMask; // Fraction of positive pixels to masked 87 psVector *nRatioAll; // Fraction of positive pixels to all 88 psVector *psfInstFlux; // PSF fit instrumental magnitude 89 psVector *psfInstFluxSig; // Sigma of PSF instrumental magnitude 90 psVector *apMag; // Magnitude in standard aperture 91 psVector *apMagRadius; // Radius used for aperture mags 92 psVector *apMagRaw; // Magnitude in real aperture 93 psVector *apFlux; // Instrumental flux in standard aperture 94 psVector *apFluxSig; // Aperture flux error 95 psVector *peakFluxAsMag; // Peak flux expressed as magnitude 96 psVector *calPsfMag; // PSF Magnitude using supplied calibration 97 psVector *calPsfMagSig; // Measured scatter of zero point calibration 98 psVector *sky; // Sky level 99 psVector *skySig; // Sigma of sky level 100 psVector *qualityPerfect; // PSF coverage/quality factor (poor) 101 psVector *momentsR1; // First radial moment 102 psVector *momentsRH; // Half radial moment 103 psVector *kronFlux; // Kron Flux (in 2.5 R1) 104 psVector *kronFluxErr; // Kron Flux Error 105 psVector *kronFluxInner; // Kron Flux (in 1.0 R1) 106 psVector *kronFluxOuter; // Kron Flux (in 4.0 R1) 107 psVector *diffRP; // Distance to positive match source 108 psVector *diffSnP; // Signal-to-noise of pos match src 109 psVector *diffRM; // Distance to negative match source 110 psVector *diffSnM; // Signal-to-noise of neg match src 111 psVector *flags2; // psphot flags (group 2) 112 psVector *ippIdet; // IPP detection identifier index 113 psVector *nFrames; // Number of frames overlapping source center 114 psVector *padding; // Padding 87 115 } ppMopsDetections; 88 89 116 90 117 ppMopsDetections *ppMopsDetectionsAlloc(long num); … … 95 122 /// Purge the detections list of masked detections 96 123 bool ppMopsDetectionsPurge(ppMopsDetections *detections); 97 98 124 99 125 /// Read detections -
trunk/ppTranslate/src/ppMopsDetections.c
r28623 r29556 2 2 #include <config.h> 3 3 #endif 4 5 4 #include <stdio.h> 6 5 #include <pslib.h> 7 8 6 #include "ppMops.h" 9 7 … … 43 41 psFree(det->nRatioMask); 44 42 psFree(det->nRatioAll); 45 43 psFree(det->psfInstFlux); 44 psFree(det->psfInstFluxSig); 45 psFree(det->apMag); 46 psFree(det->apMagRadius); 47 psFree(det->apMagRaw); 48 psFree(det->apFlux); 49 psFree(det->apFluxSig); 50 psFree(det->peakFluxAsMag); 51 psFree(det->calPsfMag); 52 psFree(det->calPsfMagSig); 53 psFree(det->sky); 54 psFree(det->skySig); 55 psFree(det->qualityPerfect); 56 psFree(det->momentsR1); 57 psFree(det->momentsRH); 58 psFree(det->kronFlux); 59 psFree(det->kronFluxErr); 60 psFree(det->kronFluxInner); 61 psFree(det->kronFluxOuter); 62 psFree(det->diffRP); 63 psFree(det->diffSnP); 64 psFree(det->diffRM); 65 psFree(det->diffSnM); 66 psFree(det->flags2); 67 psFree(det->ippIdet); 68 psFree(det->nFrames); 69 psFree(det->padding); 46 70 return; 47 71 } … … 51 75 ppMopsDetections *det = psAlloc(sizeof(ppMopsDetections)); // Detections, to return 52 76 psMemSetDeallocator(det, (psFreeFunc)mopsDetectionsFree); 53 54 77 det->raBoresight = NULL; 55 78 det->decBoresight = NULL; … … 93 116 det->nRatioMask = psVectorAllocEmpty(num, PS_TYPE_F32); 94 117 det->nRatioAll = psVectorAllocEmpty(num, PS_TYPE_F32); 95 118 det->psfInstFlux = psVectorAllocEmpty(num, PS_TYPE_F32); 119 det->psfInstFluxSig = psVectorAllocEmpty(num, PS_TYPE_F32); 120 det->apMag = psVectorAllocEmpty(num, PS_TYPE_F32); 121 det->apMagRadius = psVectorAllocEmpty(num, PS_TYPE_F32); 122 det->apMagRaw = psVectorAllocEmpty(num, PS_TYPE_F32); 123 det->apFlux = psVectorAllocEmpty(num, PS_TYPE_F32); 124 det->apFluxSig = psVectorAllocEmpty(num, PS_TYPE_F32); 125 det->peakFluxAsMag = psVectorAllocEmpty(num, PS_TYPE_F32); 126 det->calPsfMag = psVectorAllocEmpty(num, PS_TYPE_F32); 127 det->calPsfMagSig = psVectorAllocEmpty(num, PS_TYPE_F32); 128 det->sky = psVectorAllocEmpty(num, PS_TYPE_F32); 129 det->skySig = psVectorAllocEmpty(num, PS_TYPE_F32); 130 det->qualityPerfect = psVectorAllocEmpty(num, PS_TYPE_F32); 131 det->momentsR1 = psVectorAllocEmpty(num, PS_TYPE_F32); 132 det->momentsRH = psVectorAllocEmpty(num, PS_TYPE_F32); 133 det->kronFlux = psVectorAllocEmpty(num, PS_TYPE_F32); 134 det->kronFluxErr = psVectorAllocEmpty(num, PS_TYPE_F32); 135 det->kronFluxInner = psVectorAllocEmpty(num, PS_TYPE_F32); 136 det->kronFluxOuter = psVectorAllocEmpty(num, PS_TYPE_F32); 137 det->diffRP = psVectorAllocEmpty(num, PS_TYPE_F32); 138 det->diffSnP = psVectorAllocEmpty(num, PS_TYPE_F32); 139 det->diffRM = psVectorAllocEmpty(num, PS_TYPE_F32); 140 det->diffSnM = psVectorAllocEmpty(num, PS_TYPE_F32); 141 det->flags2 = psVectorAllocEmpty(num, PS_TYPE_U32); 142 det->ippIdet = psVectorAllocEmpty(num, PS_TYPE_U32); 143 det->nFrames = psVectorAllocEmpty(num, PS_TYPE_U16); 144 det->padding = psVectorAllocEmpty(num, PS_TYPE_S16); 96 145 return det; 97 146 } 98 99 147 100 148 ppMopsDetections *ppMopsDetectionsRealloc(ppMopsDetections *det, long num) … … 130 178 det->nRatioMask = psVectorRealloc(det->nRatioMask, num); 131 179 det->nRatioAll = psVectorRealloc(det->nRatioAll, num); 132 180 det->psfInstFlux = psVectorRealloc(det->psfInstFlux, num); 181 det->psfInstFluxSig = psVectorRealloc(det->psfInstFluxSig, num); 182 det->apMag = psVectorRealloc(det->apMag, num); 183 det->apMagRadius = psVectorRealloc(det->apMagRadius, num); 184 det->apMagRaw = psVectorRealloc(det->apMagRadius, num); 185 det->apFlux = psVectorRealloc(det->apMagRadius, num); 186 det->apFluxSig = psVectorRealloc(det->apMagRadius, num); 187 det->peakFluxAsMag = psVectorRealloc(det->peakFluxAsMag, num); 188 det->calPsfMag = psVectorRealloc(det->calPsfMag, num); 189 det->calPsfMagSig = psVectorRealloc(det->calPsfMagSig, num); 190 det->sky = psVectorRealloc(det->sky, num); 191 det->skySig = psVectorRealloc(det->skySig, num); 192 det->qualityPerfect = psVectorRealloc(det->qualityPerfect, num); 193 det->momentsR1 = psVectorRealloc(det->momentsR1, num); 194 det->momentsRH = psVectorRealloc(det->momentsRH, num); 195 det->kronFlux = psVectorRealloc(det->kronFlux, num); 196 det->kronFluxErr = psVectorRealloc(det->kronFluxErr, num); 197 det->kronFluxInner = psVectorRealloc(det->kronFluxInner, num); 198 det->kronFluxOuter = psVectorRealloc(det->kronFluxOuter, num); 199 det->diffRP = psVectorRealloc(det->diffRP, num); 200 det->diffSnP = psVectorRealloc(det->diffSnP, num); 201 det->diffRM = psVectorRealloc(det->diffRM, num); 202 det->diffSnM = psVectorRealloc(det->diffSnM, num); 203 det->flags2 = psVectorRealloc(det->flags2, num); 204 det->ippIdet = psVectorRealloc(det->ippIdet, num); 205 det->nFrames = psVectorRealloc(det->nFrames, num); 206 det->padding = psVectorRealloc(det->padding, num); 133 207 return det; 134 208 } 135 136 209 137 210 bool ppMopsDetectionsAdd(ppMopsDetections *det, float x, float y, double ra, double dec, … … 141 214 float xxMoment, float xyMoment, float yyMoment, 142 215 psU32 flags, psS64 diffSkyfileId, int naxis1, int naxis2, 143 int nPos, float fPos, float nRatioBad, float nRatioMask, float nRatioAll) 216 int nPos, float fPos, float nRatioBad, float nRatioMask, float nRatioAll, 217 float psfInstFlux, float psfInstFluxSig, 218 float apMag, float apMagRadius, float apMagRaw, float apFlux, float apFluxSig, 219 float peakFluxAsMag, float calPsfMag, float calPsfMagSig, 220 float sky, float skySig, float qualityPerfect, 221 float momentsR1, float momentsRH, 222 float kronFlux, float kronFluxErr, float kronFluxInner, float kronFluxOuter, 223 float diffRP, float diffSnP, float diffRM, float diffSnM, 224 psU32 flags2, psU32 ippIdet, psU16 nFrames, psS16 padding) 144 225 { 145 226 psVectorAppend(det->x, x); … … 173 254 psVectorAppend(det->nRatioMask, nRatioMask); 174 255 psVectorAppend(det->nRatioAll, nRatioAll); 175 256 psVectorAppend(det->psfInstFlux, psfInstFlux); 257 psVectorAppend(det->psfInstFluxSig, psfInstFluxSig); 258 psVectorAppend(det->apMag, apMag); 259 psVectorAppend(det->apMagRadius, apMagRadius); 260 psVectorAppend(det->apMagRaw, apMagRaw); 261 psVectorAppend(det->apFlux, apFlux); 262 psVectorAppend(det->apFluxSig, apFluxSig); 263 psVectorAppend(det->peakFluxAsMag, peakFluxAsMag); 264 psVectorAppend(det->calPsfMag, calPsfMag); 265 psVectorAppend(det->calPsfMagSig, calPsfMagSig); 266 psVectorAppend(det->sky, sky); 267 psVectorAppend(det->skySig, skySig); 268 psVectorAppend(det->qualityPerfect, qualityPerfect); 269 psVectorAppend(det->momentsR1, momentsR1); 270 psVectorAppend(det->momentsRH, momentsRH); 271 psVectorAppend(det->kronFlux, kronFlux); 272 psVectorAppend(det->kronFluxErr, kronFluxErr); 273 psVectorAppend(det->kronFluxInner, kronFluxInner); 274 psVectorAppend(det->kronFluxOuter, kronFluxOuter); 275 psVectorAppend(det->diffRP, diffRP); 276 psVectorAppend(det->diffSnP, diffSnP); 277 psVectorAppend(det->diffRM, diffRM); 278 psVectorAppend(det->diffSnM, diffSnM); 279 psVectorAppend(det->flags2, flags2); 280 psVectorAppend(det->ippIdet, ippIdet); 281 psVectorAppend(det->nFrames, nFrames); 282 psVectorAppend(det->padding, padding); 176 283 return true; 177 284 } 178 179 285 180 286 bool ppMopsDetectionsCopySingle(ppMopsDetections *target, const ppMopsDetections *source, long index) … … 210 316 psVectorAppend(target->nRatioMask, source->nRatioMask->data.F32[index]); 211 317 psVectorAppend(target->nRatioAll, source->nRatioAll->data.F32[index]); 318 psVectorAppend(target->psfInstFlux, source->psfInstFlux->data.F32[index]); 319 psVectorAppend(target->psfInstFluxSig, source->psfInstFluxSig->data.F32[index]); 320 psVectorAppend(target->apMag, source->apMag->data.F32[index]); 321 psVectorAppend(target->apMagRadius, source->apMagRadius->data.F32[index]); 322 psVectorAppend(target->apMagRaw, source->apMagRaw->data.F32[index]); 323 psVectorAppend(target->apFlux, source->apFlux->data.F32[index]); 324 psVectorAppend(target->apFluxSig, source->apFluxSig->data.F32[index]); 325 psVectorAppend(target->peakFluxAsMag, source->peakFluxAsMag->data.F32[index]); 326 psVectorAppend(target->calPsfMag, source->calPsfMag->data.F32[index]); 327 psVectorAppend(target->calPsfMagSig, source->calPsfMagSig->data.F32[index]); 328 psVectorAppend(target->sky, source->sky->data.F32[index]); 329 psVectorAppend(target->skySig, source->skySig->data.F32[index]); 330 psVectorAppend(target->qualityPerfect, source->qualityPerfect->data.F32[index]); 331 psVectorAppend(target->momentsR1, source->momentsR1->data.F32[index]); 332 psVectorAppend(target->momentsRH, source->momentsRH->data.F32[index]); 333 psVectorAppend(target->kronFlux, source->kronFlux->data.F32[index]); 334 psVectorAppend(target->kronFluxErr, source->kronFluxErr->data.F32[index]); 335 psVectorAppend(target->kronFluxInner, source->kronFluxInner->data.F32[index]); 336 psVectorAppend(target->kronFluxOuter, source->kronFluxOuter->data.F32[index]); 337 psVectorAppend(target->diffRP, source->diffRP->data.F32[index]); 338 psVectorAppend(target->diffSnP, source->diffSnP->data.F32[index]); 339 psVectorAppend(target->diffRM, source->diffRM->data.F32[index]); 340 psVectorAppend(target->diffSnM, source->diffSnM->data.F32[index]); 341 psVectorAppend(target->flags2, source->flags2->data.U32[index]); 342 psVectorAppend(target->ippIdet, source->ippIdet->data.U32[index]); 343 psVectorAppend(target->nFrames, source->nFrames->data.U16[index]); 344 psVectorAppend(target->padding, source->padding->data.S16[index]); 212 345 213 346 target->num++; … … 257 390 det->nRatioMask->data.F32[num] = det->nRatioMask->data.F32[i]; 258 391 det->nRatioAll->data.F32[num] = det->nRatioAll->data.F32[i]; 392 det->psfInstFlux->data.F32[num] = det->psfInstFlux->data.F32[i]; 393 det->psfInstFluxSig->data.F32[num] = det->psfInstFluxSig->data.F32[i]; 394 det->apMag->data.F32[num] = det->apMag->data.F32[i]; 395 det->apMagRadius->data.F32[num] = det->apMagRadius->data.F32[i]; 396 det->apMagRaw->data.F32[num] = det->apMagRaw->data.F32[i]; 397 det->apFlux->data.F32[num] = det->apFlux->data.F32[i]; 398 det->apFluxSig->data.F32[num] = det->apFluxSig->data.F32[i]; 399 det->peakFluxAsMag->data.F32[num] = det->peakFluxAsMag->data.F32[i]; 400 det->calPsfMag->data.F32[num] = det->calPsfMag->data.F32[i]; 401 det->calPsfMagSig->data.F32[num] = det->calPsfMagSig->data.F32[i]; 402 det->sky->data.F32[num] = det->sky->data.F32[i]; 403 det->skySig->data.F32[num] = det->skySig->data.F32[i]; 404 det->qualityPerfect->data.F32[num] = det->qualityPerfect->data.F32[i]; 405 det->momentsR1->data.F32[num] = det->momentsR1->data.F32[i]; 406 det->momentsRH->data.F32[num] = det->momentsRH->data.F32[i]; 407 det->kronFlux->data.F32[num] = det->kronFlux->data.F32[i]; 408 det->kronFluxErr->data.F32[num] = det->kronFluxErr->data.F32[i]; 409 det->kronFluxInner->data.F32[num] = det->kronFluxInner->data.F32[i]; 410 det->kronFluxOuter->data.F32[num] = det->kronFluxOuter->data.F32[i]; 411 det->diffRP->data.F32[num] = det->diffRP->data.F32[i]; 412 det->diffSnP->data.F32[num] = det->diffSnP->data.F32[i]; 413 det->diffRM->data.F32[num] = det->diffRM->data.F32[i]; 414 det->diffSnM->data.F32[num] = det->diffSnM->data.F32[i]; 415 det->flags2->data.U32[num] = det->flags2->data.U32[i]; 416 det->ippIdet->data.U32[num] = det->ippIdet->data.U32[i]; 417 det->nFrames->data.U16[num] = det->nFrames->data.U16[i]; 418 det->padding->data.S16[num] = det->padding->data.S16[i]; 259 419 num++; 260 420 } … … 291 451 det->nRatioMask->n = num; 292 452 det->nRatioAll->n = num; 293 453 det->psfInstFlux->n = num; 454 det->psfInstFluxSig->n = num; 455 det->apMag->n = num; 456 det->apMagRadius->n = num; 457 det->apMagRaw->n = num; 458 det->apFlux->n = num; 459 det->apFluxSig->n = num; 460 det->peakFluxAsMag->n = num; 461 det->calPsfMag->n = num; 462 det->calPsfMagSig->n = num; 463 det->sky->n = num; 464 det->skySig->n = num; 465 det->qualityPerfect->n = num; 466 det->momentsR1->n = num; 467 det->momentsRH->n = num; 468 det->kronFlux->n = num; 469 det->kronFluxErr->n = num; 470 det->kronFluxInner->n = num; 471 det->kronFluxOuter->n = num; 472 det->diffRP->n = num; 473 det->diffSnP->n = num; 474 det->diffRM->n = num; 475 det->diffSnM->n = num; 476 det->flags2->n = num; 477 det->ippIdet->n = num; 478 det->nFrames->n = num; 479 det->padding->n = num; 294 480 return true; 295 481 } 296 -
trunk/ppTranslate/src/ppMopsRead.c
r28623 r29556 116 116 det->nRatioAll->data.F32[numGood] = psMetadataLookupF32(NULL, row, "DIFF_NRATIO_ALL"); 117 117 118 //Additions of 2010-10-25 119 det->psfInstFlux->data.F32[numGood] = psMetadataLookupS32(NULL, row, "PSF_INST_FLUX"); 120 det->psfInstFluxSig->data.F32[numGood] = psMetadataLookupS32(NULL, row, "PSF_INST_FLUX_SIG"); 121 det->apMag->data.F32[numGood] = psMetadataLookupS32(NULL, row, "AP_MAG"); 122 det->apMagRaw->data.F32[numGood] = psMetadataLookupS32(NULL, row, "AP_MAG_RAW"); 123 det->apMagRadius->data.F32[numGood] = psMetadataLookupS32(NULL, row, "AP_MAG_RADIUS"); 124 det->apFlux->data.F32[numGood] = psMetadataLookupS32(NULL, row, "AP_FLUX"); 125 det->apFluxSig->data.F32[numGood] = psMetadataLookupS32(NULL, row, "AP_FLUX_SIG"); 126 det->peakFluxAsMag->data.F32[numGood] = psMetadataLookupS32(NULL, row, "PEAK_FLUX_AS_MAG"); 127 det->calPsfMag->data.F32[numGood] = psMetadataLookupS32(NULL, row, "CAL_PSF_MAG"); 128 det->calPsfMagSig->data.F32[numGood] = psMetadataLookupS32(NULL, row, "CAL_PSF_MAG_SIG"); 129 det->sky->data.F32[numGood] = psMetadataLookupS32(NULL, row, "SKY"); 130 det->skySig->data.F32[numGood] = psMetadataLookupS32(NULL, row, "SKY_SIGMA"); 131 det->qualityPerfect->data.F32[numGood] = psMetadataLookupF32(NULL, row, "PSF_QF_PERFECT"); 132 det->momentsR1->data.F32[numGood] = psMetadataLookupF32(NULL, row, "MOMENTS_R1"); 133 det->momentsRH->data.F32[numGood] = psMetadataLookupF32(NULL, row, "MOMENTS_RH"); 134 det->kronFlux->data.F32[numGood] = psMetadataLookupF32(NULL, row, "KRON_FLUX"); 135 det->kronFluxErr->data.F32[numGood] = psMetadataLookupF32(NULL, row, "KRON_FLUX_ERR"); 136 det->kronFluxInner->data.F32[numGood] = psMetadataLookupF32(NULL, row, "KRON_FLUX_INNER"); 137 det->kronFluxOuter->data.F32[numGood] = psMetadataLookupF32(NULL, row, "KRON_FLUX_OUTER"); 138 det->diffRP->data.F32[numGood] = psMetadataLookupF32(NULL, row, "DIFF_R_P"); 139 det->diffSnP->data.F32[numGood] = psMetadataLookupF32(NULL, row, "DIFF_SN_P"); 140 det->diffRM->data.F32[numGood] = psMetadataLookupF32(NULL, row, "DIFF_R_M"); 141 det->diffSnM->data.F32[numGood] = psMetadataLookupF32(NULL, row, "DIFF_SN_M"); 142 det->flags2->data.U32[numGood] = psMetadataLookupU32(NULL, row, "FLAGS2"); 143 det->ippIdet->data.U32[numGood] = psMetadataLookupU32(NULL, row, "IPP_IDET"); 144 det->nFrames->data.U16[numGood] = psMetadataLookupU16(NULL, row, "N_FRAMES"); 145 det->padding->data.S16[numGood] = psMetadataLookupS16(NULL, row, "PADDING"); 146 118 147 // Calculate error in RA, Dec 119 double xErr = psMetadataLookupF64(NULL, row, "X_PSF_SIG"); 120 double yErr = psMetadataLookupF64(NULL, row, "Y_PSF_SIG"); 121 double scale = psMetadataLookupF64(NULL, row, "PLTSCALE"); 122 double angle = psMetadataLookupF64(NULL, row, "POSANGLE"); 148 double xErr = psMetadataLookupF64(NULL, row, "X_PSF_SIG"); //SC: Warning! Promotion of F32 149 double yErr = psMetadataLookupF64(NULL, row, "Y_PSF_SIG"); //SC: Warning! Promotion of F32 150 double scale = psMetadataLookupF64(NULL, row, "PLTSCALE"); //SC: Warning! Promotion of F32 151 double angle = psMetadataLookupF64(NULL, row, "POSANGLE"); //SC: Warning! Promotion of F32 123 152 124 153 if (!isfinite(det->x->data.F32[numGood]) || !isfinite(det->y->data.F32[numGood]) || … … 181 210 det->nRatioMask->n = numGood; 182 211 det->nRatioAll->n = numGood; 212 det->psfInstFlux->n = numGood; 213 det->psfInstFluxSig->n = numGood; 214 det->apMag->n = numGood; 215 det->apMagRaw->n = numGood; 216 det->apMagRadius->n = numGood; 217 det->apFlux->n = numGood; 218 det->apFluxSig->n = numGood; 219 det->peakFluxAsMag->n = numGood; 220 det->calPsfMag->n = numGood; 221 det->calPsfMagSig->n = numGood; 222 det->sky->n = numGood; 223 det->skySig->n = numGood; 224 det->qualityPerfect->n = numGood; 225 det->momentsR1->n = numGood; 226 det->momentsRH->n = numGood; 227 det->kronFlux->n = numGood; 228 det->kronFluxErr->n = numGood; 229 det->kronFluxInner->n = numGood; 230 det->kronFluxOuter->n = numGood; 231 det->diffRP->n = numGood; 232 det->diffSnP->n = numGood; 233 det->diffRM->n = numGood; 234 det->diffSnM->n = numGood; 235 det->flags2->n = numGood; 236 det->ippIdet->n = numGood; 237 det->nFrames->n = numGood; 238 det->padding->n = numGood; 183 239 184 240 det->num = numGood;
Note:
See TracChangeset
for help on using the changeset viewer.
