IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Feb 19, 2009, 7:59:50 AM (17 years ago)
Author:
beaumont
Message:

Added visualizations to ppSub. Set up a single variable in pmVisual to control when plots are drawn.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/cnb_branch_20090215/ppSub/src/ppSubDefineOutput.c

    r21360 r21536  
    66 *
    77 *  @author IfA
    8  *  @version $Revision: 1.2 $ $Name: not supported by cvs2svn $
    9  *  @date $Date: 2009-02-06 01:37:17 $
     8 *  @version $Revision: 1.2.4.1 $ $Name: not supported by cvs2svn $
     9 *  @date $Date: 2009-02-19 17:59:49 $
    1010 *  Copyright 2009 Institute for Astronomy, University of Hawaii
    1111 */
    1212
     13#ifdef HAVE_CONFIG_H
     14#include <config.h>
     15#endif
     16
     17#include <stdio.h>
     18#include <pslib.h>
     19#include <psmodules.h>
     20
    1321#include "ppSub.h"
    1422
    15 bool ppSubDefineOutput (pmConfig *config, const pmFPAview *view) {
     23bool ppSubDefineOutput(pmConfig *config, const pmFPAview *view)
     24{
     25    psAssert(config, "Require configuration");
     26    psAssert(view, "Require view");
    1627
    17     bool mdok;
    18 
    19     // generate an output readout
     28    // generate an output readout
    2029    pmCell *outCell = pmFPAfileThisCell(config->files, view, "PPSUB.OUTPUT"); // Output cell
    2130    pmReadout *outRO = pmReadoutAlloc(outCell); // Output readout: subtraction
     
    3039    pmReadout *refConv = pmFPAfileThisReadout(config->files, view, "PPSUB.REF.CONV"); // Reference readout
    3140
    32     // Add kernel descrption to header.  We don't know which readout gets the kernels because
    33     // it depends on which is larger (the choice is set in ppSubMatchPSFs)
    34     bool inputHasKernel = true;
    35     pmSubtractionKernels *kernels = psMetadataLookupPtr(&mdok, inConv->analysis, PM_SUBTRACTION_ANALYSIS_KERNEL); // Subtraction kernel
     41    // Add kernel descrption to header.
     42    // We don't know which readout has the kernels because it depends on which PSF is larger
     43    bool mdok;                          // Status of MD lookup
     44    psMetadata *analysis = inConv->analysis; // Analysis metadata with kernel information
     45    pmSubtractionKernels *kernels = psMetadataLookupPtr(&mdok, analysis,
     46                                                        PM_SUBTRACTION_ANALYSIS_KERNEL); // Subtraction kernel
    3647    if (!kernels) {
    37         kernels = psMetadataLookupPtr(&mdok, refConv->analysis, PM_SUBTRACTION_ANALYSIS_KERNEL);
    38         inputHasKernel = false;
     48        analysis = refConv->analysis;
     49        kernels = psMetadataLookupPtr(&mdok, analysis, PM_SUBTRACTION_ANALYSIS_KERNEL);
    3950    }
    4051    if (!kernels) {
     
    4556        return false;
    4657    }
    47     psMetadataAddStr(outHDU->header, PS_LIST_TAIL, "PPSUB.KERNEL", 0, "Subtraction kernel", kernels->description);
     58    psMetadataAddStr(outHDU->header, PS_LIST_TAIL, "PPSUB.KERNEL", 0, "Subtraction kernel",
     59                     kernels->description);
    4860
    49     if (inputHasKernel) {
    50         outRO->analysis = psMetadataCopy(outRO->analysis, inConv->analysis);
    51     } else {
    52         outRO->analysis = psMetadataCopy(outRO->analysis, refConv->analysis);
    53     }
     61    outRO->analysis = psMetadataCopy(outRO->analysis, analysis);
    5462
    5563#ifdef TESTING
    56     psImage *kernelImage = NULL;
    57 
    58     if (inputHasKernel) {
    59         kernelImage = psMetadataLookupPtr(&mdok, inConv->analysis, "SUBTRACTION.KERNEL.IMAGE"); // Image of the kernels
    60     } else {
    61         kernelImage = psMetadataLookupPtr(&mdok, refConv->analysis, "SUBTRACTION.KERNEL.IMAGE");
     64    {
     65        psImage *kernelImage = psMetadataLookupPtr(&mdok, analysis,
     66                                                   "SUBTRACTION.KERNEL.IMAGE"); // Image of kernel
     67        psFits *fits = psFitsOpen("kernel.fits", "w");
     68        psFitsWriteImage(fits, NULL, kernelImage, 0, NULL);
     69        psFitsClose(fits);
    6270    }
    63 
    64     psFits *fits = psFitsOpen("kernel.fits", "w");
    65     psFitsWriteImage(fits, NULL, kernelImage, 0, NULL);
    66     psFitsClose(fits);
    6771#endif
    6872
Note: See TracChangeset for help on using the changeset viewer.