Changeset 16413
- Timestamp:
- Feb 12, 2008, 3:41:06 PM (18 years ago)
- File:
-
- 1 edited
-
trunk/psModules/src/detrend/pmMaskBadPixels.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/detrend/pmMaskBadPixels.c
r15910 r16413 104 104 psImage *mask = readout->mask; // Corresponding mask 105 105 106 float median = psMetadataLookupF32 (&status, readout->analysis, "READOUT.MEDIAN");107 if (!status) {108 psError(PS_ERR_PROGRAMMING, true, "Missing READOUT.MEDIAN from readout analysis data");109 return NULL;110 }111 112 float stdev = psMetadataLookupF32 (&status, readout->analysis, "READOUT.STDEV");113 if (!status) {114 psError(PS_ERR_PROGRAMMING, true, "Missing READOUT.STDEV from readout analysis data");115 return NULL;116 }117 118 psTrace ("psModules.detrend", 3, "suspect: %f +/- %f\n", median, stdev);119 120 106 if (!out) { 121 107 out = psImageAlloc(image->numCols, image->numRows, PS_TYPE_S32); 122 108 psImageInit(out, 0); 109 } 110 111 bool whole = false; // Mask whole image? 112 float median = psMetadataLookupF32 (&status, readout->analysis, "READOUT.MEDIAN"); 113 if (!status || !isfinite(median)) { 114 whole = true; 115 } 116 float stdev = psMetadataLookupF32 (&status, readout->analysis, "READOUT.STDEV"); 117 if (!status || !isfinite(stdev)) { 118 whole = true; 119 } 120 121 122 psTrace ("psModules.detrend", 3, "suspect: %f +/- %f\n", median, stdev); 123 124 if (whole) { 125 // If we get down here and the statistics are missing, then we should go and mask the entire image 126 psWarning("Missing statistics --- flagging entire image as suspect."); 127 return (psImage*)psBinaryOp(out, out, "+", psScalarAlloc(1.0, PS_TYPE_S32)); 123 128 } 124 129 … … 146 151 case PM_MASK_ID_VALUE: 147 152 limit = thresh; 148 break;153 break; 149 154 150 155 case PM_MASK_ID_FRACTION: 151 156 limit = thresh * nTotal; 152 break;157 break; 153 158 154 159 case PM_MASK_ID_SIGMA: { … … 162 167 } 163 168 limit = thresh * stats->clippedStdev; 164 psTrace ("psModules.detrend", 3, "bad: %f -> %f\n", stats->clippedStdev, limit);169 psTrace ("psModules.detrend", 3, "bad: %f -> %f\n", stats->clippedStdev, limit); 165 170 psFree(stats); 166 break;171 break; 167 172 } 168 173 … … 195 200 limit = max + 1.0 - thresh * sqrtf((float)max + 1.0); 196 201 197 psTrace ("psModules.detrend", 3, "bad: mode: %d, stdev: %f, limit: %f\n", max, sqrtf((float)max + 1.0), limit);198 break;202 psTrace ("psModules.detrend", 3, "bad: mode: %d, stdev: %f, limit: %f\n", max, sqrtf((float)max + 1.0), limit); 203 break; 199 204 } 200 205 default: … … 237 242 if (!strcasecmp (string, "VALUE")) { 238 243 return PM_MASK_ID_VALUE; 239 } 244 } 240 245 if (!strcasecmp (string, "FRACTION")) { 241 246 return PM_MASK_ID_FRACTION; 242 } 247 } 243 248 if (!strcasecmp (string, "SIGMA")) { 244 249 return PM_MASK_ID_SIGMA; 245 } 250 } 246 251 if (!strcasecmp (string, "POISSON")) { 247 252 return PM_MASK_ID_POISSON; 248 } 253 } 249 254 return PM_MASK_ID_NONE; 250 255 }
Note:
See TracChangeset
for help on using the changeset viewer.
