IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Feb 17, 2009, 2:31:20 PM (17 years ago)
Author:
Paul Price
Message:

Cleaning up. Had trouble getting the output photometry file written out, but works now.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ppSub/src/ppSubReadoutPhotometry.c

    r21374 r21524  
    66 *
    77 *  @author IfA
    8  *  @version $Revision: 1.3 $ $Name: not supported by cvs2svn $
    9  *  @date $Date: 2009-02-06 03:20:02 $
     8 *  @version $Revision: 1.4 $ $Name: not supported by cvs2svn $
     9 *  @date $Date: 2009-02-18 00:31:20 $
    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#include <psphot.h>
     21
    1322#include "ppSub.h"
    1423
    15 /**
    16  * Photometry stage 2: find and measure sources on the subtracted image
    17  */
    18 bool ppSubReadoutPhotometry (pmConfig *config, psMetadata *stats, const pmFPAview *view) {
    19 
    20     bool mdok = false;
     24bool ppSubReadoutPhotometry (pmConfig *config, psMetadata *stats, const pmFPAview *view)
     25{
     26    psAssert(config, "Require configuration");
     27    psAssert(view, "Require view");
    2128
    2229    // Look up recipe values
     
    3239    // The PSF (measured in ppSubMakePSF) is stored on the chip->analysis of PSPHOT.INPUT
    3340    // In order to use an incoming PSF, it must be stored on the chip->analysis of PSPHOT.PSF.LOAD
    34     pmChip *psfInputChip = pmFPAfileThisChip(config->files, view, "PSPHOT.INPUT");
     41    pmChip *psfInputChip = pmFPAfileThisChip(config->files, view, "PSPHOT.INPUT"); // Chip with PSF
    3542    psAssert (psfInputChip, "should have been generated for ppSubMakePSF");
    36 
    37     pmChip *psfLoadChip = pmFPAfileThisChip(config->files, view, "PSPHOT.PSF.LOAD");
     43    pmChip *psfLoadChip = pmFPAfileThisChip(config->files, view, "PSPHOT.PSF.LOAD"); // Chip to have PSF
    3844    psAssert (psfLoadChip, "PSPHOT.PSF.LOAD should have been defined in ppSubCamera");
    39 
    40     pmPSF *psf = psMetadataLookupPtr(NULL, psfInputChip->analysis, "PSPHOT.PSF");
     45    pmPSF *psf = psMetadataLookupPtr(NULL, psfInputChip->analysis, "PSPHOT.PSF"); // PSF for photometry
    4146    if (!psf) {
    4247        psError(PS_ERR_UNEXPECTED_NULL, true, "Unable to find PSF from psphot");
    4348        return false;
    4449    }
    45     psMetadataAddPtr(psfLoadChip->analysis, PS_LIST_TAIL, "PSPHOT.PSF", PS_DATA_UNKNOWN | PS_META_REPLACE, "PSF from matched addition", psf);
     50    psMetadataAddPtr(psfLoadChip->analysis, PS_LIST_TAIL, "PSPHOT.PSF", PS_DATA_UNKNOWN | PS_META_REPLACE,
     51                     "PSF from ppSubMakePSF", psf);
     52
     53    bool mdok = false;
    4654
    4755    // psphotReadoutMinimal performs the photometry analysis on PSPHOT.INPUT; we need to move
    4856    // around the pointers so PSPHOT.INPUT corresponds to the output image; previously, it was
    4957    // equivalent to the minuend image.
    50     pmFPAfile *outputFile = psMetadataLookupPtr(&mdok, config->files, "PPSUB.OUTPUT");
     58    pmFPAfile *outputFile = psMetadataLookupPtr(&mdok, config->files, "PPSUB.OUTPUT"); // Output file
    5159    pmReadout *outRO = pmFPAviewThisReadout(view, outputFile->fpa); // Readout with the sources
    5260
    5361    // XXX possibly rename this to PPSUB.RESID?
    54     pmFPAfile *photFile = psMetadataLookupPtr(&mdok, config->files, "PSPHOT.RESID");
    55     pmReadout *photRO = pmFPAviewThisReadout(view, photFile->fpa); // Readout with the sources
     62    pmFPAfile *photFile = psMetadataLookupPtr(&mdok, config->files, "PSPHOT.INPUT"); // Photometry file
     63    pmReadout *photRO = pmFPAviewThisReadout(view, photFile->fpa); // Readout to photometer
    5664    if (!photRO) {
    57         pmCell *cell = pmFPAfileThisCell(config->files, view, "PSPHOT.RESID"); // Output cell
     65        pmCell *cell = pmFPAviewThisCell(view, photFile->fpa); // Cell to photometer
    5866        photRO = pmReadoutAlloc(cell); // Output readout: subtraction
    5967    }
     
    6270        photRO->variance = psImageCopy(photRO->variance, outRO->variance, PS_TYPE_F32);
    6371    } else {
    64         psFree (photRO->variance);
     72        psFree(photRO->variance);
    6573        photRO->variance = NULL;
    6674    }
     
    6876        photRO->mask = psImageCopy(photRO->mask, outRO->mask, PS_TYPE_IMAGE_MASK);
    6977    } else {
    70         psFree (photRO->mask);
     78        psFree(photRO->mask);
    7179        photRO->mask = NULL;
    7280    }
    7381
    74     // pmFPAfile *photFile = outputFile;
    75     psMetadataAddPtr (config->files, PS_LIST_TAIL, "PSPHOT.INPUT", PS_DATA_UNKNOWN | PS_META_REPLACE, "psphot input : view on another pmFPAfile", photFile);
    76 
    77     // old-style variance renormalization
    78     if (!ppSubReadoutRenormPhot (config, recipe, photRO)) {
    79         psError(PS_ERR_UNKNOWN, false, "failure in renormalization");
    80         return false;
    81     }
     82#if 0
     83    psMetadataAddPtr(config->files, PS_LIST_TAIL, "PSPHOT.INPUT", PS_DATA_UNKNOWN | PS_META_REPLACE,
     84                     "psphot input: view on another pmFPAfile", photFile);
     85#endif
    8286
    8387    if (!psphotReadoutMinimal(config, view)) {
     
    8690        psErrorClear();
    8791    }
     92#if 1
     93    photRO->data_exists = true;
     94    photRO->parent->data_exists = true;
     95    photRO->parent->parent->data_exists = true;
     96#endif
    8897
    8998    if (stats) {
     
    101110}
    102111
    103     // XXX not sure that this is still needed (only if psphotReadoutMinimal measures the background)
    104     // if (!pmFPAfileDropInternal(config->files, "PSPHOT.BACKMDL") ||
    105     //  !pmFPAfileDropInternal (config->files, "PSPHOT.BACKMDL.STDEV") ||
    106     //  !pmFPAfileDropInternal (config->files, "PSPHOT.BACKGND")) {
    107     //  psError(PS_ERR_UNKNOWN, false, "Unable to drop PSPHOT internal files.");
    108     //  return false;
    109     // }
    110112
    111     // pmFPAfileActivate(config->files, false, "PSPHOT.INPUT");
    112     // pmFPAfileActivate(config->files, false, "PSPHOT.LOAD.PSF");
     113
    113114
    114115
Note: See TracChangeset for help on using the changeset viewer.