IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

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

Added errors arguments to the VectorStats functions.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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));
Note: See TracChangeset for help on using the changeset viewer.