IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Sep 21, 2007, 11:45:00 AM (19 years ago)
Author:
eugene
Message:

updating psf parameter to pmTrend2D

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branch_20070921/psModules/src/objects/pmPSFtry.c

    r14937 r14972  
    55 *  @author EAM, IfA
    66 *
    7  *  @version $Revision: 1.45 $ $Name: not supported by cvs2svn $
    8  *  @date $Date: 2007-09-21 00:06:57 $
     7 *  @version $Revision: 1.45.2.1 $ $Name: not supported by cvs2svn $
     8 *  @date $Date: 2007-09-21 21:45:00 $
    99 *
    1010 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    5858
    5959// allocate a pmPSFtry based on the desired sources and the model (identified by name)
    60 pmPSFtry *pmPSFtryAlloc (psArray *sources, char *modelName, bool poissonErrors, psPolynomial2D *psfTrendMask)
     60pmPSFtry *pmPSFtryAlloc (psArray *sources, char *modelName, pmPSFOptions *options)
    6161{
    6262
    6363    // validate the requested model name
    64     pmModelType type = pmModelClassGetType (modelName);
    65     if (type == -1) {
     64    options->type = pmModelClassGetType (modelName);
     65    if (options->type == -1) {
    6666        psError (PS_ERR_UNKNOWN, true, "invalid model name %s", modelName);
    6767        return NULL;
     
    7070    pmPSFtry *test = (pmPSFtry *) psAlloc(sizeof(pmPSFtry));
    7171
    72     test->psf       = pmPSFAlloc (type, poissonErrors, psfTrendMask);
     72    test->psf       = pmPSFAlloc (options);
    7373    test->metric    = psVectorAlloc (sources->n, PS_TYPE_F32);
    7474    test->metricErr = psVectorAlloc (sources->n, PS_TYPE_F32);
     
    9999
    100100// generate a pmPSFtry with a copy of the test PSF sources
    101 pmPSFtry *pmPSFtryModel (psArray *sources, char *modelName, float RADIUS, bool poissonErrors, psPolynomial2D *psfTrendMask, bool applyWeights, psMaskType maskVal, psMaskType mark)
     101pmPSFtry *pmPSFtryModel (psArray *sources, char *modelName, pmPSFOptions *options, psMaskType maskVal, psMaskType mark)
    102102{
    103103    bool status;
     
    105105    int Npsf = 0;
    106106
    107     pmPSFtry *psfTry = pmPSFtryAlloc (sources, modelName, poissonErrors, psfTrendMask);
     107    // XXX use the options structure here instead?
     108
     109    pmPSFtry *psfTry = pmPSFtryAlloc (sources, modelName, options);
    108110    if (psfTry == NULL) {
    109111        psError (PS_ERR_UNKNOWN, false, "failed to allocate psf model");
     
    124126
    125127        // set object mask to define valid pixels
    126         psImageKeepCircle (source->maskObj, source->peak->x, source->peak->y, RADIUS, "OR", mark);
     128        psImageKeepCircle (source->maskObj, source->peak->x, source->peak->y, options->radius, "OR", mark);
    127129
    128130        // fit model as EXT, not PSF
     
    140142
    141143    // stage 2: construct a psf (pmPSF) from this collection of model fits
    142     if (!pmPSFFromPSFtry (psfTry, applyWeights)) {
     144    if (!pmPSFFromPSFtry (psfTry, options->applyWeights)) {
    143145        psError(PS_ERR_UNKNOWN, false, "failed to construct a psf model from collection of sources");
    144146        psFree(psfTry);
     
    162164            continue;
    163165        }
    164         source->modelPSF->radiusFit = RADIUS;
     166        source->modelPSF->radiusFit = options->radius;
    165167
    166168        // set object mask to define valid pixels
    167         psImageKeepCircle (source->maskObj, source->peak->x, source->peak->y, RADIUS, "OR", mark);
     169        psImageKeepCircle (source->maskObj, source->peak->x, source->peak->y, options->radius, "OR", mark);
    168170
    169171        // fit the PSF model to the source
     
    241243
    242244    // XXX this function wants aperture radius for pmSourcePhotometry
    243     pmPSFtryMetric (psfTry, RADIUS);
     245    pmPSFtryMetric (psfTry, options->radius);
    244246    psLogMsg ("psphot.pspsf", 3, "try model %s, ap-fit: %f +/- %f : sky bias: %f\n",
    245247              modelName, psfTry->psf->ApResid, psfTry->psf->dApResid, psfTry->psf->skyBias);
     
    501503    psFree (z);
    502504    psFree (dz);
    503     return (true);
     505    return true;
    504506}
    505507
Note: See TracChangeset for help on using the changeset viewer.