IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Feb 2, 2006, 1:30:35 PM (20 years ago)
Author:
eugene
Message:

updated to use new image/subimage/region coordinate consistency

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psphot/src/psphotModelTest.c

    r6056 r6311  
    22# include "psEllipse.h"
    33
    4 bool psphotModelTest (pmReadout *readout, psMetadata *config) {
     4bool psphotModelTest (pmReadout *readout, psMetadata *arguments, psMetadata *recipe) {
    55
    66    bool status;
     
    1414
    1515    // run model fitting tests on a single source
    16     if (!psMetadataLookupBool (&status, config, "TEST_FIT")) return false;
     16    if (!psMetadataLookupBool (&status, arguments, "TEST_FIT")) return false;
    1717
    1818    // what fitting mode to use?
    19     char *psfModeWord = psMetadataLookupPtr (&status, config, "TEST_FIT_MODE");
     19    char *psfModeWord = psMetadataLookupPtr (&status, arguments, "TEST_FIT_MODE");
    2020    if (!status) {
    2121        psfModeWord = psStringCopy ("EXT");
     
    2525    // in psfMode, psf sets the model type
    2626    if (psfMode) {
    27         char *psfFile = psMetadataLookupPtr (&status, config, "PSF_INPUT_FILE");
     27        char *psfFile = psMetadataLookupPtr (&status, arguments, "PSF_INPUT_FILE");
    2828        if (!status) psAbort ("psphotModelTest", "PSF_INPUT_FILE not supplied");
    2929        psMetadata *psfData = psMetadataConfigParse (NULL, &Nfail, psfFile, FALSE);
     
    3232    } else {
    3333        // find the model: supplied by user or first in the PSF_MODEL list
    34         char *modelName  = psMetadataLookupPtr (&status, config, "TEST_FIT_MODEL");
     34        char *modelName  = psMetadataLookupPtr (&status, arguments, "TEST_FIT_MODEL");
    3535        if (modelName == NULL) {
    3636            // get the list pointers for the PSF_MODEL entries
    37             psMetadataItem *mdi = psMetadataLookup (config, "PSF_MODEL");
    38             if (mdi == NULL) psAbort ("psphotChoosePSF", "missing PSF_MODEL selection");
     37
     38            psList *list = NULL;
     39            psMetadataItem *mdi = psMetadataLookup (recipe, "PSF_MODEL");
     40            if (mdi == NULL) psAbort ("psphotModelTest", "missing PSF_MODEL selection");
     41            if (mdi->type == PS_DATA_STRING) {
     42                list = psListAlloc(NULL);
     43                psListAdd (list, PS_LIST_HEAD, mdi);
     44            } else {
     45                if (mdi->type != PS_DATA_METADATA_MULTI) psAbort ("psphotChoosePSF", "missing PSF_MODEL selection");
     46                list = psMemIncrRefCounter(mdi->data.list);
     47            }
    3948
    4049            // take the first list element
    41             psList *list = (psList *) mdi->data.list;
    4250            item = psListGet (list, PS_LIST_HEAD);
    4351            modelName = item->data.V;
     
    4856
    4957    // find the fitting parameters (try test values first)
    50     float INNER = psMetadataLookupF32 (&status, config, "TEST_FIT_INNER_RADIUS");
     58    float INNER = psMetadataLookupF32 (&status, arguments, "TEST_FIT_INNER_RADIUS");
    5159    if (!status) {
    52         INNER = psMetadataLookupF32 (&status, config, "SKY_INNER_RADIUS");
     60        INNER = psMetadataLookupF32 (&status, recipe, "SKY_INNER_RADIUS");
    5361    }
    5462
    55     float OUTER = psMetadataLookupF32 (&status, config, "TEST_FIT_OUTER_RADIUS");
     63    float OUTER = psMetadataLookupF32 (&status, arguments, "TEST_FIT_OUTER_RADIUS");
    5664    if (!status) {
    57         OUTER = psMetadataLookupF32 (&status, config, "SKY_OUTER_RADIUS");
     65        OUTER = psMetadataLookupF32 (&status, recipe, "SKY_OUTER_RADIUS");
    5866    }
    5967
    60     float RADIUS = psMetadataLookupF32 (&status, config, "TEST_FIT_RADIUS");
     68    float RADIUS = psMetadataLookupF32 (&status, arguments, "TEST_FIT_RADIUS");
    6169    if (!status) {
    62         RADIUS = psMetadataLookupF32 (&status, config, "PSF_FIT_RADIUS");
     70        RADIUS = psMetadataLookupF32 (&status, recipe, "PSF_FIT_RADIUS");
    6371    }
    6472
    65     float mRADIUS = psMetadataLookupF32 (&status, config, "TEST_MOMENTS_RADIUS");
     73    float mRADIUS = psMetadataLookupF32 (&status, arguments, "TEST_MOMENTS_RADIUS");
    6674    if (!status) {
    67         mRADIUS = psMetadataLookupF32 (&status, config, "PSF_MOMENTS_RADIUS");
     75        mRADIUS = psMetadataLookupF32 (&status, recipe, "PSF_MOMENTS_RADIUS");
    6876    }
    6977
    7078    // define the source of interest
    71     float xObj     = psMetadataLookupF32 (&status, config, "TEST_FIT_X");
    72     float yObj     = psMetadataLookupF32 (&status, config, "TEST_FIT_Y");
     79    float xObj     = psMetadataLookupF32 (&status, arguments, "TEST_FIT_X");
     80    float yObj     = psMetadataLookupF32 (&status, arguments, "TEST_FIT_Y");
    7381
    7482    // construct the source structures
     
    111119        }
    112120        sprintf (name, "TEST_FIT_PAR%d", i);
    113         value = psMetadataLookupF32 (&status, config, name);
     121        value = psMetadataLookupF32 (&status, arguments, name);
    114122        if (status) {
    115123            params[i] = value;
     
    145153    psImageKeepCircle (source->mask, xObj, yObj, RADIUS, "OR", PSPHOT_MASK_MARKED);
    146154
    147     char *fitset = psMetadataLookupPtr (&status, config, "TEST_FIT_SET");
     155    char *fitset = psMetadataLookupPtr (&status, arguments, "TEST_FIT_SET");
    148156    if (status) {
    149157        status = psphotFitSet (source, model, fitset, psfMode);
Note: See TracChangeset for help on using the changeset viewer.