IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jun 19, 2007, 4:49:08 PM (19 years ago)
Author:
Paul Price
Message:

Adding chip and mask output for chip-mosaicked files. Was going to make this the default output, but we only have to have it selected in the recipe. Reduced the name of the filerule down, so that it's not excessively long (e.g., PPIMAGE.OUTPUT.CHIP.MASK --> PPIMAGE.CHIP.MASK).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ppImage/src/ppImageParseCamera.c

    r13844 r13901  
    2424    pmFPAfile *inputMask = pmFPAfileBindFromArgs(&status, input, config, "PPIMAGE.INPUT.MASK", "INPUT.MASK");
    2525    if (!status) {
    26         psError (PS_ERR_UNKNOWN, false, "failed to load find definition");
    27         return NULL;
     26        psError (PS_ERR_UNKNOWN, false, "failed to load find definition");
     27        return NULL;
    2828    }
    2929    if (inputMask && inputMask->type != PM_FPA_FILE_MASK) {
     
    3434    pmFPAfile *inputWeight = pmFPAfileBindFromArgs(&status, input, config, "PPIMAGE.INPUT.WEIGHT", "INPUT.WEIGHT");
    3535    if (!status) {
    36         psError (PS_ERR_UNKNOWN, false, "failed to load find definition");
    37         return NULL;
     36        psError (PS_ERR_UNKNOWN, false, "failed to load find definition");
     37        return NULL;
    3838    }
    3939    if (inputWeight && inputWeight->type != PM_FPA_FILE_WEIGHT) {
     
    5252    // not all input or output images are used in a given recipe
    5353    if (options->doBias) {
    54         if (!ppImageDefineFile (config, input->fpa, "PPIMAGE.BIAS", "BIAS", PM_FPA_FILE_IMAGE, PM_DETREND_TYPE_BIAS)) {
    55             psError (PS_ERR_IO, false, "Can't find a bias image source");
    56             psFree (options);
    57             return NULL;
    58         }
     54        if (!ppImageDefineFile (config, input->fpa, "PPIMAGE.BIAS", "BIAS", PM_FPA_FILE_IMAGE, PM_DETREND_TYPE_BIAS)) {
     55            psError (PS_ERR_IO, false, "Can't find a bias image source");
     56            psFree (options);
     57            return NULL;
     58        }
    5959    }
    6060    if (options->doDark) {
    61         if (!ppImageDefineFile (config, input->fpa, "PPIMAGE.DARK", "DARK", PM_FPA_FILE_IMAGE, PM_DETREND_TYPE_DARK)) {
    62             psError (PS_ERR_IO, false, "Can't find a dark image source");
    63             psFree (options);
    64             return NULL;
    65         }
     61        if (!ppImageDefineFile (config, input->fpa, "PPIMAGE.DARK", "DARK", PM_FPA_FILE_IMAGE, PM_DETREND_TYPE_DARK)) {
     62            psError (PS_ERR_IO, false, "Can't find a dark image source");
     63            psFree (options);
     64            return NULL;
     65        }
    6666    }
    6767    if (options->doMask) {
    68         if (!ppImageDefineFile (config, input->fpa, "PPIMAGE.MASK", "MASK", PM_FPA_FILE_MASK, PM_DETREND_TYPE_MASK)) {
    69             psError (PS_ERR_IO, false, "Can't find a mask image source");
    70             psFree (options);
    71             return NULL;
    72         }
     68        if (!ppImageDefineFile (config, input->fpa, "PPIMAGE.MASK", "MASK", PM_FPA_FILE_MASK, PM_DETREND_TYPE_MASK)) {
     69            psError (PS_ERR_IO, false, "Can't find a mask image source");
     70            psFree (options);
     71            return NULL;
     72        }
    7373    }
    7474    if (options->doShutter) {
    75         if (!ppImageDefineFile (config, input->fpa, "PPIMAGE.SHUTTER", "SHUTTER", PM_FPA_FILE_IMAGE, PM_DETREND_TYPE_SHUTTER)) {
    76             psError (PS_ERR_IO, false, "Can't find a flat image source");
    77             psFree (options);
    78             return NULL;
    79         }
     75        if (!ppImageDefineFile (config, input->fpa, "PPIMAGE.SHUTTER", "SHUTTER", PM_FPA_FILE_IMAGE, PM_DETREND_TYPE_SHUTTER)) {
     76            psError (PS_ERR_IO, false, "Can't find a flat image source");
     77            psFree (options);
     78            return NULL;
     79        }
    8080    }
    8181
    8282    if (options->doFlat) {
    83         if (!ppImageDefineFile (config, input->fpa, "PPIMAGE.FLAT", "FLAT", PM_FPA_FILE_IMAGE, PM_DETREND_TYPE_FLAT)) {
    84             psError (PS_ERR_IO, false, "Can't find a shutter image source");
    85             psFree (options);
    86             return NULL;
    87         }
     83        if (!ppImageDefineFile (config, input->fpa, "PPIMAGE.FLAT", "FLAT", PM_FPA_FILE_IMAGE, PM_DETREND_TYPE_FLAT)) {
     84            psError (PS_ERR_IO, false, "Can't find a shutter image source");
     85            psFree (options);
     86            return NULL;
     87        }
    8888    }
    8989
     
    136136skip_fringe:
    137137    if (options->doFringe) {
    138         if (!ppImageDefineFile (config, input->fpa, "PPIMAGE.FRINGE", "FRINGE", PM_FPA_FILE_FRINGE, PM_DETREND_TYPE_FRINGE)) {
    139             psError (PS_ERR_IO, false, "Can't find a fringe image source");
    140             return NULL;
    141         }
     138        if (!ppImageDefineFile (config, input->fpa, "PPIMAGE.FRINGE", "FRINGE", PM_FPA_FILE_FRINGE, PM_DETREND_TYPE_FRINGE)) {
     139            psError (PS_ERR_IO, false, "Can't find a fringe image source");
     140            return NULL;
     141        }
    142142    }
    143143
     
    178178
    179179    // XXX should these be bound explicitly to the output->fpa rather than the input->fpa?
    180     pmFPAfile *byChip = pmFPAfileDefineChipMosaic(config, input->fpa, "PPIMAGE.OUTPUT.CHIP");
    181     if (!byChip) {
    182         psError(PS_ERR_IO, false, _("Unable to generate new file from PPIMAGE.OUTPUT.CHIP"));
    183         psFree(options);
    184         return NULL;
    185     }
    186     if (byChip->type != PM_FPA_FILE_IMAGE) {
    187         psError(PS_ERR_IO, true, "PPIMAGE.OUTPUT.CHIP is not of type IMAGE");
    188         psFree(options);
    189         return NULL;
    190     }
     180    pmFPAfile *chipImage = pmFPAfileDefineChipMosaic(config, input->fpa, "PPIMAGE.CHIP");
     181    if (!chipImage) {
     182        psError(PS_ERR_IO, false, _("Unable to generate new file from PPIMAGE.CHIP"));
     183        psFree(options);
     184        return NULL;
     185    }
     186    if (chipImage->type != PM_FPA_FILE_IMAGE) {
     187        psError(PS_ERR_IO, true, "PPIMAGE.CHIP is not of type IMAGE");
     188        psFree(options);
     189        return NULL;
     190    }
     191    pmFPAfile *chipMask = pmFPAfileDefineOutput(config, chipImage->fpa, "PPIMAGE.CHIP.MASK");
     192    if (!chipMask) {
     193        psError(PS_ERR_IO, false, _("Unable to generate output file from PPIMAGE.CHIP.MASK"));
     194        psFree(options);
     195        return NULL;
     196    }
     197    if (chipMask->type != PM_FPA_FILE_MASK) {
     198        psError(PS_ERR_IO, true, "PPIMAGE.CHIP.MASK is not of type MASK");
     199        psFree(options);
     200        return NULL;
     201    }
     202    pmFPAfile *chipWeight = pmFPAfileDefineOutput(config, chipImage->fpa, "PPIMAGE.CHIP.WEIGHT");
     203    if (!chipWeight) {
     204        psError(PS_ERR_IO, false, _("Unable to generate output file from PPIMAGE.CHIP.WEIGHT"));
     205        psFree(options);
     206        return NULL;
     207    }
     208    if (chipWeight->type != PM_FPA_FILE_WEIGHT) {
     209        psError(PS_ERR_IO, true, "PPIMAGE.CHIP.WEIGHT is not of type WEIGHT");
     210        psFree(options);
     211        return NULL;
     212    }
     213
    191214    pmFPAfile *byFPA1 = pmFPAfileDefineFPAMosaic(config, input->fpa, "PPIMAGE.OUTPUT.FPA1");
    192215    if (!byFPA1) {
     
    215238    // we create a copy of the mosaicked image for psphot so we can write out a clean image
    216239    if (options->doPhotom) {
    217         pmFPAfile *psphotInput = pmFPAfileDefineFromFPA (config, byChip->fpa, 1, 1, "PSPHOT.INPUT");
     240        pmFPAfile *psphotInput = pmFPAfileDefineFromFPA (config, chipImage->fpa, 1, 1, "PSPHOT.INPUT");
    218241        PS_ASSERT (psphotInput, false);
    219242
     
    251274
    252275    // save any of these files?
    253     output->save = options->BaseFITS;
    254     byChip->save = options->ChipFITS;
     276    output->save = outMask->save = outWeight->save = options->BaseFITS;
     277    chipImage->save = chipMask->save = chipWeight->save = options->ChipFITS;
    255278    byFPA1->save = options->FPA1FITS;
    256279    byFPA2->save = options->FPA2FITS;
    257280
    258     // output is used as a carrier: input to byChip -> require the data to remain at the CHIP level
     281    // output is used as a carrier: input to chipImage -> require the data to remain at the CHIP level
    259282    output->freeLevel = PS_MIN (output->freeLevel, PM_FPA_LEVEL_CHIP);
    260283    output->dataLevel = output->freeLevel;
     
    267290    outWeight->dataLevel = output->dataLevel;
    268291
     292    // Ditto for the chip-mosaicked version
     293    chipMask->freeLevel   = chipImage->freeLevel;
     294    chipWeight->freeLevel = chipImage->freeLevel;
     295    chipMask->dataLevel   = chipImage->dataLevel;
     296    chipWeight->dataLevel = chipImage->dataLevel;
     297
    269298    // the input data is the same as the output data : force the free levels to match
    270299    input->freeLevel = PS_MIN (output->freeLevel, input->freeLevel);
    271300
    272301    // define the binned target files (which may just be carriers for some camera configurations)
    273     pmFPAfile *bin1 = pmFPAfileDefineFromFPA (config, byChip->fpa, options->xBin1, options->yBin1, "PPIMAGE.BIN1");
     302    pmFPAfile *bin1 = pmFPAfileDefineFromFPA (config, chipImage->fpa, options->xBin1, options->yBin1, "PPIMAGE.BIN1");
    274303    if (!bin1) {
    275304        psError(PS_ERR_IO, false, _("Unable to generate new file from PPIMAGE.BIN1"));
     
    283312    }
    284313
    285     pmFPAfile *bin2 = pmFPAfileDefineFromFPA (config, byChip->fpa, options->xBin2, options->yBin2, "PPIMAGE.BIN2");
     314    pmFPAfile *bin2 = pmFPAfileDefineFromFPA (config, chipImage->fpa, options->xBin2, options->yBin2, "PPIMAGE.BIN2");
    286315    if (!bin2) {
    287316        psError(PS_ERR_IO, false, _("Unable to generate new file from PPIMAGE.BIN2"));
     
    354383        outMask->save = false;
    355384        outWeight->save = false;
     385        chipMask->save = false;
     386        chipWeight->save = false;
    356387    }
    357388
Note: See TracChangeset for help on using the changeset viewer.