Changeset 6311 for trunk/psphot/src/psphotModelTest.c
- Timestamp:
- Feb 2, 2006, 1:30:35 PM (20 years ago)
- File:
-
- 1 edited
-
trunk/psphot/src/psphotModelTest.c (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psphot/src/psphotModelTest.c
r6056 r6311 2 2 # include "psEllipse.h" 3 3 4 bool psphotModelTest (pmReadout *readout, psMetadata * config) {4 bool psphotModelTest (pmReadout *readout, psMetadata *arguments, psMetadata *recipe) { 5 5 6 6 bool status; … … 14 14 15 15 // 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; 17 17 18 18 // what fitting mode to use? 19 char *psfModeWord = psMetadataLookupPtr (&status, config, "TEST_FIT_MODE");19 char *psfModeWord = psMetadataLookupPtr (&status, arguments, "TEST_FIT_MODE"); 20 20 if (!status) { 21 21 psfModeWord = psStringCopy ("EXT"); … … 25 25 // in psfMode, psf sets the model type 26 26 if (psfMode) { 27 char *psfFile = psMetadataLookupPtr (&status, config, "PSF_INPUT_FILE");27 char *psfFile = psMetadataLookupPtr (&status, arguments, "PSF_INPUT_FILE"); 28 28 if (!status) psAbort ("psphotModelTest", "PSF_INPUT_FILE not supplied"); 29 29 psMetadata *psfData = psMetadataConfigParse (NULL, &Nfail, psfFile, FALSE); … … 32 32 } else { 33 33 // 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"); 35 35 if (modelName == NULL) { 36 36 // 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 } 39 48 40 49 // take the first list element 41 psList *list = (psList *) mdi->data.list;42 50 item = psListGet (list, PS_LIST_HEAD); 43 51 modelName = item->data.V; … … 48 56 49 57 // 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"); 51 59 if (!status) { 52 INNER = psMetadataLookupF32 (&status, config, "SKY_INNER_RADIUS");60 INNER = psMetadataLookupF32 (&status, recipe, "SKY_INNER_RADIUS"); 53 61 } 54 62 55 float OUTER = psMetadataLookupF32 (&status, config, "TEST_FIT_OUTER_RADIUS");63 float OUTER = psMetadataLookupF32 (&status, arguments, "TEST_FIT_OUTER_RADIUS"); 56 64 if (!status) { 57 OUTER = psMetadataLookupF32 (&status, config, "SKY_OUTER_RADIUS");65 OUTER = psMetadataLookupF32 (&status, recipe, "SKY_OUTER_RADIUS"); 58 66 } 59 67 60 float RADIUS = psMetadataLookupF32 (&status, config, "TEST_FIT_RADIUS");68 float RADIUS = psMetadataLookupF32 (&status, arguments, "TEST_FIT_RADIUS"); 61 69 if (!status) { 62 RADIUS = psMetadataLookupF32 (&status, config, "PSF_FIT_RADIUS");70 RADIUS = psMetadataLookupF32 (&status, recipe, "PSF_FIT_RADIUS"); 63 71 } 64 72 65 float mRADIUS = psMetadataLookupF32 (&status, config, "TEST_MOMENTS_RADIUS");73 float mRADIUS = psMetadataLookupF32 (&status, arguments, "TEST_MOMENTS_RADIUS"); 66 74 if (!status) { 67 mRADIUS = psMetadataLookupF32 (&status, config, "PSF_MOMENTS_RADIUS");75 mRADIUS = psMetadataLookupF32 (&status, recipe, "PSF_MOMENTS_RADIUS"); 68 76 } 69 77 70 78 // 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"); 73 81 74 82 // construct the source structures … … 111 119 } 112 120 sprintf (name, "TEST_FIT_PAR%d", i); 113 value = psMetadataLookupF32 (&status, config, name);121 value = psMetadataLookupF32 (&status, arguments, name); 114 122 if (status) { 115 123 params[i] = value; … … 145 153 psImageKeepCircle (source->mask, xObj, yObj, RADIUS, "OR", PSPHOT_MASK_MARKED); 146 154 147 char *fitset = psMetadataLookupPtr (&status, config, "TEST_FIT_SET");155 char *fitset = psMetadataLookupPtr (&status, arguments, "TEST_FIT_SET"); 148 156 if (status) { 149 157 status = psphotFitSet (source, model, fitset, psfMode);
Note:
See TracChangeset
for help on using the changeset viewer.
