IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Apr 7, 2009, 4:50:25 PM (17 years ago)
Author:
Paul Price
Message:

Merging branches/pap from r23739 onto trunk. No conflicts, ppSub builds fine.

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/ppSub

  • trunk/ppSub/src

    • Property svn:ignore
      •  

        old new  
        1010stamp-h1
        1111ppSubKernel
         12ppSubErrorCodes.h
         13ppSubErrorCodes.c
  • trunk/ppSub/src/ppSubDefineOutput.c

    r23403 r23740  
    2121#include "ppSub.h"
    2222
    23 bool ppSubDefineOutput(pmConfig *config, const pmFPAview *view)
     23bool ppSubDefineOutput(const char *name, pmConfig *config)
    2424{
     25    psAssert(name, "Require name");
    2526    psAssert(config, "Require configuration");
    26     psAssert(view, "Require view");
    2727
    28     pmCell *outCell = pmFPAfileThisCell(config->files, view, "PPSUB.OUTPUT"); // Output cell
     28    pmFPAview *view = ppSubViewReadout(); // View to readout
     29    pmCell *outCell = pmFPAfileThisCell(config->files, view, name); // Output cell
    2930    pmFPA *outFPA = outCell->parent->parent; // Output FPA
    30     pmHDU *outHDU = outFPA->hdu; // Output HDU
     31    pmHDU *outHDU = outFPA->hdu;        // Output HDU
    3132    if (!outHDU->header) {
    3233        outHDU->header = psMetadataAlloc();
    3334    }
    3435
    35     // generate an output readout (first check if it's already there by virtue of kernels)
    36     pmReadout *outRO = pmFPAfileThisReadout(config->files, view, "PPSUB.OUTPUT.KERNELS"); // RO with kernel
    37     if (!outRO) {
    38         outRO = pmReadoutAlloc(outCell); // Output readout: subtraction
     36    // The output readout may already be present if we read in the convolution kernel
     37    pmReadout *outRO = NULL;            // Output readout
     38    if (outCell->readouts && outCell->readouts->n > 0 && outCell->readouts->data[0]) {
     39        outRO = psMemIncrRefCounter(outCell->readouts->data[0]);
     40    } else {
     41        outRO = pmReadoutAlloc(outCell);
    3942    }
    4043
    41     // convolved input images
     44    // Convolved input images
    4245    pmReadout *inConv = pmFPAfileThisReadout(config->files, view, "PPSUB.INPUT.CONV"); // Input readout
    4346    pmReadout *refConv = pmFPAfileThisReadout(config->files, view, "PPSUB.REF.CONV"); // Reference readout
     47    psFree(view);
    4448
    4549    // Add kernel descrption to header.
     
    5559    if (!kernels) {
    5660        psError(PS_ERR_UNEXPECTED_NULL, true, "Unable to find SUBTRACTION.KERNEL");
    57         psFree(inConv);
    58         psFree(refConv);
    5961        psFree(outRO);
    6062        return false;
     
    6365                     kernels->description);
    6466
     67    // Add additional data to the header
     68    pmFPAfile *refFile = psMetadataLookupPtr(NULL, config->files, "PPSUB.REF"); // Reference file
     69    pmFPAfile *inFile = psMetadataLookupPtr(NULL, config->files, "PPSUB.INPUT"); // Input file
     70    psMetadataAddStr(outHDU->header, PS_LIST_TAIL, "PPSUB.REFERENCE", 0,
     71                     "Subtraction reference", refFile->filename);
     72    psMetadataAddStr(outHDU->header, PS_LIST_TAIL, "PPSUB.INPUT", 0,
     73                     "Subtraction input", inFile->filename);
     74    ppSubVersionHeader(outHDU->header);
     75
     76
    6577    outRO->analysis = psMetadataCopy(outRO->analysis, analysis);
    6678
    67 #ifdef TESTING
    68     {
    69         psImage *kernelImage = psMetadataLookupPtr(&mdok, analysis,
    70                                                    "SUBTRACTION.KERNEL.IMAGE"); // Image of kernel
    71         psFits *fits = psFitsOpen("kernel.fits", "w");
    72         psFitsWriteImage(fits, NULL, kernelImage, 0, NULL);
    73         psFitsClose(fits);
    74     }
    75 #endif
     79    psFree(outRO);
    7680
    7781    return true;
Note: See TracChangeset for help on using the changeset viewer.