Changeset 2777
- Timestamp:
- Dec 21, 2004, 10:41:29 AM (22 years ago)
- Location:
- trunk/psModules
- Files:
-
- 4 edited
-
src/pmReadoutCombine.c (modified) (2 diffs)
-
src/pmSubtractBias.c (modified) (16 diffs)
-
src/pmSubtractSky.c (modified) (2 diffs)
-
test/tst_pmSubtractSky.c (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/pmReadoutCombine.c
r2584 r2777 5 5 * @author GLG, MHPCC 6 6 * 7 * @version $Revision: 1. 8$ $Name: not supported by cvs2svn $8 * @date $Date: 2004-12- 01 21:20:24$7 * @version $Revision: 1.9 $ $Name: not supported by cvs2svn $ 8 * @date $Date: 2004-12-21 20:41:29 $ 9 9 * 10 10 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 285 285 stats = psVectorStats(stats, 286 286 tmpPixels, 287 NULL, 287 288 tmpPixelMaskNKeep, 288 289 1); -
trunk/psModules/src/pmSubtractBias.c
r2481 r2777 6 6 * @author George Gusciora, MHPCC 7 7 * 8 * @version $Revision: 1.1 8$ $Name: not supported by cvs2svn $9 * @date $Date: 2004-1 1-25 02:54:45$8 * @version $Revision: 1.19 $ $Name: not supported by cvs2svn $ 9 * @date $Date: 2004-12-21 20:41:29 $ 10 10 * 11 11 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 33 33 34 34 if (bias == NULL) { 35 printf("WARNING: bias frame is NULL\n"); 35 psLogMsg(__func__, PS_LOG_WARN, 36 "WARNING: pmSubtractBias.c: psSubtractFrame(): bias frame is NULL. Returning original image.\n"); 36 37 return(in); 37 38 } … … 133 134 } 134 135 if (numOptions != 1) { 135 printf("WARNING: Too many statistics options have been specified\n"); 136 psLogMsg(__func__, PS_LOG_WARN, 137 "WARNING: pmSubtractBias.c: GenNewStatOptions(): Too many statistics options have been specified\n"); 136 138 } 137 139 return(opt); … … 153 155 pmFit fit) 154 156 { 155 printf("ScaleOverscanVector(%d)\n", n); 157 psTrace(".psModule.pmSubtracBias.ScaleOverscanVector", 4, 158 "---- ScaleOverscanVector() begin ----\n"); 159 156 160 if (NULL == overscanVector) { 157 161 return(overscanVector); … … 189 193 } 190 194 } else { 191 psError(PS_ERR_UNKNOWN,true, "unknown fit type\n"); 192 } 193 195 psError(PS_ERR_UNKNOWN, true, "unknown fit type\n"); 196 } 197 198 psTrace(".psModule.pmSubtracBias.ScaleOverscanVector", 4, 199 "---- ScaleOverscanVector() exit ----\n"); 194 200 return(newVec); 195 201 } … … 204 210 const psReadout *bias) 205 211 { 212 psTrace(".psModule.pmSubtracBias.pmSubtractBias", 4, 213 "---- ScaleOverscanVector() begin ----\n"); 214 PS_READOUT_CHECK_NULL(in, NULL); 215 PS_READOUT_CHECK_EMPTY(in, NULL); 216 PS_READOUT_CHECK_TYPE(in, PS_TYPE_F32, NULL); 217 if ((overscans == NULL) && (overScanAxis != PM_OVERSCAN_NONE)) { 218 psError(PS_ERR_UNKNOWN,true, "(overscans == NULL) && (overScanAxis != PM_OVERSCAN_NONE)\n"); 219 return(in); 220 } 206 221 int i; 207 222 int j; … … 218 233 psSpline1D *mySpline; 219 234 int nBin; 220 221 PS_PTR_CHECK_NULL(in,NULL);222 223 235 // 224 236 // Determine if multiple options are specified in stat. … … 228 240 } 229 241 230 if ((overscans == NULL) && (overScanAxis != PM_OVERSCAN_NONE)) { 231 psError(PS_ERR_UNKNOWN,true, "(overscans == NULL) && (overScanAxis != PM_OVERSCAN_NONE)\n"); 232 return(in); 242 if (overScanAxis == PM_OVERSCAN_NONE) { 243 if (overscans != NULL) { 244 psLogMsg(__func__, PS_LOG_WARN, 245 "WARNING: pmSubtractBias.(): overScanAxis equals NONE and overscans does not equal NULL\n"); 246 } 247 return(psSubtractFrame(in, bias)); 233 248 } 234 249 … … 236 251 (overScanAxis == PM_OVERSCAN_ALL)) && 237 252 (fit == PM_FIT_NONE)) { 238 printf("WARNING: overScanAxis equals NONE or ALL, and fit equals NONE\n"); 239 //XXX: Then what? 240 } 241 242 if (overScanAxis == PM_OVERSCAN_NONE) { 243 if (overscans != NULL) { 244 printf("WARNING: overScanAxis equals NONE and overscans does not equal NULL\n"); 245 } 246 return(psSubtractFrame(in, bias)); 247 } 253 psLogMsg(__func__, PS_LOG_WARN, 254 "WARNING: pmSubtractBias.(): overScanAxis equals NONE or ALL, and fit equals NONE\n"); 255 } 256 248 257 249 258 // 250 259 // We subtract each overscan region from the image data. 251 260 // 261 // XXX: Do we generate a single stat from all the overscan regions, and 262 // subtract that from the input image? Or do we generate a single stat 263 // from each overscan region, and subtract them from the input image? 264 // The SDR is ambiguous. 252 265 if (overScanAxis == PM_OVERSCAN_ALL) { 253 266 tmpOverscan = (psListElem *) overscans->head; … … 286 299 tmpRow->data.F32[j] = myOverscanImage->data.F32[j][i]; 287 300 } 288 stat = psVectorStats(stat, tmpRow, NULL, 0);301 stat = psVectorStats(stat, tmpRow, NULL, NULL, 0); 289 302 p_psGetStatValue(stat, &statValue); 290 303 overscanVector->data.F32[i] = statValue; … … 292 305 psFree(tmpRow); 293 306 if ((fit == PM_FIT_POLYNOMIAL) || (fit == PM_FIT_SPLINE)) { 294 psVector *newVec = ScaleOverscanVector(overscanVector, (in->image)->numCols, fitSpec, fit); 307 psVector *newVec = ScaleOverscanVector(overscanVector, 308 (in->image)->numCols, fitSpec, fit); 295 309 psFree(overscanVector); 296 310 overscanVector = newVec; … … 310 324 tmpCol->data.F32[j] = myOverscanImage->data.F32[i][j]; 311 325 } 312 stat = psVectorStats(stat, tmpCol, NULL, 0);326 stat = psVectorStats(stat, tmpCol, NULL, NULL, 0); 313 327 p_psGetStatValue(stat, &statValue); 314 328 overscanVector->data.F32[i] = statValue; … … 317 331 psFree(tmpCol); 318 332 if ((fit == PM_FIT_POLYNOMIAL) || (fit == PM_FIT_SPLINE)) { 319 psVector *newVec = ScaleOverscanVector(overscanVector, (in->image)->numRows, fitSpec, fit); 333 psVector *newVec = ScaleOverscanVector(overscanVector, 334 (in->image)->numRows, fitSpec, fit); 320 335 psFree(overscanVector); 321 336 overscanVector = newVec; … … 342 357 } 343 358 } 344 stat = psVectorStats(stat, binVec, NULL, 0);359 stat = psVectorStats(stat, binVec, NULL, NULL, 0); 345 360 p_psGetStatValue(stat, &statValue); 346 361 myBin->data.F32[i] = statValue; … … 372 387 } else if (fit == PM_FIT_SPLINE) { 373 388 mySpline = (psSpline1D *) fitSpec; 374 // XXX: The spline functions do not currentlywork if the number of389 // XXX: The spline functions do not work if the number of 375 390 // data points and the number of splines are not equal. 376 391 } … … 404 419 405 420 421 psTrace(".psModule.pmSubtracBias.pmSubtractBias", 4, 422 "---- ScaleOverscanVector() exit ----\n"); 423 406 424 if (bias != NULL) { 407 425 return(psSubtractFrame(in, bias)); -
trunk/psModules/src/pmSubtractSky.c
r2760 r2777 6 6 * @author GLG, MHPCC 7 7 * 8 * @version $Revision: 1. 9$ $Name: not supported by cvs2svn $9 * @date $Date: 2004-12-2 0 21:38:46$8 * @version $Revision: 1.10 $ $Name: not supported by cvs2svn $ 9 * @date $Date: 2004-12-21 20:41:29 $ 10 10 * 11 11 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 107 107 } 108 108 } 109 myStats = psVectorStats(myStats, binVector, binMask, 1);109 myStats = psVectorStats(myStats, binVector, NULL, binMask, 1); 110 110 psF64 statValue; 111 111 psBool rc = p_psGetStatValue(myStats, &statValue); -
trunk/psModules/test/tst_pmSubtractSky.c
r2761 r2777 7 7 * @author GLG, MHPCC 8 8 * 9 * @version $Revision: 1. 2$ $Name: not supported by cvs2svn $10 * @date $Date: 2004-12-2 0 21:39:14$9 * @version $Revision: 1.3 $ $Name: not supported by cvs2svn $ 10 * @date $Date: 2004-12-21 20:41:29 $ 11 11 * 12 12 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 19 19 #define POLY_X_ORDER 3 20 20 #define POLY_Y_ORDER 3 21 #define TOL1.021 #define ERROR_TOLERANCE 1.0 22 22 #define OBJECT_INTENSITY 2000.0 23 23 static int test00(void); … … 26 26 {NULL} 27 27 }; 28 //XXX: Test a few input parameter error conditions. 28 29 29 30 float func(int i, int j) … … 37 38 } 38 39 40 /****************************************************************************** 41 *****************************************************************************/ 39 42 int doSubtractSkySimple(int numCols, int numRows, int binFactor) 40 43 { … … 57 60 for (i=0;i<numRows;i++) { 58 61 for (j=0;j<numCols;j++) { 59 if ( TOL< fabs(myReadout->image->data.F32[i][j])) {62 if (ERROR_TOLERANCE < fabs(myReadout->image->data.F32[i][j])) { 60 63 printf("ERROR: image[%d][%d] is %f, should be 0.0\n", i, j, myReadout->image->data.F32[i][j]); 61 64 testStatus = 1; … … 69 72 } 70 73 74 /****************************************************************************** 75 *****************************************************************************/ 71 76 int doSubtractSkyWithObjects(int numCols, int numRows, int binFactor) 72 77 { … … 79 84 psPolynomial2D *myPoly = psPolynomial2DAlloc(POLY_X_ORDER, POLY_Y_ORDER, PS_POLYNOMIAL_ORD); 80 85 psImage *trueImage = psImageAlloc(numCols, numRows, PS_TYPE_F32); 81 psF32 errorTolerance = TOL* ((psF32) binFactor);86 psF32 errorTolerance = ERROR_TOLERANCE * ((psF32) binFactor); 82 87 83 88 for (i=0;i<numRows;i++) { … … 123 128 124 129 // Bin Factor == 1 125 /*126 */127 130 printf("doSubtractSkySimple(1, 1, 1)\n"); 128 131 testStatus |= doSubtractSkySimple(1, 1, 1);
Note:
See TracChangeset
for help on using the changeset viewer.
