IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Feb 5, 2009, 4:47:00 PM (17 years ago)
Author:
Paul Price
Message:

Merging pap_branch_20090128. Resolved a small number of conflicts. Compiles, but not tested in detail.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ppMerge/src/ppMergeLoop_Threaded.c

    r21244 r21365  
    66 *
    77 *  @author IfA
    8  *  @version $Revision: 1.8 $ $Name: not supported by cvs2svn $
    9  *  @date $Date: 2009-02-01 21:43:05 $
     8 *  @version $Revision: 1.9 $ $Name: not supported by cvs2svn $
     9 *  @date $Date: 2009-02-06 02:44:31 $
    1010 *  Copyright 2009 Institute for Astronomy, University of Hawaii
    1111 */
     
    3636    bool mdok;                          ///< Status of MD lookup
    3737    bool haveMasks = psMetadataLookupBool(&mdok, arguments, "INPUTS.MASKS"); // Do we have masks?
    38     bool haveWeights = psMetadataLookupBool(&mdok, arguments, "INPUTS.WEIGHTS"); ///< Do we have weights?
    39 
    40     psArray *inputs = ppMergeFileDataLevel(config, "PPMERGE.INPUT", PM_FPA_LEVEL_READOUT); ///< Input images
    41     psArray *masks = NULL, *weights = NULL; ///< Input masks and weights
     38    bool haveVariances = psMetadataLookupBool(&mdok, arguments, "INPUTS.VARIANCES"); // Do we have variances?
     39
     40    psArray *inputs = ppMergeFileDataLevel(config, "PPMERGE.INPUT", PM_FPA_LEVEL_READOUT); // Input images
     41    psArray *masks = NULL, *variances = NULL; // Input masks and variances
    4242    if (haveMasks) {
    4343        masks = ppMergeFileDataLevel(config, "PPMERGE.INPUT.MASK", PM_FPA_LEVEL_READOUT);
    4444    }
    45     if (haveWeights) {
    46         weights = ppMergeFileDataLevel(config, "PPMERGE.INPUT.WEIGHT", PM_FPA_LEVEL_READOUT);
     45    if (haveVariances) {
     46        variances = ppMergeFileDataLevel(config, "PPMERGE.INPUT.VARIANCE", PM_FPA_LEVEL_READOUT);
    4747    }
    4848
     
    5050    if (!mdok) nThreads = 0;
    5151
    52     /** General combination parameters */
    53     int iter = psMetadataLookupS32(NULL, arguments, "ITER"); ///< Number of rejection iterations
    54     float rej = psMetadataLookupF32(NULL, arguments, "REJ"); ///< Rejection level
    55     float fraclow = psMetadataLookupF32(NULL, arguments, "FRACLOW"); ///< Reject fraction of low pixels
    56     float frachigh = psMetadataLookupF32(NULL, arguments, "FRACHIGH"); ///< Reject fraction of hi pixels
    57     int nKeep = psMetadataLookupS32(NULL, arguments, "NKEEP"); ///< Minimum number of values to keep
    58     psStatsOptions combineStat = psMetadataLookupS32(NULL, arguments, "COMBINE"); ///< Combination statistic
    59     bool useWeights = psMetadataLookupBool(NULL, arguments, "WEIGHTS"); ///< Use weights?
    60 
    61     /** Fringe parameters */
    62     int fringeNum = psMetadataLookupS32(NULL, arguments, "FRINGE.NUM"); ///< Number of fringe points
    63     int fringeSize = psMetadataLookupS32(NULL, arguments, "FRINGE.SIZE"); ///< Size of fringe regions
    64     int fringeSmoothX = psMetadataLookupS32(NULL, arguments, "FRINGE.XSMOOTH"); ///< Smoothing regions in x
    65     int fringeSmoothY = psMetadataLookupS32(NULL, arguments, "FRINGE.YSMOOTH"); ///< Smoothing regions in y
     52    // General combination parameters
     53    int iter = psMetadataLookupS32(NULL, arguments, "ITER"); // Number of rejection iterations
     54    float rej = psMetadataLookupF32(NULL, arguments, "REJ"); // Rejection level
     55    float fraclow = psMetadataLookupF32(NULL, arguments, "FRACLOW"); // Reject fraction of low pixels
     56    float frachigh = psMetadataLookupF32(NULL, arguments, "FRACHIGH"); // Reject fraction of hi pixels
     57    int nKeep = psMetadataLookupS32(NULL, arguments, "NKEEP"); // Minimum number of values to keep
     58    psStatsOptions combineStat = psMetadataLookupS32(NULL, arguments, "COMBINE"); // Combination statistic
     59    bool useVariances = psMetadataLookupBool(NULL, arguments, "VARIANCES"); // Use variances?
     60
     61    // Fringe parameters
     62    int fringeNum = psMetadataLookupS32(NULL, arguments, "FRINGE.NUM"); // Number of fringe points
     63    int fringeSize = psMetadataLookupS32(NULL, arguments, "FRINGE.SIZE"); // Size of fringe regions
     64    int fringeSmoothX = psMetadataLookupS32(NULL, arguments, "FRINGE.XSMOOTH"); // Smoothing regions in x
     65    int fringeSmoothY = psMetadataLookupS32(NULL, arguments, "FRINGE.YSMOOTH"); // Smoothing regions in y
    6666
    6767    // set the mask and mark bit values based on the named masks
    68     psImageMaskType maskVal;
    69     psImageMaskType markVal;
    70     if (!pmConfigMaskSetBits (&maskVal, &markVal, config)) {
     68    psImageMaskType maskVal, markVal;
     69    if (!pmConfigMaskSetBits(&maskVal, &markVal, config)) {
    7170        psError (PS_ERR_UNKNOWN, true, "Unable to define the mask bit values");
    7271        return false;
     
    8180    combination->iter = iter;
    8281    combination->rej = rej;
    83     combination->weights = useWeights;
     82    combination->variances = useVariances;
    8483
    8584    psMetadata *stats = NULL;           ///< Statistics for output
     
    344343                psFree(countsRO);
    345344
    346                 // XXX EAM 2009.01.18 : sigmaCell and countsCell need to have their concepts copied from outCell.
    347                 // This was causing segfaults for VYSOS5; Why did this ever work for SIMTEST?
    348                 if (!pmConceptsCopyCell(countsCell, outCell)) {
    349                     psError(PS_ERR_UNKNOWN, false, "Unable to copy cell concepts.");
    350                     psFree(outRO);
    351                     goto ERROR;
    352                 }
     345                // XXX EAM 2009.01.18 : sigmaCell and countsCell need to have their concepts copied from outCell.
     346                // This was causing segfaults for VYSOS5; Why did this ever work for SIMTEST?
     347                if (!pmConceptsCopyCell(countsCell, outCell)) {
     348                    psError(PS_ERR_UNKNOWN, false, "Unable to copy cell concepts.");
     349                    psFree(outRO);
     350                    goto ERROR;
     351                }
    353352
    354353                pmCell *sigmaCell = pmFPAfileThisCell(config->files, view, "PPMERGE.OUTPUT.SIGMA");
     
    360359                psFree(sigmaRO);
    361360
    362                 if (!pmConceptsCopyCell(sigmaCell, outCell)) {
    363                     psError(PS_ERR_UNKNOWN, false, "Unable to copy cell concepts.");
    364                     psFree(outRO);
    365                     goto ERROR;
    366                 }
     361                if (!pmConceptsCopyCell(sigmaCell, outCell)) {
     362                    psError(PS_ERR_UNKNOWN, false, "Unable to copy cell concepts.");
     363                    psFree(outRO);
     364                    goto ERROR;
     365                }
    367366            }
    368367
     
    447446    psFree(inputs);
    448447    psFree(masks);
    449     psFree(weights);
     448    psFree(variances);
    450449    psFree(stats);
    451450    return true;
     
    456455    psFree(inputs);
    457456    psFree(masks);
    458     psFree(weights);
     457    psFree(variances);
    459458    psFree(stats);
    460459    return false;
Note: See TracChangeset for help on using the changeset viewer.