IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 2777


Ignore:
Timestamp:
Dec 21, 2004, 10:41:29 AM (22 years ago)
Author:
gusciora
Message:

Added errors arguments to the VectorStats functions.

Location:
trunk/psModules
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/psModules/src/pmReadoutCombine.c

    r2584 r2777  
    55 *  @author GLG, MHPCC
    66 *
    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 $
    99 *
    1010 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    285285            stats = psVectorStats(stats,
    286286                                  tmpPixels,
     287                                  NULL,
    287288                                  tmpPixelMaskNKeep,
    288289                                  1);
  • trunk/psModules/src/pmSubtractBias.c

    r2481 r2777  
    66 *  @author George Gusciora, MHPCC
    77 *
    8  *  @version $Revision: 1.18 $ $Name: not supported by cvs2svn $
    9  *  @date $Date: 2004-11-25 02:54:45 $
     8 *  @version $Revision: 1.19 $ $Name: not supported by cvs2svn $
     9 *  @date $Date: 2004-12-21 20:41:29 $
    1010 *
    1111 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    3333
    3434    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");
    3637        return(in);
    3738    }
     
    133134    }
    134135    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");
    136138    }
    137139    return(opt);
     
    153155                              pmFit fit)
    154156{
    155     printf("ScaleOverscanVector(%d)\n", n);
     157    psTrace(".psModule.pmSubtracBias.ScaleOverscanVector", 4,
     158            "---- ScaleOverscanVector() begin ----\n");
     159
    156160    if (NULL == overscanVector) {
    157161        return(overscanVector);
     
    189193        }
    190194    } 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");
    194200    return(newVec);
    195201}
     
    204210                          const psReadout *bias)
    205211{
     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    }
    206221    int i;
    207222    int j;
     
    218233    psSpline1D *mySpline;
    219234    int nBin;
    220 
    221     PS_PTR_CHECK_NULL(in,NULL);
    222 
    223235    //
    224236    //  Determine if multiple options are specified in stat.
     
    228240    }
    229241
    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));
    233248    }
    234249
     
    236251            (overScanAxis == PM_OVERSCAN_ALL)) &&
    237252            (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
    248257
    249258    //
    250259    // We subtract each overscan region from the image data.
    251260    //
     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.
    252265    if (overScanAxis == PM_OVERSCAN_ALL) {
    253266        tmpOverscan = (psListElem *) overscans->head;
     
    286299                        tmpRow->data.F32[j] = myOverscanImage->data.F32[j][i];
    287300                    }
    288                     stat = psVectorStats(stat, tmpRow, NULL, 0);
     301                    stat = psVectorStats(stat, tmpRow, NULL, NULL, 0);
    289302                    p_psGetStatValue(stat, &statValue);
    290303                    overscanVector->data.F32[i] = statValue;
     
    292305                psFree(tmpRow);
    293306                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);
    295309                    psFree(overscanVector);
    296310                    overscanVector = newVec;
     
    310324                        tmpCol->data.F32[j] = myOverscanImage->data.F32[i][j];
    311325                    }
    312                     stat = psVectorStats(stat, tmpCol, NULL, 0);
     326                    stat = psVectorStats(stat, tmpCol, NULL, NULL, 0);
    313327                    p_psGetStatValue(stat, &statValue);
    314328                    overscanVector->data.F32[i] = statValue;
     
    317331                psFree(tmpCol);
    318332                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);
    320335                    psFree(overscanVector);
    321336                    overscanVector = newVec;
     
    342357                        }
    343358                    }
    344                     stat = psVectorStats(stat, binVec, NULL, 0);
     359                    stat = psVectorStats(stat, binVec, NULL, NULL, 0);
    345360                    p_psGetStatValue(stat, &statValue);
    346361                    myBin->data.F32[i] = statValue;
     
    372387                } else if (fit == PM_FIT_SPLINE) {
    373388                    mySpline = (psSpline1D *) fitSpec;
    374                     // XXX: The spline functions do not currently work if the number of
     389                    // XXX: The spline functions do not work if the number of
    375390                    // data points and the number of splines are not equal.
    376391                }
     
    404419
    405420
     421    psTrace(".psModule.pmSubtracBias.pmSubtractBias", 4,
     422            "---- ScaleOverscanVector() exit ----\n");
     423
    406424    if (bias != NULL) {
    407425        return(psSubtractFrame(in, bias));
  • trunk/psModules/src/pmSubtractSky.c

    r2760 r2777  
    66 *  @author GLG, MHPCC
    77 *
    8  *  @version $Revision: 1.9 $ $Name: not supported by cvs2svn $
    9  *  @date $Date: 2004-12-20 21:38:46 $
     8 *  @version $Revision: 1.10 $ $Name: not supported by cvs2svn $
     9 *  @date $Date: 2004-12-21 20:41:29 $
    1010 *
    1111 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    107107                }
    108108            }
    109             myStats = psVectorStats(myStats, binVector, binMask, 1);
     109            myStats = psVectorStats(myStats, binVector, NULL, binMask, 1);
    110110            psF64 statValue;
    111111            psBool rc = p_psGetStatValue(myStats, &statValue);
  • trunk/psModules/test/tst_pmSubtractSky.c

    r2761 r2777  
    77 *  @author GLG, MHPCC
    88 *
    9  *  @version $Revision: 1.2 $ $Name: not supported by cvs2svn $
    10  *  @date $Date: 2004-12-20 21:39:14 $
     9 *  @version $Revision: 1.3 $ $Name: not supported by cvs2svn $
     10 *  @date $Date: 2004-12-21 20:41:29 $
    1111 *
    1212 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    1919#define POLY_X_ORDER 3
    2020#define POLY_Y_ORDER 3
    21 #define TOL 1.0
     21#define ERROR_TOLERANCE 1.0
    2222#define OBJECT_INTENSITY 2000.0
    2323static int test00(void);
     
    2626                              {NULL}
    2727                          };
     28//XXX: Test a few input parameter error conditions.
    2829
    2930float func(int i, int j)
     
    3738}
    3839
     40/******************************************************************************
     41 *****************************************************************************/
    3942int doSubtractSkySimple(int numCols, int numRows, int binFactor)
    4043{
     
    5760    for (i=0;i<numRows;i++) {
    5861        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])) {
    6063                printf("ERROR: image[%d][%d] is %f, should be 0.0\n", i, j, myReadout->image->data.F32[i][j]);
    6164                testStatus = 1;
     
    6972}
    7073
     74/******************************************************************************
     75 *****************************************************************************/
    7176int doSubtractSkyWithObjects(int numCols, int numRows, int binFactor)
    7277{
     
    7984    psPolynomial2D *myPoly = psPolynomial2DAlloc(POLY_X_ORDER, POLY_Y_ORDER, PS_POLYNOMIAL_ORD);
    8085    psImage *trueImage = psImageAlloc(numCols, numRows, PS_TYPE_F32);
    81     psF32 errorTolerance = TOL * ((psF32) binFactor);
     86    psF32 errorTolerance = ERROR_TOLERANCE * ((psF32) binFactor);
    8287
    8388    for (i=0;i<numRows;i++) {
     
    123128
    124129    // Bin Factor == 1
    125     /*
    126     */
    127130    printf("doSubtractSkySimple(1, 1, 1)\n");
    128131    testStatus |= doSubtractSkySimple(1, 1, 1);
Note: See TracChangeset for help on using the changeset viewer.