Changeset 25181 for branches/pap_mops/ppMops/src/ppMopsDetections.c
- Timestamp:
- Aug 24, 2009, 6:00:00 PM (17 years ago)
- File:
-
- 1 edited
-
branches/pap_mops/ppMops/src/ppMopsDetections.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/pap_mops/ppMops/src/ppMopsDetections.c
r25162 r25181 28 28 psFree(det->flags); 29 29 psFree(det->diffSkyfileId); 30 psFree(det->naxis1); 31 psFree(det->naxis2); 32 psFree(det->mask); 30 33 return; 31 34 } … … 56 59 det->magErr = psVectorAlloc(num, PS_TYPE_F32); 57 60 det->extended = psVectorAlloc(num, PS_TYPE_F32); 58 det->angle = psVectorAlloc(num, PS_TYPE_F 64);59 det->angleErr = psVectorAlloc(num, PS_TYPE_F 64);61 det->angle = psVectorAlloc(num, PS_TYPE_F32); 62 det->angleErr = psVectorAlloc(num, PS_TYPE_F32); 60 63 det->length = psVectorAlloc(num, PS_TYPE_F32); 61 64 det->lengthErr = psVectorAlloc(num, PS_TYPE_F32); 62 65 det->flags = psVectorAlloc(num, PS_TYPE_U32); 63 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); 64 70 65 71 return det; … … 67 73 68 74 75 ppMopsDetections *ppMopsDetectionsRealloc(ppMopsDetections *det, long num) 76 { 77 det->x = psVectorRealloc(det->x, num); 78 det->y = psVectorRealloc(det->y, num); 79 det->ra = psVectorRealloc(det->ra, num); 80 det->dec = psVectorRealloc(det->dec, num); 81 det->raErr = psVectorRealloc(det->raErr, num); 82 det->decErr = psVectorRealloc(det->decErr, num); 83 det->mag = psVectorRealloc(det->mag, num); 84 det->magErr = psVectorRealloc(det->magErr, num); 85 det->extended = psVectorRealloc(det->extended, num); 86 det->angle = psVectorRealloc(det->angle, num); 87 det->angleErr = psVectorRealloc(det->angleErr, num); 88 det->length = psVectorRealloc(det->length, num); 89 det->lengthErr = psVectorRealloc(det->lengthErr, num); 90 det->flags = psVectorRealloc(det->flags, num); 91 det->diffSkyfileId = psVectorRealloc(det->diffSkyfileId, num); 92 det->naxis1 = psVectorRealloc(det->naxis1, num); 93 det->naxis2 = psVectorRealloc(det->naxis2, num); 94 det->mask = psVectorRealloc(det->mask, num); 95 96 return det; 97 } 98 99 100 bool ppMopsDetectionsAdd(ppMopsDetections *det, float x, float y, double ra, double dec, 101 double raErr, double decErr, float mag, float magErr, float extended, 102 float angle, float angleErr, float length, float lengthErr, 103 psU32 flags, psS64 diffSkyfileId, int naxis1, int naxis2) 104 { 105 psVectorAppend(det->x, x); 106 psVectorAppend(det->y, y); 107 psVectorAppend(det->ra, ra); 108 psVectorAppend(det->dec, dec); 109 psVectorAppend(det->raErr, raErr); 110 psVectorAppend(det->decErr, decErr); 111 psVectorAppend(det->mag, mag); 112 psVectorAppend(det->magErr, magErr); 113 psVectorAppend(det->extended, extended); 114 psVectorAppend(det->angle, angle); 115 psVectorAppend(det->angleErr, angleErr); 116 psVectorAppend(det->length, length); 117 psVectorAppend(det->lengthErr, lengthErr); 118 psVectorAppend(det->flags, flags); 119 psVectorAppend(det->diffSkyfileId, diffSkyfileId); 120 psVectorAppend(det->naxis1, naxis1); 121 psVectorAppend(det->naxis2, naxis2); 122 psVectorAppend(det->mask, 0); 123 return true; 124 } 125 126 127 bool ppMopsDetectionsCopySingle(ppMopsDetections *target, const ppMopsDetections *source, long index) 128 { 129 psVectorAppend(target->x, source->x->data.F32[index]); 130 psVectorAppend(target->y, source->y->data.F32[index]); 131 psVectorAppend(target->ra, source->ra->data.F64[index]); 132 psVectorAppend(target->dec, source->dec->data.F64[index]); 133 psVectorAppend(target->raErr, source->raErr->data.F64[index]); 134 psVectorAppend(target->decErr, source->decErr->data.F64[index]); 135 psVectorAppend(target->mag, source->mag->data.F32[index]); 136 psVectorAppend(target->magErr, source->magErr->data.F32[index]); 137 psVectorAppend(target->extended, source->extended->data.F32[index]); 138 psVectorAppend(target->angle, source->angle->data.F32[index]); 139 psVectorAppend(target->angleErr, source->angleErr->data.F32[index]); 140 psVectorAppend(target->length, source->length->data.F32[index]); 141 psVectorAppend(target->lengthErr, source->lengthErr->data.F32[index]); 142 psVectorAppend(target->flags, source->flags->data.U32[index]); 143 psVectorAppend(target->diffSkyfileId, source->diffSkyfileId->data.S64[index]); 144 psVectorAppend(target->naxis1, source->naxis1->data.S32[index]); 145 psVectorAppend(target->naxis2, source->naxis2->data.S32[index]); 146 psVectorAppend(target->mask, 0); 147 return true; 148 } 149 150 151 bool ppMopsDetectionsPurge(ppMopsDetections *det) 152 { 153 long num = 0; 154 for (long i = 0; i < det->num; i++) { 155 if (!det->mask->data.U8[i]) { 156 if (i == num) { 157 // No need to copy 158 num++; 159 continue; 160 } 161 det->x->data.F32[num] = det->x->data.F32[i]; 162 det->y->data.F32[num] = det->y->data.F32[i]; 163 det->ra->data.F64[num] = det->ra->data.F64[i]; 164 det->dec->data.F64[num] = det->dec->data.F64[i]; 165 det->raErr->data.F64[num] = det->raErr->data.F64[i]; 166 det->decErr->data.F64[num] = det->decErr->data.F64[i]; 167 det->mag->data.F32[num] = det->mag->data.F32[i]; 168 det->magErr->data.F32[num] = det->magErr->data.F32[i]; 169 det->extended->data.F32[num] = det->extended->data.F32[i]; 170 det->angle->data.F32[num] = det->angle->data.F32[i]; 171 det->angleErr->data.F32[num] = det->angleErr->data.F32[i]; 172 det->length->data.F32[num] = det->length->data.F32[i]; 173 det->lengthErr->data.F32[num] = det->lengthErr->data.F32[i]; 174 det->flags->data.U32[num] = det->flags->data.U32[i]; 175 det->diffSkyfileId->data.S64[num] = det->diffSkyfileId->data.S64[i]; 176 det->naxis1->data.S32[num] = det->naxis1->data.S32[i]; 177 det->naxis2->data.S32[num] = det->naxis2->data.S32[i]; 178 det->mask->data.U8[num] = 0; 179 num++; 180 } 181 } 182 det->x->n = num; 183 det->y->n = num; 184 det->ra->n = num; 185 det->dec->n = num; 186 det->raErr->n = num; 187 det->decErr->n = num; 188 det->mag->n = num; 189 det->magErr->n = num; 190 det->extended->n = num; 191 det->angle->n = num; 192 det->angleErr->n = num; 193 det->length->n = num; 194 det->lengthErr->n = num; 195 det->flags->n = num; 196 det->diffSkyfileId->n = num; 197 det->naxis1->n = num; 198 det->naxis2->n = num; 199 det->mask->n = num; 200 det->num = num; 201 return true; 202 } 203
Note:
See TracChangeset
for help on using the changeset viewer.
