Changeset 9615 for trunk/psModules/src/detrend/pmFringeStats.c
- Timestamp:
- Oct 17, 2006, 12:03:32 PM (20 years ago)
- File:
-
- 1 edited
-
trunk/psModules/src/detrend/pmFringeStats.c (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/detrend/pmFringeStats.c
r9541 r9615 1 /** @file pmFringeStats.c2 *3 * @author Eugene Magnier, IfA4 *5 * @version $Revision: 1.20 $ $Name: not supported by cvs2svn $6 * @date $Date: 2006-10-13 22:11:02 $7 *8 * Copyright 2004 IfA9 */10 11 1 #ifdef HAVE_CONFIG_H 12 2 #include <config.h> … … 130 120 // We need to write: 131 121 // Scalars: dX, dY, nX, nY 132 // Vectors: x, y 122 // Vectors: x, y, mask 133 123 134 124 psMetadata *scalars = psMetadataAlloc(); // Metadata to hold the scalars; will be the header … … 149 139 psMetadataAddF32(row, PS_LIST_TAIL, "x", PS_META_REPLACE, "Fringe position in x", x->data.F32[i]); 150 140 psMetadataAddF32(row, PS_LIST_TAIL, "y", PS_META_REPLACE, "Fringe position in y", y->data.F32[i]); 141 psU8 maskValue = 0; 142 if (mask && mask->data.U8[i]) { 143 maskValue = 0xff; 144 } 145 psMetadataAddU8(row, PS_LIST_TAIL, "mask", PS_META_REPLACE, "Mask", maskValue); 151 146 table->data[i] = row; 152 147 } … … 202 197 psFree(headerCopy); 203 198 204 // Now the vectors: x, y 199 // Now the vectors: x, y, mask 205 200 psArray *table = psFitsReadTable(fits); // The table 206 201 long numRows = table->n; // Number of rows … … 209 204 psVector *x = psVectorAlloc(numRows, PS_TYPE_F32); // x position 210 205 psVector *y = psVectorAlloc(numRows, PS_TYPE_F32); // y position 211 x->n = y->n = numRows; 206 psVector *mask = psVectorAlloc(numRows, PS_TYPE_U8); // mask 207 x->n = y->n = mask->n = numRows; 212 208 regions->x = x; 213 209 regions->y = y; 210 regions->mask = mask; 214 211 215 212 #define READ_REGIONS_ROW(VECTOR, TYPE, NAME, DESCRIPTION) \ … … 227 224 READ_REGIONS_ROW(x, F32, "x", "x position"); 228 225 READ_REGIONS_ROW(y, F32, "y", "y position"); 226 READ_REGIONS_ROW(mask, U8, "mask", "mask"); 229 227 } 230 228 psFree(table); … … 260 258 } 261 259 262 pmFringeStats *pmFringeStatsMeasure(pmFringeRegions *fringe, pmReadout *readout, psMaskType maskVal)260 pmFringeStats *pmFringeStatsMeasure(pmFringeRegions *fringe, const pmReadout *readout, psMaskType maskVal) 263 261 { 264 262 PS_ASSERT_PTR_NON_NULL(fringe, NULL); … … 762 760 scaleMeasure(scale, science, fringes); // The scales 763 761 psTrace("psModules.detrend", 1, "Fringe scales after iteration %d:\n", iter); 764 psTrace("psModules.detrend", 1, "Background: %f %f\n", scale->coeff->data.F32[0], scale->coeffErr->data.F32[0]); 762 psTrace("psModules.detrend", 1, "Background: %f %f\n", scale->coeff->data.F32[0], 763 scale->coeffErr->data.F32[0]); 765 764 for (int i = 0; i < scale->nFringeFrames; i++) { 766 765 psTrace("psModules.detrend", 1, "%d: %f %f\n", i, scale->coeff->data.F32[i + 1], … … 771 770 iterClip = clipRegions(diff, mask, rej); // Number clipped 772 771 numClipped += iterClip; 773 psTrace("psModules.detrend", 9, "Clipped: %d\tFrac: %f\n", iterClip, (float)numClipped/(float)numRegions); 772 psTrace("psModules.detrend", 9, "Clipped: %d\tFrac: %f\n", iterClip, 773 (float)numClipped/(float)numRegions); 774 774 } while (iterClip > 0 && iter < nIter && (float)numClipped/(float)numRegions <= 1.0 - keepFrac); 775 775 psFree(diff);
Note:
See TracChangeset
for help on using the changeset viewer.
