IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 6056


Ignore:
Timestamp:
Jan 19, 2006, 2:55:33 PM (21 years ago)
Author:
eugene
Message:

adapted everything to work with pmReadout *readout instead of eamReadout *imdata

Location:
trunk/psphot
Files:
20 edited

Legend:

Unmodified
Added
Removed
  • trunk/psphot/Makefile

    r5993 r6056  
    5656$(SRC)/psSparse.$(ARCH).o           \
    5757$(SRC)/psPolynomialUtils.$(ARCH).o  \
    58 $(SRC)/psImageData.$(ARCH).o        \
    5958$(SRC)/psModulesUtils.$(ARCH).o     \
    6059$(SRC)/pmSourceContour.$(ARCH).o    \
     
    6665$(SRC)/psBicube.$(ARCH).o           \
    6766$(SRC)/psphotTestArguments.$(ARCH).o
     67
     68OLD = \
     69$(SRC)/psImageData.$(ARCH).o       
     70
    6871
    6972psphot: $(BIN)/psphot.$(ARCH)
  • trunk/psphot/src/psphot.c

    r5993 r6056  
    55
    66    psMetadata  *config  = NULL;
    7     eamReadout  *imdata  = NULL;
     7    psMetadata  *header  = NULL;
     8    pmReadout   *readout  = NULL;
    89    psArray     *sources = NULL;
    910    psArray     *peaks   = NULL;
     
    1819
    1920    // load input data (config and images (signal, noise, mask)
    20     imdata = psphotSetup (config);
     21    readout = psphotSetup (config, &header);
    2122
    2223    // run a single-model test if desired
    23     psphotModelTest (imdata, config);
     24    psphotModelTest (readout, config);
    2425
    2526    // measure image stats for initial guess
    26     sky = psphotImageStats (imdata, config);
     27    sky = psphotImageStats (readout, config);
    2728
    2829    // generate a background model (currently, 2D polynomial)
    2930    // XXX this should be available to be re-added to the original image
    30     psphotImageBackground (imdata, config, sky);
     31    psphotImageBackground (readout, config, sky);
    3132
    3233    // find the peaks in the image
    33     peaks = psphotFindPeaks (imdata, config, sky);
     34    peaks = psphotFindPeaks (readout, config, sky);
    3435
    3536    // construct sources and measure basic stats
    36     sources = psphotSourceStats (imdata, config, peaks);
     37    sources = psphotSourceStats (readout, config, peaks);
    3738
    3839    // classify sources based on moments, brightness
     
    4950    switch (FITMODE) {
    5051      case 0:
    51         psphotEnsemblePSF (imdata, config, sources, psf, sky);
     52        psphotEnsemblePSF (readout, config, sources, psf, sky);
    5253        break;
    5354
    5455      case 1:
    55         psphotEnsemblePSF (imdata, config, sources, psf, sky);
    56         psphotFullFit (imdata, config, sources, psf, sky);
     56        psphotEnsemblePSF (readout, config, sources, psf, sky);
     57        psphotFullFit (readout, config, sources, psf, sky);
    5758        psphotReplaceUnfit (sources);
    58         psphotApResid (imdata, sources, config, psf);
     59        psphotApResid (readout, sources, config, psf);
    5960        break;
    6061
    6162      case 2:
    62         psphotEnsemblePSF (imdata, config, sources, psf, sky);
    63         psphotBlendFit (imdata, config, sources, psf, sky);
     63        psphotEnsemblePSF (readout, config, sources, psf, sky);
     64        psphotBlendFit (readout, config, sources, psf, sky);
    6465        psphotReplaceUnfit (sources);
    65         psphotApResid (imdata, sources, config, psf);
     66        psphotApResid (readout, sources, config, psf);
    6667        break;
    6768
    6869      case 3:
    69         psphotApplyPSF (imdata, config, sources, psf, sky);
     70        psphotApplyPSF (readout, config, sources, psf, sky);
    7071        break;
    7172
    7273      case 4:
    73         psphotApplyPSF (imdata, config, sources, psf, sky);
    74         psphotFitExtended (imdata, config, sources, sky);
     74        psphotApplyPSF (readout, config, sources, psf, sky);
     75        psphotFitExtended (readout, config, sources, sky);
    7576        break;
    7677    }
    7778
    7879    // write out data in appropriate format
    79     psphotOutput (imdata, config, sources, psf, sky);
     80    psphotOutput (readout, header, config, sources, psf, sky);
    8081    psLogMsg ("psphot", 3, "wrote output: %f sec\n", psTimerMark ("psphot"));
    8182    psLogMsg ("psphot", 3, "complete psphot run: %f sec\n", psTimerMark ("complete"));
  • trunk/psphot/src/psphot.h

    r5993 r6056  
    1414# define psMemCopy(A)(psMemIncrRefCounter((A)))
    1515
    16 typedef struct {
    17     psImage *image;
    18     psImage *mask;
    19     psImage *weight;
    20     psMetadata *header;
    21 } eamReadout;
    22 
    2316// top-level psphot functions
    2417psMetadata     *psphotArguments (int *argc, char **argv);
    25 eamReadout     *psphotSetup (psMetadata *config);
    26 bool            psphotModelTest (eamReadout *imdata, psMetadata *config);
    27 psStats        *psphotImageStats (eamReadout *imdata, psMetadata *config);
    28 psPolynomial2D *psphotImageBackground (eamReadout *imdata, psMetadata *config, psStats *sky);
    29 psArray        *psphotFindPeaks (eamReadout *imdata, psMetadata *config, psStats *sky);
    30 psArray        *psphotSourceStats (eamReadout *imdata, psMetadata *config, psArray *allpeaks);
     18pmReadout      *psphotSetup (psMetadata *config, psMetadata **header);
     19bool            psphotModelTest (pmReadout *readout, psMetadata *config);
     20psStats        *psphotImageStats (pmReadout *readout, psMetadata *config);
     21psPolynomial2D *psphotImageBackground (pmReadout *readout, psMetadata *config, psStats *sky);
     22psArray        *psphotFindPeaks (pmReadout *readout, psMetadata *config, psStats *sky);
     23psArray        *psphotSourceStats (pmReadout *readout, psMetadata *config, psArray *allpeaks);
    3124bool            psphotRoughClass (psArray *sources, psMetadata *config);
    3225bool            psphotBasicDeblend (psArray *sources, psMetadata *config, psStats *sky);
    3326pmPSF          *psphotChoosePSF (psMetadata *config, psArray *sources, psStats *sky);
    34 void            psphotOutput (eamReadout *imdata, psMetadata *config, psArray *sources, pmPSF *psf, psStats *sky);
     27void            psphotOutput (pmReadout *readout, psMetadata *header, psMetadata *config, psArray *sources, pmPSF *psf, psStats *sky);
    3528
    3629// optional object analysis steps
    37 bool            psphotEnsemblePSF (eamReadout *imdata, psMetadata *config, psArray *sources, pmPSF *psf, psStats *sky);
    38 bool            psphotFullFit (eamReadout *imdata, psMetadata *config, psArray *sources, pmPSF *psf, psStats *sky);
    39 bool            psphotBlendFit (eamReadout *imdata, psMetadata *config, psArray *sources, pmPSF *psf, psStats *sky);
     30bool            psphotEnsemblePSF (pmReadout *readout, psMetadata *config, psArray *sources, pmPSF *psf, psStats *sky);
     31bool            psphotFullFit (pmReadout *readout, psMetadata *config, psArray *sources, pmPSF *psf, psStats *sky);
     32bool            psphotBlendFit (pmReadout *readout, psMetadata *config, psArray *sources, pmPSF *psf, psStats *sky);
    4033bool            psphotReplaceUnfit (psArray *sources);
    41 bool            psphotApplyPSF (eamReadout *imdata, psMetadata *config, psArray *sources, pmPSF *psf, psStats *sky);
    42 bool            psphotFitExtended (eamReadout *imdata, psMetadata *config, psArray *sources, psStats *skyStats);
    43 bool            psphotApResid (eamReadout *imdata, psArray *sources, psMetadata *config, pmPSF *psf);
     34bool            psphotApplyPSF (pmReadout *readout, psMetadata *config, psArray *sources, pmPSF *psf, psStats *sky);
     35bool            psphotFitExtended (pmReadout *readout, psMetadata *config, psArray *sources, psStats *skyStats);
     36bool            psphotApResid (pmReadout *readout, psArray *sources, psMetadata *config, pmPSF *psf);
    4437
    4538// basic support functions
     
    5144int             psphotSortBySN (const void **a, const void **b);
    5245int             psphotSortByY (const void **a, const void **b);
    53 bool            psphotGrowthCurve (eamReadout *imdata, pmPSF *psf);
     46bool            psphotGrowthCurve (pmReadout *readout, pmPSF *psf);
    5447void            psphotTestArguments (int *argc, char **argv);
    5548
    5649// functions to set the correct source pixels
    5750bool            psphotInitRadiusPSF (psMetadata *config, psStats *sky, pmModelType type);
    58 bool            psphotCheckRadiusPSF (eamReadout *imdata, pmSource *source, pmModel *model);
     51bool            psphotCheckRadiusPSF (pmReadout *readout, pmSource *source, pmModel *model);
    5952bool            psphotInitRadiusEXT (psMetadata *config, psStats *sky, pmModelType type);
    60 bool            psphotCheckRadiusEXT (eamReadout *imdata, pmSource *source, pmModel *model);
    61 bool            psphotDefinePixels (pmSource *mySource, const eamReadout *imdata, psF32 x, psF32 y, psF32 Radius);
    62 bool            psphotRedefinePixels (pmSource *mySource, const eamReadout *imdata, psF32 x, psF32 y, psF32 Radius);
     53bool            psphotCheckRadiusEXT (pmReadout *readout, pmSource *source, pmModel *model);
     54bool            psphotDefinePixels (pmSource *mySource, const pmReadout *readout, psF32 x, psF32 y, psF32 Radius);
     55bool            psphotRedefinePixels (pmSource *mySource, const pmReadout *readout, psF32 x, psF32 y, psF32 Radius);
    6356
    6457// output functions
    65 bool            pmSourcesWriteText (eamReadout *imdata, psMetadata *config, char *filename, psArray *sources, pmPSF *psf, psStats *sky);
    66 bool            pmSourcesWriteOBJ  (eamReadout *imdata, psMetadata *config, char *filename, psArray *sources, pmPSF *psf, psStats *sky);
    67 bool            pmSourcesWriteCMP  (eamReadout *imdata, psMetadata *config, char *filename, psArray *sources, pmPSF *psf, psStats *sky);
    68 bool            pmSourcesWriteCMF  (eamReadout *imdata, psMetadata *config, char *filename, psArray *sources, pmPSF *psf, psStats *sky);
    69 bool            pmSourcesWriteSX   (eamReadout *imdata, psMetadata *config, char *filename, psArray *sources, pmPSF *psf, psStats *sky);
     58bool            pmSourcesWriteText (pmReadout *readout, psMetadata *config, char *filename, psArray *sources, pmPSF *psf, psStats *sky);
     59bool            pmSourcesWriteOBJ  (pmReadout *readout, psMetadata *config, char *filename, psArray *sources, pmPSF *psf, psStats *sky);
     60bool            pmSourcesWriteCMP  (pmReadout *readout, psMetadata *header, psMetadata *config, char *filename, psArray *sources, pmPSF *psf, psStats *sky);
     61bool            pmSourcesWriteCMF  (pmReadout *readout, psMetadata *header, psMetadata *config, char *filename, psArray *sources, pmPSF *psf, psStats *sky);
     62bool            pmSourcesWriteSX   (pmReadout *readout, psMetadata *config, char *filename, psArray *sources, pmPSF *psf, psStats *sky);
    7063
    7164bool            pmModelWritePSFs (psArray *sources, psMetadata *config, char *filename, pmPSF *psf);
     
    9689bool            psphotInitLimitsPSF (psMetadata *config);
    9790bool            psphotInitLimitsEXT (psMetadata *config, psStats *sky);
    98 bool            psphotFitBlend (eamReadout *imdata, pmSource *source);
    99 bool            psphotFitBlob (eamReadout *imdata, pmSource *source, psArray *sources);
    100 bool            psphotFitPSF (eamReadout *imdata, pmSource *source);
    101 pmModel        *psphotFitEXT (eamReadout *imdata, pmSource *source);
    102 psArray        *psphotFitDBL (eamReadout *imdata, pmSource *source);
    103 
    104 // eamReadout functions
    105 eamReadout     *eamReadoutAlloc (psImage *image, psImage *noise, psImage *mask, psMetadata *header);
     91bool            psphotFitBlend (pmReadout *readout, pmSource *source);
     92bool            psphotFitBlob (pmReadout *readout, pmSource *source, psArray *sources);
     93bool            psphotFitPSF (pmReadout *readout, pmSource *source);
     94pmModel        *psphotFitEXT (pmReadout *readout, pmSource *source);
     95psArray        *psphotFitDBL (pmReadout *readout, pmSource *source);
    10696
    10797// bicubic interpolation
  • trunk/psphot/src/psphotApResid.c

    r5993 r6056  
    22
    33// measure the aperture residual statistics
    4 bool psphotApResid (eamReadout *imdata, psArray *sources, psMetadata *config, pmPSF *psf) {
     4bool psphotApResid (pmReadout *readout, psArray *sources, psMetadata *config, pmPSF *psf) {
    55
    66    int Npsf;
     
    1414    float REF_RADIUS = psMetadataLookupF32 (&status, config, "PSF_REF_RADIUS");
    1515    psf->growth = pmGrowthCurveAlloc (3.0, REF_RADIUS, 0.1);
    16     psphotGrowthCurve (imdata, psf);
     16    psphotGrowthCurve (readout, psf);
    1717   
    1818    psVector *mask    = psVectorAlloc (300, PS_TYPE_U8);
  • trunk/psphot/src/psphotApplyPSF.c

    r5993 r6056  
    22
    33// fit psf model to all objects
    4 bool psphotApplyPSF (eamReadout *imdata, psMetadata *config, psArray *sources, pmPSF *psf, psStats *sky)
     4bool psphotApplyPSF (pmReadout *readout, psMetadata *config, psArray *sources, pmPSF *psf, psStats *sky)
    55{
    66    float x;
     
    3434
    3535        // sets the model radius (via source->model) and adjusts pixels as needed
    36         psphotCheckRadiusPSF (imdata, source, model);
     36        psphotCheckRadiusPSF (readout, source, model);
    3737
    3838        x = model->params->data.F32[2];
  • trunk/psphot/src/psphotBlendFit.c

    r5993 r6056  
    22
    33// XXX I don't like this name
    4 bool psphotBlendFit (eamReadout *imdata, psMetadata *config, psArray *sources, pmPSF *psf, psStats *sky) {
     4bool psphotBlendFit (pmReadout *readout, psMetadata *config, psArray *sources, pmPSF *psf, psStats *sky) {
    55
    66    psTimerStart ("psphot");
     
    3030        psTrace ("psphot.blend", 5, "trying source at %f, %f\n", source->moments->x, source->moments->y);
    3131
    32         if (psphotFitBlend (imdata, source)) continue;
    33         if (psphotFitBlob (imdata, source, sources)) continue;
     32        if (psphotFitBlend (readout, source)) continue;
     33        if (psphotFitBlob (readout, source, sources)) continue;
    3434
    3535        psTrace ("psphot.blend", 5, "failed fits\n");
  • trunk/psphot/src/psphotDefinePixels.c

    r5993 r6056  
    22
    33bool psphotDefinePixels(pmSource *mySource,
    4                         const eamReadout *imdata,
     4                        const pmReadout *readout,
    55                        psF32 x,
    66                        psF32 y,
     
    1111    // Grab a subimage of the original image of size (2 * outerRadius).
    1212    srcRegion = psRegionForSquare (x, y, Radius);
    13     srcRegion = psRegionForImage (imdata->image, srcRegion);
     13    srcRegion = psRegionForImage (readout->image, srcRegion);
    1414
    15     mySource->pixels = psImageSubset(imdata->image, srcRegion);
    16     mySource->weight = psImageSubset(imdata->weight, srcRegion);
    17     mySource->mask   = psImageSubset(imdata->mask,  srcRegion);
     15    mySource->pixels = psImageSubset(readout->image, srcRegion);
     16    mySource->weight = psImageSubset(readout->weight, srcRegion);
     17    mySource->mask   = psImageSubset(readout->mask,  srcRegion);
    1818    mySource->region = srcRegion;
    1919
     
    2222
    2323bool psphotRedefinePixels(pmSource *mySource,
    24                           const eamReadout *imdata,
     24                          const pmReadout *readout,
    2525                          psF32 x,
    2626                          psF32 y,
     
    3434    // check to see if new region is completely contained within old region
    3535    newRegion = psRegionForSquare (x, y, Radius);
    36     newRegion = psRegionForImage (imdata->image, newRegion);
     36    newRegion = psRegionForImage (readout->image, newRegion);
    3737
    3838    extend = false;
     
    5353        psFree (mySource->mask);
    5454
    55         mySource->pixels = psImageSubset(imdata->image,  newRegion);
    56         mySource->weight = psImageSubset(imdata->weight, newRegion);
    57         mySource->mask   = psImageSubset(imdata->mask,   newRegion);
     55        mySource->pixels = psImageSubset(readout->image,  newRegion);
     56        mySource->weight = psImageSubset(readout->weight, newRegion);
     57        mySource->mask   = psImageSubset(readout->mask,   newRegion);
    5858        mySource->region = newRegion;
    5959    }
  • trunk/psphot/src/psphotEnsemblePSF.c

    r5993 r6056  
    11# include "psphot.h"
    22
    3 bool psphotEnsemblePSF (eamReadout *imdata, psMetadata *config, psArray *sources, pmPSF *psf, psStats *sky) {
     3bool psphotEnsemblePSF (pmReadout *readout, psMetadata *config, psArray *sources, pmPSF *psf, psStats *sky) {
    44
    55    bool  status;
     
    103103
    104104        // if needed, ask for more object pixels
    105         psphotRedefinePixels (inSource, imdata, x, y, model->radius);
     105        psphotRedefinePixels (inSource, readout, x, y, model->radius);
    106106
    107107        // make temporary copies of the image pixels and mask
  • trunk/psphot/src/psphotFindPeaks.c

    r5986 r6056  
    11# include "psphot.h"
    22
    3 psArray *psphotFindPeaks (eamReadout *imdata, psMetadata *config, psStats *sky) {
     3psArray *psphotFindPeaks (pmReadout *readout, psMetadata *config, psStats *sky) {
    44
    55    bool  status = false;
     
    1515    NSIGMA = psMetadataLookupF32 (&status, config, "PEAKS_SMOOTH_NSIGMA");
    1616
    17     psImage *smooth = psImageCopy (NULL, imdata->image, PS_TYPE_F32);
     17    psImage *smooth = psImageCopy (NULL, readout->image, PS_TYPE_F32);
    1818    psImageSmooth (smooth, SIGMA, NSIGMA);
    1919    psLogMsg ("psphot", 4, "smooth: %f sec\n", psTimerMark ("psphot"));
  • trunk/psphot/src/psphotFitGalaxies.c

    r5993 r6056  
    11# include "psphot.h"
    22
    3 bool psphotFitExtended (eamReadout *imdata, psMetadata *config, psArray *sources, psStats *skyStats)
     3bool psphotFitExtended (pmReadout *readout, psMetadata *config, psArray *sources, psStats *skyStats)
    44{
    55    bool  status;
     
    4343
    4444        // sets the model radius (via source->model) and adjusts pixels as needed
    45         psphotCheckRadiusEXT (imdata, source, model);
     45        psphotCheckRadiusEXT (readout, source, model);
    4646
    4747        // fit EXT (not PSF) model (set/unset the pixel mask)
  • trunk/psphot/src/psphotFullFit.c

    r5993 r6056  
    11# include "psphot.h"
    22
    3 bool psphotFullFit (eamReadout *imdata, psMetadata *config, psArray *sources, pmPSF *psf, psStats *sky)
     3bool psphotFullFit (pmReadout *readout, psMetadata *config, psArray *sources, pmPSF *psf, psStats *sky)
    44{
    55    bool  status;
     
    4646        source->mode &= ~PM_SOURCE_SUBTRACTED;
    4747
    48         psphotCheckRadiusPSF (imdata, source, modelPSF);
     48        psphotCheckRadiusPSF (readout, source, modelPSF);
    4949
    5050        x = modelPSF->params->data.F32[2];
     
    9595        pmModel *modelEXT = source->modelEXT;
    9696
    97         psphotCheckRadiusEXT (imdata, source, modelEXT);
     97        psphotCheckRadiusEXT (readout, source, modelEXT);
    9898
    9999        x = modelEXT->params->data.F32[2];
  • trunk/psphot/src/psphotGrowthCurve.c

    r5986 r6056  
    55//     the 'center' option
    66
    7 bool psphotGrowthCurve (eamReadout *imdata, pmPSF *psf) {
     7bool psphotGrowthCurve (pmReadout *readout, pmPSF *psf) {
    88
    99    // bool status;
     
    1616
    1717    // use this image region
    18     xc = 0.5*imdata->image->numCols;
    19     yc = 0.5*imdata->image->numRows;
     18    xc = 0.5*readout->image->numCols;
     19    yc = 0.5*readout->image->numRows;
    2020    dx = psf->growth->maxRadius + 1;
    2121    dy = psf->growth->maxRadius + 1;
     
    3333    // generate working image for this source
    3434    psRegion region = {xc - dx, xc + dx, yc - dy, yc + dy};
    35     psImage *view = psImageSubset (imdata->image, region);
     35    psImage *view = psImageSubset (readout->image, region);
    3636    psImage *image = psImageCopy (NULL, view, PS_TYPE_F32);
    3737    psImage *mask = psImageCopy (NULL, view, PS_TYPE_U8);
  • trunk/psphot/src/psphotImageBackground.c

    r5828 r6056  
    11# include "psphot.h"
    22
    3 psPolynomial2D *psphotImageBackground (eamReadout *imdata, psMetadata *config, psStats *sky)
     3psPolynomial2D *psphotImageBackground (pmReadout *readout, psMetadata *config, psStats *sky)
    44{
    55
     
    77    psTimerStart ("psphot");
    88
    9     psImage *image = imdata->image;
    10     psImage *mask  = imdata->mask;
     9    psImage *image = readout->image;
     10    psImage *mask  = readout->mask;
    1111
    1212    bool      status  = false;
  • trunk/psphot/src/psphotImageStats.c

    r5828 r6056  
    11# include "psphot.h"
    22
    3 psStats *psphotImageStats (eamReadout *imdata, psMetadata *config)
     3psStats *psphotImageStats (pmReadout *readout, psMetadata *config)
    44{
    55    psStats *stats = NULL;
    66    psStats *sky   = NULL;
    77
    8     psImage *image = imdata->image;
     8    psImage *image = readout->image;
    99
    1010    // get image stats on a subset of the image (random 1e5 pts)
  • trunk/psphot/src/psphotModelTest.c

    r5993 r6056  
    22# include "psEllipse.h"
    33
    4 bool psphotModelTest (eamReadout *imdata, psMetadata *config) {
     4bool psphotModelTest (pmReadout *readout, psMetadata *config) {
    55
    66    bool status;
     
    7575    pmSource *source = pmSourceAlloc();
    7676    source->peak = pmPeakAlloc (xObj, yObj, 0, 0);
    77     psphotDefinePixels (source, imdata, xObj, yObj, OUTER);
     77    psphotDefinePixels (source, readout, xObj, yObj, OUTER);
    7878
    7979    // find the local sky
  • trunk/psphot/src/psphotOutput.c

    r5993 r6056  
    22
    33// output functions: we have several fixed modes (sx, obj, cmp)
    4 void psphotOutput (eamReadout *imdata, psMetadata *config, psArray *sources, pmPSF *psf, psStats *sky) {
     4void psphotOutput (pmReadout *readout, psMetadata *header, psMetadata *config, psArray *sources, pmPSF *psf, psStats *sky) {
    55
    66    bool status;
     
    1313    char *psfFile    = psMetadataLookupPtr (&status, config, "PSF_OUTPUT_FILE");
    1414
    15     if (residImage != NULL) psphotSaveImage (imdata->header, imdata->image, residImage);
    16     psphotSamplePSFs (config, psf, imdata->image);
     15    if (residImage != NULL) psphotSaveImage (header, readout->image, residImage);
     16    psphotSamplePSFs (config, psf, readout->image);
    1717
    1818    if (psfFile != NULL) {
     
    3030    }
    3131    if (!strcasecmp (outputMode, "OBJ")) {
    32         pmSourcesWriteOBJ (imdata, config, outputFile, sources, psf, sky);
     32        pmSourcesWriteOBJ (readout, config, outputFile, sources, psf, sky);
    3333        return;
    3434    }
    3535    if (!strcasecmp (outputMode, "SX")) {
    36         pmSourcesWriteSX (imdata, config, outputFile, sources, psf, sky);
     36        pmSourcesWriteSX (readout, config, outputFile, sources, psf, sky);
    3737        return;
    3838    }
    3939    if (!strcasecmp (outputMode, "CMP")) {
    40         pmSourcesWriteCMP (imdata, config, outputFile, sources, psf, sky);
     40        pmSourcesWriteCMP (readout, header, config, outputFile, sources, psf, sky);
    4141        return;
    4242    }
    4343    if (!strcasecmp (outputMode, "CMF")) {
    44         pmSourcesWriteCMF (imdata, config, outputFile, sources, psf, sky);
     44        pmSourcesWriteCMF (readout, header, config, outputFile, sources, psf, sky);
    4545        return;
    4646    }
    4747    if (!strcasecmp (outputMode, "TEXT")) {
    48         pmSourcesWriteText (imdata, config, outputFile, sources, psf, sky);
     48        pmSourcesWriteText (readout, config, outputFile, sources, psf, sky);
    4949        return;
    5050    }
     
    5454
    5555// dophot-style output list with fixed line width
    56 bool pmSourcesWriteOBJ (eamReadout *imdata, psMetadata *config, char *filename, psArray *sources, pmPSF *psf, psStats *skyStats) {
     56bool pmSourcesWriteOBJ (pmReadout *readout, psMetadata *config, char *filename, psArray *sources, pmPSF *psf, psStats *skyStats) {
    5757
    5858    int type;
     
    106106
    107107// elixir-mode / sextractor-style output list with fixed line width
    108 bool pmSourcesWriteSX (eamReadout *imdata, psMetadata *config, char *filename, psArray *sources, pmPSF *psf, psStats *skyStats) {
     108bool pmSourcesWriteSX (pmReadout *readout, psMetadata *config, char *filename, psArray *sources, pmPSF *psf, psStats *skyStats) {
    109109
    110110    pmModel *model;
     
    157157
    158158// elixir-style pseudo FITS table (header + ascii list)
    159 bool pmSourcesWriteCMP (eamReadout *imdata, psMetadata *config, char *filename, psArray *sources, pmPSF *psf, psStats *skyStats) {
     159bool pmSourcesWriteCMP (pmReadout *readout, psMetadata *header, psMetadata *config, char *filename, psArray *sources, pmPSF *psf, psStats *skyStats) {
    160160
    161161    int i, type;
     
    172172
    173173    // write necessary information to output header
    174     psphotUpdateHeader (imdata->header, config);
    175     psMetadataAdd (imdata->header, PS_LIST_TAIL, "NSTARS",   PS_DATA_S32 | PS_META_REPLACE, "NUMBER OF STARS", sources->n);
     174    psphotUpdateHeader (header, config);
     175    psMetadataAdd (header, PS_LIST_TAIL, "NSTARS",   PS_DATA_S32 | PS_META_REPLACE, "NUMBER OF STARS", sources->n);
    176176
    177177    // create file, write-out header
     
    179179
    180180    // set NAXIS to 0 : CFITSIO requires isolated header to have NAXIS = 0
    181     mdi = psMetadataLookup (imdata->header, "NAXIS");
     181    mdi = psMetadataLookup (header, "NAXIS");
    182182    mdi->data.S32 = 0;
    183183    mdi->type = PS_DATA_S32;
    184184
    185     // psMetadataAdd (imdata->header, PS_LIST_HEAD, "NAXIS", PS_DATA_S32 | PS_META_REPLACE, "", 0);
    186     psFitsWriteHeader (imdata->header, fits);
     185    // psMetadataAdd (header, PS_LIST_HEAD, "NAXIS", PS_DATA_S32 | PS_META_REPLACE, "", 0);
     186    psFitsWriteHeader (header, fits);
    187187    psFitsClose (fits);
    188188
     
    232232// this format consists of a header derived from the image header
    233233// followed by a zero-size matrix, followed by the table data
    234 bool pmSourcesWriteCMF (eamReadout *imdata, psMetadata *config, char *filename, psArray *sources, pmPSF *psf, psStats *skyStats) {
     234bool pmSourcesWriteCMF (pmReadout *readout, psMetadata *header, psMetadata *config, char *filename, psArray *sources, pmPSF *psf, psStats *skyStats) {
    235235
    236236    psArray *table;
     
    249249
    250250    // write necessary information to output header
    251     psphotUpdateHeader (imdata->header, config);
     251    psphotUpdateHeader (header, config);
    252252
    253253    table = psArrayAlloc (sources->n);
     
    286286
    287287    // write the correct number of sources in the header
    288     psMetadataAdd (imdata->header, PS_LIST_TAIL, "NSTARS", PS_DATA_S32 | PS_META_REPLACE, "NUMBER OF STARS", table->n);
    289     psMetadataAdd (imdata->header, PS_LIST_TAIL, "EXTEND", PS_DATA_BOOL | PS_META_REPLACE, "this file has extensions", true);
     288    psMetadataAdd (header, PS_LIST_TAIL, "NSTARS", PS_DATA_S32 | PS_META_REPLACE, "NUMBER OF STARS", table->n);
     289    psMetadataAdd (header, PS_LIST_TAIL, "EXTEND", PS_DATA_BOOL | PS_META_REPLACE, "this file has extensions", true);
    290290
    291291    // set NAXIS to 0 (we don't write out the data array)
    292     mdi = psMetadataLookup (imdata->header, "NAXIS");
     292    mdi = psMetadataLookup (header, "NAXIS");
    293293    mdi->data.S32 = 0;
    294294    mdi->type = PS_DATA_S32;
     
    300300    // write out the header and table
    301301    psFits *fits = psFitsOpen (filename, "w");
    302     psFitsWriteHeader (imdata->header, fits);
     302    psFitsWriteHeader (header, fits);
    303303    psFitsWriteTable (fits, theader, table);
    304304    psFitsClose (fits);
     
    309309/***** Text Output Methods *****/
    310310
    311 bool pmSourcesWriteText (eamReadout *imdata, psMetadata *config, char *filename, psArray *sources, pmPSF *psf, psStats *sky) {
     311bool pmSourcesWriteText (pmReadout *readout, psMetadata *config, char *filename, psArray *sources, pmPSF *psf, psStats *sky) {
    312312
    313313    char *name = (char *) psAlloc (strlen(filename) + 10);
  • trunk/psphot/src/psphotRadiusChecks.c

    r5993 r6056  
    2020}
    2121
    22 bool psphotCheckRadiusPSF (eamReadout *imdata, pmSource *source, pmModel *model) {
     22bool psphotCheckRadiusPSF (pmReadout *readout, pmSource *source, pmModel *model) {
    2323
    2424    // set the fit radius based on the object flux limit and the model
     
    3131    }
    3232
    33     bool status = psphotRedefinePixels (source, imdata, model->params->data.F32[2], model->params->data.F32[3], model->radius);
     33    bool status = psphotRedefinePixels (source, readout, model->params->data.F32[2], model->params->data.F32[3], model->radius);
    3434    return status;
    3535}
     
    5454}
    5555
    56 bool psphotCheckRadiusEXT (eamReadout *imdata, pmSource *source, pmModel *model) {
     56bool psphotCheckRadiusEXT (pmReadout *readout, pmSource *source, pmModel *model) {
    5757
    5858    // set the fit radius based on the object flux limit and the model
     
    6161
    6262    // redefine the pixels if needed
    63     bool status = psphotRedefinePixels (source, imdata, model->params->data.F32[2], model->params->data.F32[3], model->radius);
     63    bool status = psphotRedefinePixels (source, readout, model->params->data.F32[2], model->params->data.F32[3], model->radius);
    6464    return status;
    6565}
  • trunk/psphot/src/psphotSetup.c

    r5986 r6056  
    77// load or construct the weight
    88
    9 eamReadout *psphotSetup (psMetadata *config)
     9pmReadout *psphotSetup (psMetadata *config, psMetadata **header)
    1010{
    11     psMetadata *header = NULL;
     11    psMetadata *myHeader;
    1212    psImage *image = NULL;
    1313    psImage *weight = NULL;
     
    2323    // setup header template, specify COMMENT and HISTORY as MULTI
    2424    // XXX EAM - shouldn't this be part of the basic FITS concept?
    25     header = psMetadataAlloc ();
    26     psMetadataAdd (header, PS_LIST_HEAD, "COMMENT", PS_DATA_METADATA_MULTI, "folder for comment", NULL);
    27     psMetadataAdd (header, PS_LIST_HEAD, "HISTORY", PS_DATA_METADATA_MULTI, "folder for history", NULL);
     25    myHeader = psMetadataAlloc ();
     26    psMetadataAdd (myHeader, PS_LIST_HEAD, "COMMENT", PS_DATA_METADATA_MULTI, "folder for comment", NULL);
     27    psMetadataAdd (myHeader, PS_LIST_HEAD, "HISTORY", PS_DATA_METADATA_MULTI, "folder for history", NULL);
    2828
    2929    // read header and image data from INPUT
     
    3131    if (!status) psAbort ("psphot", "input image not specified");
    3232    psFits *file = psFitsOpen (input, "r");
    33     header = psFitsReadHeader (header, file);
     33    myHeader = psFitsReadHeader (myHeader, file);
    3434    psImage *tmpimage = psFitsReadImage (NULL, file, region, 0);
    3535    image = psImageCopy (NULL, tmpimage, PS_TYPE_F32);
     
    4040
    4141    // grab these values from the approrpiate location (image header if necessary)
    42     float RDNOISE  = pmConfigLookupF32 (&status, config, header, "RDNOISE");
    43     float GAIN     = pmConfigLookupF32 (&status, config, header, "GAIN");
     42    float RDNOISE  = pmConfigLookupF32 (&status, config, myHeader, "RDNOISE");
     43    float GAIN     = pmConfigLookupF32 (&status, config, myHeader, "GAIN");
    4444    psMetadataAdd (config, PS_LIST_TAIL, "RDNOISE", PS_DATA_F32 | PS_META_REPLACE, "read noise value used", RDNOISE);
    4545    psMetadataAdd (config, PS_LIST_TAIL, "GAIN",    PS_DATA_F32 | PS_META_REPLACE, "gain value used", GAIN);
     
    108108
    109109    // return image data
    110     eamReadout *imdata = eamReadoutAlloc(image, weight, mask, header);
    111     return (imdata);
     110    pmReadout *readout = pmReadoutAlloc(NULL);
     111    readout->image = image;
     112    readout->weight = weight;
     113    readout->mask = mask;
     114
     115    *header = myHeader;
     116    return (readout);
    112117}
  • trunk/psphot/src/psphotSourceFits.c

    r5993 r6056  
    44// given a source with an existing modelPSF, attempt a full PSF fit, subtract if successful
    55
    6 bool psphotFitPSF (eamReadout *imdata, pmSource *source) {
     6bool psphotFitPSF (pmReadout *readout, pmSource *source) {
    77
    88    float x, y;
     
    1212
    1313    // extend source radius as needed
    14     psphotCheckRadiusPSF (imdata, source, PSF);
     14    psphotCheckRadiusPSF (readout, source, PSF);
    1515
    1616    x = PSF->params->data.F32[2];
     
    6161}
    6262
    63 bool psphotFitBlob (eamReadout *imdata, pmSource *source, psArray *sources) {
     63bool psphotFitBlob (pmReadout *readout, pmSource *source, psArray *sources) {
    6464
    6565    bool okEXT, okDBL;
     
    7979    pmSource *tmpSrc = pmSourceAlloc ();
    8080
    81     pmModel *EXT = psphotFitEXT (imdata, source);
     81    pmModel *EXT = psphotFitEXT (readout, source);
    8282    okEXT = psphotEvalEXT (tmpSrc, EXT);
    8383    chiEXT = EXT->chisq / EXT->nDOF;
    8484
    85     psArray *DBL = psphotFitDBL (imdata, source);
     85    psArray *DBL = psphotFitDBL (readout, source);
    8686    okDBL  = psphotEvalDBL (tmpSrc, DBL->data[0]);
    8787    okDBL &= psphotEvalDBL (tmpSrc, DBL->data[1]);
     
    129129
    130130// fit a double PSF source to an extended blob
    131 psArray *psphotFitDBL (eamReadout *imdata, pmSource *source) {
     131psArray *psphotFitDBL (pmReadout *readout, pmSource *source) {
    132132
    133133    float x, y, dx, dy;
     
    149149    // save the PSF model from the Ensemble fit
    150150    PSF = source->modelPSF;
    151     psphotCheckRadiusPSF (imdata, source, PSF);
     151    psphotCheckRadiusPSF (readout, source, PSF);
    152152
    153153    modelSet = psArrayAlloc (2);
     
    176176}
    177177
    178 pmModel *psphotFitEXT (eamReadout *imdata, pmSource *source) {
     178pmModel *psphotFitEXT (pmReadout *readout, pmSource *source) {
    179179
    180180    float x, y;
     
    183183    pmModel *EXT = pmSourceModelGuess (source, modelTypeEXT);
    184184
    185     psphotCheckRadiusEXT (imdata, source, EXT);
     185    psphotCheckRadiusEXT (readout, source, EXT);
    186186
    187187    x = EXT->params->data.F32[2];
     
    196196}
    197197
    198 bool psphotFitBlend (eamReadout *imdata, pmSource *source) {
     198bool psphotFitBlend (pmReadout *readout, pmSource *source) {
    199199
    200200    float x, y, dR;
     
    202202    // if this source is not a possible blend, just fit as PSF
    203203    if ((source->blends == NULL) || (source->mode & PM_SOURCE_SATSTAR)) {
    204         bool status = psphotFitPSF (imdata, source);
     204        bool status = psphotFitPSF (readout, source);
    205205        return status;
    206206    }
     
    212212
    213213    // extend source radius as needed
    214     psphotCheckRadiusPSF (imdata, source, PSF);
     214    psphotCheckRadiusPSF (readout, source, PSF);
    215215
    216216    x = PSF->params->data.F32[2];
  • trunk/psphot/src/psphotSourceStats.c

    r5986 r6056  
    11# include "psphot.h"
    22
    3 psArray *psphotSourceStats (eamReadout *imdata, psMetadata *config, psArray *peaks)
     3psArray *psphotSourceStats (pmReadout *readout, psMetadata *config, psArray *peaks)
    44{
    55    bool     status  = false;
     
    2525        // allocate image, weight, mask arrays for each peak (square of radius OUTER)
    2626        // XXX EAM : this has 12 leaks (v.5)
    27         psphotDefinePixels (source, imdata, source->peak->x, source->peak->y, OUTER);
     27        psphotDefinePixels (source, readout, source->peak->x, source->peak->y, OUTER);
    2828
    2929        // measure a local sky value
Note: See TracChangeset for help on using the changeset viewer.