Changeset 9539 for trunk/psphot/src/psphotModelTest.c
- Timestamp:
- Oct 13, 2006, 11:22:09 AM (20 years ago)
- File:
-
- 1 edited
-
trunk/psphot/src/psphotModelTest.c (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psphot/src/psphotModelTest.c
r9270 r9539 25 25 char *fitModeWord = psMetadataLookupStr (&status, recipe, "TEST_FIT_MODE"); 26 26 if (!status) { 27 fitModeWord = DEFAULT_MODE;27 fitModeWord = DEFAULT_MODE; 28 28 } 29 29 fitMode = PM_SOURCE_FIT_EXT; … … 32 32 // in fitMode, psf sets the model type 33 33 if (fitMode == PM_SOURCE_FIT_PSF) { 34 char *psfFile = psMetadataLookupStr (&status, recipe, "PSF_INPUT_FILE");35 if (!status) psAbort ("psphotModelTest", "PSF_INPUT_FILE not supplied");36 psMetadata *psfData = psMetadataConfigRead(NULL, &Nfail, psfFile, FALSE);37 psf = pmPSFfromMD(psfData);38 modelType = psf->type;34 char *psfFile = psMetadataLookupStr (&status, recipe, "PSF_INPUT_FILE"); 35 if (!status) psAbort ("psphotModelTest", "PSF_INPUT_FILE not supplied"); 36 psMetadata *psfData = psMetadataConfigRead(NULL, &Nfail, psfFile, FALSE); 37 psf = pmPSFfromMetadata (psfData); 38 modelType = psf->type; 39 39 } else { 40 // find the model: supplied by user or first in the PSF_MODEL list41 char *modelName = psMetadataLookupStr (&status, recipe, "TEST_FIT_MODEL");42 if (modelName == NULL) {43 // get the list pointers for the PSF_MODEL entries40 // find the model: supplied by user or first in the PSF_MODEL list 41 char *modelName = psMetadataLookupStr (&status, recipe, "TEST_FIT_MODEL"); 42 if (modelName == NULL) { 43 // get the list pointers for the PSF_MODEL entries 44 44 45 psList *list = NULL;46 psMetadataItem *mdi = psMetadataLookup (recipe, "PSF_MODEL");47 if (mdi == NULL) psAbort ("psphotModelTest", "missing PSF_MODEL selection");48 if (mdi->type == PS_DATA_STRING) {49 list = psListAlloc(NULL);50 psListAdd (list, PS_LIST_HEAD, mdi);51 } else {52 if (mdi->type != PS_DATA_METADATA_MULTI) psAbort ("psphotChoosePSF", "missing PSF_MODEL selection");53 list = psMemIncrRefCounter(mdi->data.list);54 }45 psList *list = NULL; 46 psMetadataItem *mdi = psMetadataLookup (recipe, "PSF_MODEL"); 47 if (mdi == NULL) psAbort ("psphotModelTest", "missing PSF_MODEL selection"); 48 if (mdi->type == PS_DATA_STRING) { 49 list = psListAlloc(NULL); 50 psListAdd (list, PS_LIST_HEAD, mdi); 51 } else { 52 if (mdi->type != PS_DATA_METADATA_MULTI) psAbort ("psphotChoosePSF", "missing PSF_MODEL selection"); 53 list = psMemIncrRefCounter(mdi->data.list); 54 } 55 55 56 // take the first list element57 item = psListGet (list, PS_LIST_HEAD);58 modelName = item->data.V;59 }60 modelType = pmModelSetType (modelName);61 if (modelType < 0) psAbort ("fitsource", "unknown model %s", modelName);56 // take the first list element 57 item = psListGet (list, PS_LIST_HEAD); 58 modelName = item->data.V; 59 } 60 modelType = pmModelSetType (modelName); 61 if (modelType < 0) psAbort ("fitsource", "unknown model %s", modelName); 62 62 } 63 63 … … 65 65 float INNER = psMetadataLookupF32 (&status, recipe, "TEST_FIT_INNER_RADIUS"); 66 66 if (!status) { 67 INNER = psMetadataLookupF32 (&status, recipe, "SKY_INNER_RADIUS");67 INNER = psMetadataLookupF32 (&status, recipe, "SKY_INNER_RADIUS"); 68 68 } 69 69 70 70 float OUTER = psMetadataLookupF32 (&status, recipe, "TEST_FIT_OUTER_RADIUS"); 71 71 if (!status) { 72 OUTER = psMetadataLookupF32 (&status, recipe, "SKY_OUTER_RADIUS");72 OUTER = psMetadataLookupF32 (&status, recipe, "SKY_OUTER_RADIUS"); 73 73 } 74 74 75 75 float RADIUS = psMetadataLookupF32 (&status, recipe, "TEST_FIT_RADIUS"); 76 76 if (!status) { 77 RADIUS = psMetadataLookupF32 (&status, recipe, "PSF_FIT_RADIUS");77 RADIUS = psMetadataLookupF32 (&status, recipe, "PSF_FIT_RADIUS"); 78 78 } 79 79 80 80 float mRADIUS = psMetadataLookupF32 (&status, recipe, "TEST_MOMENTS_RADIUS"); 81 81 if (!status) { 82 mRADIUS = psMetadataLookupF32 (&status, recipe, "PSF_MOMENTS_RADIUS");82 mRADIUS = psMetadataLookupF32 (&status, recipe, "PSF_MOMENTS_RADIUS"); 83 83 } 84 84 … … 117 117 psF32 *params = model->params->data.F32; 118 118 for (int i = 0; i < nParams; i++) { 119 if (i == 2) {120 params[i] = xObj;121 continue;122 }123 if (i == 3) {124 params[i] = yObj;125 continue;126 }127 sprintf (name, "TEST_FIT_PAR%d", i);128 value = psMetadataLookupF32 (&status, recipe, name);129 if (status) {130 params[i] = value;131 }119 if (i == 2) { 120 params[i] = xObj; 121 continue; 122 } 123 if (i == 3) { 124 params[i] = yObj; 125 continue; 126 } 127 sprintf (name, "TEST_FIT_PAR%d", i); 128 value = psMetadataLookupF32 (&status, recipe, name); 129 if (status) { 130 params[i] = value; 131 } 132 132 } 133 133 … … 136 136 137 137 if (fitMode == PM_SOURCE_FIT_PSF) { 138 pmModel *modelPSF = pmModelFromPSF (model, psf);139 psFree (model);140 model = modelPSF;141 params = model->params->data.F32;138 pmModel *modelPSF = pmModelFromPSF (model, psf); 139 psFree (model); 140 model = modelPSF; 141 params = model->params->data.F32; 142 142 } 143 143 … … 154 154 fprintf (stderr, "input parameters: \n"); 155 155 for (int i = 0; i < nParams; i++) { 156 fprintf (stderr, "%d : %f\n", i, params[i]);156 fprintf (stderr, "%d : %f\n", i, params[i]); 157 157 } 158 158 … … 162 162 char *fitset = psMetadataLookupStr (&status, recipe, "TEST_FIT_SET"); 163 163 if (status) { 164 status = psphotFitSet (source, model, fitset, fitMode);165 exit (0);164 status = psphotFitSet (source, model, fitset, fitMode); 165 exit (0); 166 166 } 167 167 … … 178 178 // subtract object, leave local sky 179 179 pmModelSub (source->pixels, source->mask, model, false, false); 180 180 181 181 fprintf (stderr, "output parameters: \n"); 182 182 for (int i = 0; i < nParams; i++) { 183 fprintf (stderr, "%d : %f\n", i, params[i]);183 fprintf (stderr, "%d : %f\n", i, params[i]); 184 184 } 185 185 186 // write out 186 // write out 187 187 psphotSaveImage (NULL, source->pixels, "resid.fits"); 188 188 psphotSaveImage (NULL, source->mask, "mask.fits");
Note:
See TracChangeset
for help on using the changeset viewer.
