IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 21183 for trunk/ppStack


Ignore:
Timestamp:
Jan 26, 2009, 8:40:07 PM (17 years ago)
Author:
eugene
Message:

incorporating changes from 16bit mask upgrades (eam_branch_20081230)

Location:
trunk/ppStack/src
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/ppStack/src/ppStackArguments.c

    r20995 r21183  
    7979        } \
    8080    } \
    81     psMaskType value = pmConfigMaskGet(name, config); \
    82     psMetadataAddU8(recipe, PS_LIST_TAIL, RECIPENAME, PS_META_REPLACE, NULL, value); \
     81    psImageMaskType value = pmConfigMaskGet(name, config); \
     82    psMetadataAddImageMask(recipe, PS_LIST_TAIL, RECIPENAME, PS_META_REPLACE, NULL, value); \
    8383}
    8484
  • trunk/ppStack/src/ppStackLoop.c

    r21092 r21183  
    403403    int numGood = 0;                    // Number of good frames
    404404    int numCols = 0, numRows = 0;       // Size of image
    405     psVector *inputMask = psVectorAlloc(num, PS_TYPE_U8); // Mask for inputs
     405    psVector *inputMask = psVectorAlloc(num, PS_TYPE_VECTOR_MASK); // Mask for inputs
    406406    psVectorInit(inputMask, 0);
    407407    psVector *matchChi2 = psVectorAlloc(num, PS_TYPE_F32); // chi^2 for stamps when matching
     
    449449                          sourceLists->data[i], targetPSF, rng, config)) {
    450450            psErrorStackPrint(stderr, "Unable to match image %d --- ignoring.", i);
    451             inputMask->data.U8[i] = PPSTACK_MASK_MATCH;
     451            inputMask->data.PS_TYPE_VECTOR_MASK_DATA[i] = PPSTACK_MASK_MATCH;
    452452            psErrorClear();
    453453            continue;
     
    536536        psVector *values = psVectorAllocEmpty(num, PS_TYPE_F32); // Values to sort
    537537        for (int i = 0; i < num; i++) {
    538             if (inputMask->data.PS_TYPE_MASK_DATA[i] & PPSTACK_MASK_ALL) {
     538            if (inputMask->data.PS_TYPE_VECTOR_MASK_DATA[i] & PPSTACK_MASK_ALL) {
    539539                continue;
    540540            }
     
    569569            numGood = 0;                    // Number of good images
    570570            for (int i = 0; i < num; i++) {
    571                 if (inputMask->data.PS_TYPE_MASK_DATA[i] & PPSTACK_MASK_ALL) {
     571              if (inputMask->data.PS_TYPE_VECTOR_MASK_DATA[i] & PPSTACK_MASK_ALL) {
    572572                    continue;
    573573                }
    574574                if (matchChi2->data.F32[i] > thresh) {
    575575                    numRej++;
    576                     inputMask->data.PS_TYPE_MASK_DATA[i] |= PPSTACK_MASK_CHI2;
     576                    inputMask->data.PS_TYPE_VECTOR_MASK_DATA[i] |= PPSTACK_MASK_CHI2;
    577577                    psLogMsg("ppStack", PS_LOG_INFO, "Rejecting image %d because of large matching chi^2: %f",
    578578                             i, matchChi2->data.F32[i]);
     
    647647
    648648        psString maskBadStr = psMetadataLookupStr(NULL, recipe, "MASK.BAD"); // Name of bits to mask for bad
    649         psMaskType maskBad = pmConfigMaskGet(maskBadStr, config); // Bits to mask for bad pixels
     649        psImageMaskType maskBad = pmConfigMaskGet(maskBadStr, config); // Bits to mask for bad pixels
    650650        if (!pmReadoutStackDefineOutput(outRO, col0, row0, numCols, numRows, true, true, maskBad)) {
    651651            psError(PS_ERR_UNKNOWN, false, "Unable to prepare output.");
     
    728728        inspect = psArrayAlloc(num);
    729729        for (int i = 0; i < num; i++) {
    730             if (inputMask->data.U8[i]) {
     730            if (inputMask->data.PS_TYPE_VECTOR_MASK_DATA[i]) {
    731731                continue;
    732732            }
     
    739739            psArray *results = job->results; // Results of job
    740740            for (int i = 0; i < num; i++) {
    741                 if (inputMask->data.U8[i]) {
     741                if (inputMask->data.PS_TYPE_VECTOR_MASK_DATA[i]) {
    742742                    continue;
    743743                }
     
    765765        // Count images rejected out of hand
    766766        for (int i = 0; i < num; i++) {
    767             if (inputMask->data.U8[i]) {
     767            if (inputMask->data.PS_TYPE_VECTOR_MASK_DATA[i]) {
    768768                numRejected++;
    769769            }
     
    771771
    772772        for (int i = 0; i < num; i++) {
    773             if (inputMask->data.U8[i]) {
     773            if (inputMask->data.PS_TYPE_VECTOR_MASK_DATA[i]) {
    774774                continue;
    775775            }
     
    816816        // Reject bad pixels
    817817        for (int i = 0; i < num; i++) {
    818             if (inputMask->data.U8[i]) {
     818            if (inputMask->data.PS_TYPE_VECTOR_MASK_DATA[i]) {
    819819                continue;
    820820            }
     
    859859                psWarning("Rejection on image %d didn't work --- reject entire image.", i);
    860860                numRejected++;
    861                 inputMask->data.U8[i] = PPSTACK_MASK_REJECT;
     861                inputMask->data.PS_TYPE_VECTOR_MASK_DATA[i] = PPSTACK_MASK_REJECT;
    862862            } else {
    863863                float frac = reject->n / (float)(numCols * numRows); // Pixel fraction
     
    870870                    // reject == NULL means reject image completely
    871871                    reject = NULL;
    872                     inputMask->data.U8[i] = PPSTACK_MASK_BAD;
     872                    inputMask->data.PS_TYPE_VECTOR_MASK_DATA[i] = PPSTACK_MASK_BAD;
    873873                    numRejected++;
    874874                }
     
    982982    {
    983983        psString maskBadStr = psMetadataLookupStr(NULL, recipe, "MASK.BAD"); // Name of bits for bad
    984         psMaskType maskBad = pmConfigMaskGet(maskBadStr, config); // Bits to mask for bad pixels
     984        psImageMaskType maskBad = pmConfigMaskGet(maskBadStr, config); // Bits to mask for bad pixels
    985985        if (!pmReadoutMaskApply(outRO, maskBad)) {
    986986            psWarning("Unable to apply mask");
     
    992992    bool wcsDone = false;           // Have we done the WCS?
    993993    for (int i = 0; i < num; i++) {
    994         if (inputMask->data.U8[i]) {
     994        if (inputMask->data.PS_TYPE_VECTOR_MASK_DATA[i]) {
    995995            continue;
    996996        }
     
    10561056        pmCell *cell1 = pmFPAfileThisCell(config->files, view, "PPSTACK.OUTPUT.JPEG1");
    10571057        pmCell *cell2 = pmFPAfileThisCell(config->files, view, "PPSTACK.OUTPUT.JPEG2");
    1058         psMaskType maskValue = pmConfigMaskGet("BLANK", config); // Bits to mask
     1058        psImageMaskType maskValue = pmConfigMaskGet("BLANK", config); // Bits to mask
    10591059
    10601060        pmReadout *ro1 = pmReadoutAlloc(cell1), *ro2 = pmReadoutAlloc(cell2); // Binned readouts
     
    10781078        int renormNum = psMetadataLookupS32(&mdok, recipe, "RENORM.NUM"); // Number of samples
    10791079        float renormWidth = psMetadataLookupS32(&mdok, recipe, "RENORM.WIDTH"); // Width of Gaussian phot
    1080         psMaskType maskValue = pmConfigMaskGet("BLANK", config); // Bits to mask
     1080        psImageMaskType maskValue = pmConfigMaskGet("BLANK", config); // Bits to mask
    10811081        if (!pmReadoutWeightRenormPhot(outRO, maskValue, renormNum, renormWidth,
    10821082                                       renormMean, renormStdev, NULL)) {
     
    11241124        psTrace("ppStack", 1, "Gathering statistics on stacked image....\n");
    11251125        psString maskBadStr = psMetadataLookupStr(NULL, recipe, "MASK.BAD"); // Name of bits for bad
    1126         psMaskType maskBad = pmConfigMaskGet(maskBadStr, config); // Bits to mask for bad pixels
     1126        psImageMaskType maskBad = pmConfigMaskGet(maskBadStr, config); // Bits to mask for bad pixels
    11271127
    11281128        ppStatsFPA(stats, outRO->parent->parent->parent, view, maskBad, config);
  • trunk/ppStack/src/ppStackMatch.c

    r21021 r21183  
    104104
    105105// Generate a background model of the readout we're matching
    106 psImage *stackBackgroundModel(pmReadout *ro, psMaskType maskVal, const psArray *sources, int size)
     106psImage *stackBackgroundModel(pmReadout *ro, psImageMaskType maskVal, const psArray *sources, int size)
    107107{
    108108    psImage *image = ro->image, *mask = ro->mask; // Image and mask of readout
     
    169169
    170170    psString maskValStr = psMetadataLookupStr(NULL, recipe, "MASK.VAL"); // Name of bits to mask going in
    171     psMaskType maskVal = pmConfigMaskGet(maskValStr, config); // Bits to mask going in to pmSubtractionMatch
     171    psImageMaskType maskVal = pmConfigMaskGet(maskValStr, config); // Bits to mask going in to pmSubtractionMatch
    172172    psString maskPoorStr = psMetadataLookupStr(NULL, recipe, "MASK.POOR"); // Name of bits to mask for poor
    173     psMaskType maskPoor = pmConfigMaskGet(maskPoorStr, config); // Bits to mask for poor pixels
     173    psImageMaskType maskPoor = pmConfigMaskGet(maskPoorStr, config); // Bits to mask for poor pixels
    174174    psString maskBadStr = psMetadataLookupStr(NULL, recipe, "MASK.BAD"); // Name of bits to mask for bad
    175     psMaskType maskBad = pmConfigMaskGet(maskBadStr, config); // Bits to mask for bad pixels
     175    psImageMaskType maskBad = pmConfigMaskGet(maskBadStr, config); // Bits to mask for bad pixels
    176176
    177177    bool mdok;                          // Status of MD lookup
  • trunk/ppStack/src/ppStackPhotometry.c

    r20995 r21183  
    4545        return false;
    4646    }
    47     psMaskType maskVal = pmConfigMaskGet(maskValStr, config); // Bits to mask
     47    psImageMaskType maskVal = pmConfigMaskGet(maskValStr, config); // Bits to mask
    4848
    4949    psImage *image = ro->image, *mask = ro->mask; // Image and mask from readout
     
    8585            float dy2 = PS_SQR(y - v); // Distance from centroid
    8686            for (int u = xMin; u <= xMax; u++) {
    87                 if (mask->data.PS_TYPE_MASK_DATA[v][u] & maskVal) {
     87                if (mask->data.PS_TYPE_IMAGE_MASK_DATA[v][u] & maskVal) {
    8888                    numBadPix++;
    8989                    continue;
     
    133133
    134134    // set maskValue and markValue in the psphot recipe
    135     psMaskType maskValue = pmConfigMaskGet("BLANK", config); // Bits to mask
    136     psMaskType markValue = pmConfigMaskGet("MARK.VALUE", config); // Bits to use for marking
    137     psMetadataAddU8 (recipe, PS_LIST_TAIL, "MASK.PSPHOT", PS_META_REPLACE, "Bits to mask", maskValue);
    138     psMetadataAddU8 (recipe, PS_LIST_TAIL, "MARK.PSPHOT", PS_META_REPLACE, "Bits to use for mark", markValue);
     135    psImageMaskType maskValue = pmConfigMaskGet("BLANK", config); // Bits to mask
     136    psImageMaskType markValue = pmConfigMaskGet("MARK.VALUE", config); // Bits to use for marking
     137    psMetadataAddImageMask (recipe, PS_LIST_TAIL, "MASK.PSPHOT", PS_META_REPLACE, "Bits to mask", maskValue);
     138    psMetadataAddImageMask (recipe, PS_LIST_TAIL, "MARK.PSPHOT", PS_META_REPLACE, "Bits to use for mark", markValue);
    139139
    140140    if (!psphotReadout(config, view)) {
  • trunk/ppStack/src/ppStackReadout.c

    r20884 r21183  
    114114
    115115    psString maskValStr = psMetadataLookupStr(NULL, recipe, "MASK.VAL"); // Name of bits to mask going in
    116     psMaskType maskVal = pmConfigMaskGet(maskValStr, config); // Bits to mask going in to pmSubtractionMatch
     116    psImageMaskType maskVal = pmConfigMaskGet(maskValStr, config); // Bits to mask going in to pmSubtractionMatch
    117117    psString maskBadStr = psMetadataLookupStr(NULL, recipe, "MASK.BAD"); // Name of bits to mask for bad
    118     psMaskType maskBad = pmConfigMaskGet(maskBadStr, config); // Bits to mask for bad pixels
     118    psImageMaskType maskBad = pmConfigMaskGet(maskBadStr, config); // Bits to mask for bad pixels
    119119
    120120    int num = readouts->n;              // Number of inputs
     
    141141        // Ensure there is a mask, or pmStackCombine will complain
    142142        if (!ro->mask) {
    143             ro->mask = psImageAlloc(ro->image->numCols, ro->image->numRows, PS_TYPE_MASK);
     143            ro->mask = psImageAlloc(ro->image->numCols, ro->image->numRows, PS_TYPE_IMAGE_MASK);
    144144            psImageInit(ro->mask, 0);
    145145        }
     
    208208
    209209    psString maskValStr = psMetadataLookupStr(NULL, recipe, "MASK.VAL"); // Name of bits to mask going in
    210     psMaskType maskVal = pmConfigMaskGet(maskValStr, config); // Bits to mask going in to pmSubtractionMatch
     210    psImageMaskType maskVal = pmConfigMaskGet(maskValStr, config); // Bits to mask going in to pmSubtractionMatch
    211211    psString maskBadStr = psMetadataLookupStr(NULL, recipe, "MASK.BAD"); // Name of bits to mask for bad
    212     psMaskType maskBad = pmConfigMaskGet(maskBadStr, config); // Bits to mask for bad pixels
     212    psImageMaskType maskBad = pmConfigMaskGet(maskBadStr, config); // Bits to mask for bad pixels
    213213
    214214    int num = readouts->n;              // Number of inputs
     
    238238        // Ensure there is a mask, or pmStackCombine will complain
    239239        if (!ro->mask) {
    240             ro->mask = psImageAlloc(ro->image->numCols, ro->image->numRows, PS_TYPE_MASK);
     240            ro->mask = psImageAlloc(ro->image->numCols, ro->image->numRows, PS_TYPE_IMAGE_MASK);
    241241            psImageInit(ro->mask, 0);
    242242        }
  • trunk/ppStack/src/ppStackSources.c

    r21092 r21183  
    109109            psVectorInit(mag, NAN);
    110110            for (int j = 0; j < match->num; j++) {
    111                 if (match->mask->data.PS_TYPE_MASK_DATA[j]) {
     111                if (match->mask->data.PS_TYPE_VECTOR_MASK_DATA[j]) {
    112112                    continue;
    113113                }
Note: See TracChangeset for help on using the changeset viewer.