Changeset 25187
- Timestamp:
- Aug 25, 2009, 1:30:21 PM (17 years ago)
- Location:
- branches/pap_mops/ppMops/src
- Files:
-
- 2 edited
-
ppMopsDetections.c (modified) (1 diff)
-
ppMopsRead.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/pap_mops/ppMops/src/ppMopsDetections.c
r25181 r25187 49 49 det->mjd = NAN; 50 50 det->seeing = NAN; 51 det->num = num;52 det->x = psVectorAlloc (num, PS_TYPE_F32);53 det->y = psVectorAlloc (num, PS_TYPE_F32);54 det->ra = psVectorAlloc (num, PS_TYPE_F64);55 det->dec = psVectorAlloc (num, PS_TYPE_F64);56 det->raErr = psVectorAlloc (num, PS_TYPE_F64);57 det->decErr = psVectorAlloc (num, PS_TYPE_F64);58 det->mag = psVectorAlloc (num, PS_TYPE_F32);59 det->magErr = psVectorAlloc (num, PS_TYPE_F32);60 det->extended = psVectorAlloc (num, PS_TYPE_F32);61 det->angle = psVectorAlloc (num, PS_TYPE_F32);62 det->angleErr = psVectorAlloc (num, PS_TYPE_F32);63 det->length = psVectorAlloc (num, PS_TYPE_F32);64 det->lengthErr = psVectorAlloc (num, PS_TYPE_F32);65 det->flags = psVectorAlloc (num, PS_TYPE_U32);66 det->diffSkyfileId = psVectorAlloc (num, PS_TYPE_S64);67 det->naxis1 = psVectorAlloc (num, PS_TYPE_S32);68 det->naxis2 = psVectorAlloc (num, PS_TYPE_S32);69 det->mask = psVectorAlloc (num, PS_TYPE_U8);51 det->num = 0; 52 det->x = psVectorAllocEmpty(num, PS_TYPE_F32); 53 det->y = psVectorAllocEmpty(num, PS_TYPE_F32); 54 det->ra = psVectorAllocEmpty(num, PS_TYPE_F64); 55 det->dec = psVectorAllocEmpty(num, PS_TYPE_F64); 56 det->raErr = psVectorAllocEmpty(num, PS_TYPE_F64); 57 det->decErr = psVectorAllocEmpty(num, PS_TYPE_F64); 58 det->mag = psVectorAllocEmpty(num, PS_TYPE_F32); 59 det->magErr = psVectorAllocEmpty(num, PS_TYPE_F32); 60 det->extended = psVectorAllocEmpty(num, PS_TYPE_F32); 61 det->angle = psVectorAllocEmpty(num, PS_TYPE_F32); 62 det->angleErr = psVectorAllocEmpty(num, PS_TYPE_F32); 63 det->length = psVectorAllocEmpty(num, PS_TYPE_F32); 64 det->lengthErr = psVectorAllocEmpty(num, PS_TYPE_F32); 65 det->flags = psVectorAllocEmpty(num, PS_TYPE_U32); 66 det->diffSkyfileId = psVectorAllocEmpty(num, PS_TYPE_S64); 67 det->naxis1 = psVectorAllocEmpty(num, PS_TYPE_S32); 68 det->naxis2 = psVectorAllocEmpty(num, PS_TYPE_S32); 69 det->mask = psVectorAllocEmpty(num, PS_TYPE_U8); 70 70 71 71 return det; -
branches/pap_mops/ppMops/src/ppMopsRead.c
r25186 r25187 73 73 74 74 double plateScale = 0.0; // Plate scale 75 long numGood = 0; // Number of good rows 75 76 for (long j = 0; j < size; j++) { 76 77 psMetadata *row = table->data[j]; // Row of interest 77 det->x->data.F32[j] = psMetadataLookupF32(NULL, row, "X_PSF"); 78 det->y->data.F32[j] = psMetadataLookupF32(NULL, row, "Y_PSF"); 79 det->ra->data.F64[j] = DEG_TO_RAD(psMetadataLookupF64(NULL, row, "RA_PSF")); 80 det->dec->data.F64[j] = DEG_TO_RAD(psMetadataLookupF64(NULL, row, "DEC_PSF")); 81 det->mag->data.F32[j] = psMetadataLookupF32(NULL, row, "PSF_INST_MAG"); 82 det->magErr->data.F32[j] = psMetadataLookupF32(NULL, row, "PSF_INST_MAG_SIG"); 83 det->extended->data.F32[j] = psMetadataLookupF32(NULL, row, "EXT_NSIGMA"); 84 det->angle->data.F32[j] = 0.0; 85 det->angleErr->data.F32[j] = 0.0; 86 det->length->data.F32[j] = 0.0; 87 det->lengthErr->data.F32[j] = 0.0; 88 det->flags->data.U32[j] = psMetadataLookupU32(NULL, row, "FLAGS"); 89 det->diffSkyfileId->data.F32[j] = diffSkyfileId; 90 det->naxis1->data.S32[j] = naxis1; 91 det->naxis2->data.S32[j] = naxis2; 92 det->mask->data.U8[j] = 0; 78 79 psU32 flags = psMetadataLookupU32(NULL, row, "FLAGS"); 80 if (flags & SOURCE_MASK) { 81 continue; 82 } 83 84 det->x->data.F32[numGood] = psMetadataLookupF32(NULL, row, "X_PSF"); 85 det->y->data.F32[numGood] = psMetadataLookupF32(NULL, row, "Y_PSF"); 86 det->ra->data.F64[numGood] = DEG_TO_RAD(psMetadataLookupF64(NULL, row, "RA_PSF")); 87 det->dec->data.F64[numGood] = DEG_TO_RAD(psMetadataLookupF64(NULL, row, "DEC_PSF")); 88 det->mag->data.F32[numGood] = psMetadataLookupF32(NULL, row, "PSF_INST_MAG"); 89 det->magErr->data.F32[numGood] = psMetadataLookupF32(NULL, row, "PSF_INST_MAG_SIG"); 90 det->extended->data.F32[numGood] = psMetadataLookupF32(NULL, row, "EXT_NSIGMA"); 91 det->angle->data.F32[numGood] = 0.0; 92 det->angleErr->data.F32[numGood] = 0.0; 93 det->length->data.F32[numGood] = 0.0; 94 det->lengthErr->data.F32[numGood] = 0.0; 95 det->flags->data.U32[numGood] = psMetadataLookupU32(NULL, row, "FLAGS"); 96 det->diffSkyfileId->data.F32[numGood] = diffSkyfileId; 97 det->naxis1->data.S32[numGood] = naxis1; 98 det->naxis2->data.S32[numGood] = naxis2; 93 99 94 100 // Calculate error in RA, Dec … … 98 104 double angle = psMetadataLookupF64(NULL, row, "POSANGLE"); 99 105 106 if (!isfinite(det->x->data.F32[numGood]) || !isfinite(det->y->data.F32[numGood]) || 107 !isfinite(det->ra->data.F64[numGood]) || !isfinite(det->dec->data.F64[numGood]) || 108 !isfinite(det->mag->data.F32[numGood]) || !isfinite(det->magErr->data.F32[numGood]) || 109 !isfinite(xErr) || !isfinite(yErr) || !isfinite(scale) || !isfinite(angle) || 110 (det->flags->data.U32[numGood] & SOURCE_MASK)) { 111 continue; 112 } 113 100 114 // XXX Not at all sure I've got the angles around the right way here... 101 115 double cosAngle = cos(angle), sinAngle = sin(angle); … … 103 117 double xErr2 = PS_SQR(xErr), yErr2 = PS_SQR(yErr); 104 118 double errScale = scale / 3600.0; 105 det->raErr->data.F64[ j] = errScale * sqrt(cosAngle2 * xErr2 + sinAngle2 * yErr2);106 det->decErr->data.F64[ j] = errScale * sqrt(sinAngle2 * xErr2 + cosAngle2 * yErr2);119 det->raErr->data.F64[numGood] = errScale * sqrt(cosAngle2 * xErr2 + sinAngle2 * yErr2); 120 det->decErr->data.F64[numGood] = errScale * sqrt(sinAngle2 * xErr2 + cosAngle2 * yErr2); 107 121 122 det->mask->data.U8[numGood] = 0; 108 123 plateScale += scale; 124 numGood++; 109 125 } 110 det->seeing *= plateScale / size; 126 det->seeing *= plateScale / numGood; 127 128 det->x->n = numGood; 129 det->y->n = numGood; 130 det->ra->n = numGood; 131 det->dec->n = numGood; 132 det->raErr->n = numGood; 133 det->decErr->n = numGood; 134 det->mag->n = numGood; 135 det->magErr->n = numGood; 136 det->extended->n = numGood; 137 det->angle->n = numGood; 138 det->angleErr->n = numGood; 139 det->length->n = numGood; 140 det->lengthErr->n = numGood; 141 det->flags->n = numGood; 142 det->diffSkyfileId->n = numGood; 143 det->naxis1->n = numGood; 144 det->naxis2->n = numGood; 145 det->mask->n = numGood; 146 147 det->num = numGood; 111 148 112 149 if (isfinite(args->zp)) {
Note:
See TracChangeset
for help on using the changeset viewer.
