IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 18513


Ignore:
Timestamp:
Jul 14, 2008, 2:44:27 PM (18 years ago)
Author:
eugene
Message:

rework to use new masking bit names

Location:
branches/eam_branch_20080706/pswarp/src
Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branch_20080706/pswarp/src/Makefile.am

    r15608 r18513  
    1515        pswarpParseCamera.c             \
    1616        pswarpPixelFraction.c           \
     17        pswarpSetMaskBits.c             \
    1718        pswarpTransformReadout_Opt.c    \
    1819        pswarpVersion.c           
  • branches/eam_branch_20080706/pswarp/src/pswarp.h

    r18179 r18513  
    3838pmConfig *pswarpArguments (int argc, char **argv);
    3939bool pswarpOptions(pmConfig *config);
     40bool pswarpSetMaskBits (pmConfig *config);
    4041bool pswarpParseCamera (pmConfig *config);
    4142bool pswarpDefine (pmConfig *config);
  • branches/eam_branch_20080706/pswarp/src/pswarpArguments.c

    r17525 r18513  
    109109    }
    110110
    111     // Get mask parameters
    112     psMaskType maskIn, maskPoor, maskBad; // Mask values for input, "poor" and "bad" pixels
    113 
    114     psString maskNames = psMetadataLookupStr(&status, recipe, "MASK.IN");
    115     if (!status) {
    116         maskIn = 0x00;
    117         psWarning("MASK.IN is not set in the %s recipe --- defaulting to %x.", PSWARP_RECIPE, maskIn);
    118     }
    119     maskIn = pmConfigMask(maskNames, config); // Mask for input data
    120 
    121     maskNames = psMetadataLookupStr(&status, recipe, "MASK.POOR");
    122     if (!status) {
    123         maskPoor = 0x00;
    124         psWarning("MASK.POOR is not set in the %s recipe --- defaulting to %x.", PSWARP_RECIPE, maskPoor);
    125     }
    126     maskPoor = pmConfigMask(maskNames, config); // Mask for "poor" warped data
    127 
    128     maskNames = psMetadataLookupStr(&status, recipe, "MASK.BAD");
    129     if (!status) {
    130         maskBad = 0x00;
    131         psWarning("MASK.BAD is not set in the %s recipe --- defaulting to %x.", PSWARP_RECIPE, maskBad);
    132     }
    133     maskBad = pmConfigMask(maskNames, config); // Mask for bad warped data
    134 
    135111    float poorFrac = psMetadataLookupF32(&status, recipe, "POOR.FRAC"); // Frac of bad flux for a "poor"
    136112    if (!status) {
     
    152128    psMetadataAddS32(config->arguments, PS_LIST_TAIL, "INTERPOLATION.MODE", 0,
    153129                     "Interpolation mode", interpolationMode);
    154     psMetadataAddU8(config->arguments, PS_LIST_TAIL, "MASK.IN", 0,
    155                     "Mask for input data", maskIn);
    156     psMetadataAddU8(config->arguments, PS_LIST_TAIL, "MASK.POOR", 0,
    157                     "Mask for poor warped data", maskPoor);
    158     psMetadataAddU8(config->arguments, PS_LIST_TAIL, "MASK.BAD", 0,
    159                     "Mask for bad warped data", maskBad);
    160130    psMetadataAddF32(config->arguments, PS_LIST_TAIL, "POOR.FRAC", 0,
    161131                     "Fraction of bad flux for a pixel to be marked as poor", poorFrac);
  • branches/eam_branch_20080706/pswarp/src/pswarpLoop.c

    r18189 r18513  
    6464bool pswarpLoop(pmConfig *config)
    6565{
    66 
    67     psMaskType maskPoor = psMetadataLookupU8(NULL, config->arguments, "MASK.POOR"); // Mask for "poor" data
    68     psMaskType maskBad = psMetadataLookupU8(NULL, config->arguments, "MASK.BAD"); // Mask for bad data
     66    bool status;
     67
     68    // load the recipe
     69    psMetadata *recipe = psMetadataLookupPtr (&status, config->recipes, PSWARP_RECIPE);
     70    if (!recipe) {
     71        psError(PSPHOT_ERR_CONFIG, false, "missing recipe %s", PSWARP_RECIPE);
     72        return false;
     73    }
     74
     75    // output mask bits
     76    psMaskType maskValue = psMetadataLookupU8(&status, recipe, "MASK.OUTPUT");
     77    psAssert (status, "MASK.OUTPUT was not defined");
    6978
    7079    // select the input data sources
     
    333342    // Perform statistics on the output image
    334343    if (stats) {
    335         if (!ppStatsFPA(stats, output->parent->parent->parent, view, maskBad | maskPoor, config)) {
     344        if (!ppStatsFPA(stats, output->parent->parent->parent, view, maskValue, config)) {
    336345            psWarning("Unable to perform statistics on warped image.");
    337346        }
  • branches/eam_branch_20080706/pswarp/src/pswarpParseCamera.c

    r17599 r18513  
    3737    if (!inMask) {
    3838        psLogMsg ("pswarp", 3, "no mask supplied\n");
     39    }
     40   
     41    // loading the mask here should have invoked pmConfigMaskReadHeader()
     42    if (!pswarpSetMaskBits (config)) {
     43        psError(PS_ERR_IO, false, "failed to set mask bits");
     44        return NULL;
    3945    }
    4046
  • branches/eam_branch_20080706/pswarp/src/pswarpPixelFraction.c

    r17780 r18513  
    2828    PS_ASSERT_METADATA_NON_NULL(config->arguments, false);
    2929
     30    bool status;
     31
    3032    float minFrac = psMetadataLookupF32(NULL, config->arguments, "ACCEPT.FRAC"); // Minimum fraction
    31     psMaskType maskPoor = psMetadataLookupU8(NULL, config->arguments, "MASK.POOR"); // Mask for "poor" data
    32     psMaskType maskBad = psMetadataLookupU8(NULL, config->arguments, "MASK.BAD"); // Mask for bad data
    33     psMaskType maskVal = maskPoor | maskBad; // Mask to apply
     33
     34    // load the recipe
     35    psMetadata *recipe = psMetadataLookupPtr (NULL, config->recipes, PSWARP_RECIPE);
     36    if (!recipe) {
     37        psError(PSPHOT_ERR_CONFIG, false, "missing recipe %s", PSWARP_RECIPE);
     38        return false;
     39    }
     40
     41    // output mask bits
     42    psMaskType maskValue = psMetadataLookupU8(&status, recipe, "MASK.OUTPUT");
     43    psAssert (status, "MASK.OUTPUT was not defined");
    3444
    3545    psImage *image = readout->image;    // Image of interest
     
    4555    for (int y = 0; y < numRows; y++) {
    4656        for (int x = 0; x < numCols; x++) {
    47             if (mask->data.PS_TYPE_MASK_DATA[y][x] & maskVal) {
     57            if (mask->data.PS_TYPE_MASK_DATA[y][x] & maskValue) {
    4858                numBad++;
    4959            } else {
  • branches/eam_branch_20080706/pswarp/src/pswarpTransformReadout_Opt.c

    r18188 r18513  
    1717    psImageInterpolateMode interpolationMode = psMetadataLookupS32(NULL, config->arguments,
    1818                                                                   "INTERPOLATION.MODE");
    19     psMaskType maskIn = psMetadataLookupU8(NULL, config->arguments, "MASK.IN"); // Mask for input data
    20     psMaskType maskPoor = psMetadataLookupU8(NULL, config->arguments, "MASK.POOR"); // Mask for "poor" data
    21     psMaskType maskBad = psMetadataLookupU8(NULL, config->arguments, "MASK.BAD"); // Mask for bad data
     19    // load the recipe
     20    psMetadata *recipe = psMetadataLookupPtr (NULL, config->recipes, PSWARP_RECIPE);
     21    if (!recipe) {
     22        psError(PSPHOT_ERR_CONFIG, false, "missing recipe %s", PSWARP_RECIPE);
     23        return false;
     24    }
     25
     26    // output mask bits
     27    psMaskType maskIn   = psMetadataLookupU8(&mdok, recipe, "MASK.INPUT");
     28    psMaskType maskPoor = pmConfigMaskGet("POOR.WARP", config);
     29    psMaskType maskBad  = pmConfigMaskGet("BAD.WARP", config);
     30    psAssert (mdok, "MASK.INPUT was not defined");
     31
    2232    float poorFrac = psMetadataLookupF32(NULL, config->arguments, "POOR.FRAC"); // Flux fraction for "poor"
    2333
     
    6272
    6373    // Interpolation options
    64     psImageInterpolateOptions *interp = psImageInterpolateOptionsAlloc(interpolationMode, inImage,
     74    psImageInterpolateOptions *interp = psImageInterpolateOptionsAlloc(interpolationMode, inImage, 
    6575                                                                       inVar, inMask, maskIn, NAN, NAN,
    6676                                                                       maskBad, maskPoor, poorFrac);
Note: See TracChangeset for help on using the changeset viewer.