- Timestamp:
- Jun 9, 2013, 3:31:46 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20130509/psphot/src/psphotExtendedSourceFits.c
r35634 r35640 53 53 psTimerStart ("psphot.extended"); 54 54 55 psphotFitInitExtended(); 56 55 57 // find the currently selected readout 56 58 pmFPAfile *file = pmFPAfileSelectSingle(config->files, filerule, index); // File of interest … … 107 109 fitMaxTol = 1.0; 108 110 } 111 112 bool chisqConvergence = psMetadataLookupBool (&status, recipe, "LMM_FIT_CHISQ_CONVERGENCE"); // Fit tolerance 113 if (!status) { 114 // default to the old method (chisqConvergence) 115 chisqConvergence = true; 116 } 117 118 int gainFactorMode = psMetadataLookupS32 (&status, recipe, "LMM_FIT_GAIN_FACTOR_MODE"); // Fit tolerance 119 if (!status) { 120 // default to the old method (chisqConvergence) 121 gainFactorMode = 0; 122 } 123 124 // Define source fitting parameters for extended source fits 125 pmSourceFitOptions *fitOptions = pmSourceFitOptionsAlloc(); 126 fitOptions->mode = PM_SOURCE_FIT_EXT; 127 fitOptions->saveCovariance = true; // XXX make this a user option? 128 fitOptions->covarFactor = psImageCovarianceFactorForAperture(readout->covariance, 10.0); // Covariance matrix 129 fitOptions->nIter = fitIter; 130 fitOptions->minTol = fitMinTol; 131 fitOptions->maxTol = fitMaxTol; 132 133 fitOptions->gainFactorMode = gainFactorMode; 134 fitOptions->chisqConvergence = chisqConvergence; 109 135 110 136 // maskVal is used to test for rejected pixels, and must include markVal … … 196 222 psMetadataIterator *iter = psMetadataIteratorAlloc (models, PS_LIST_HEAD, NULL); 197 223 psArrayAdd(job->args, 1, iter); 198 psArrayAdd(job->args, 1, AnalysisRegion); // XXX make a pointer 224 psArrayAdd(job->args, 1, AnalysisRegion); 225 psArrayAdd(job->args, 1, fitOptions); 199 226 200 227 PS_ARRAY_ADD_SCALAR(job->args, psfSize, PS_TYPE_S32); 201 PS_ARRAY_ADD_SCALAR(job->args, fitIter, PS_TYPE_S32);202 PS_ARRAY_ADD_SCALAR(job->args, fitMinTol, PS_TYPE_F32);203 PS_ARRAY_ADD_SCALAR(job->args, fitMaxTol, PS_TYPE_F32);204 205 228 PS_ARRAY_ADD_SCALAR(job->args, maskVal, PS_TYPE_IMAGE_MASK); 206 229 PS_ARRAY_ADD_SCALAR(job->args, markVal, PS_TYPE_IMAGE_MASK); … … 291 314 psLogMsg ("psphot", PS_LOG_INFO, " %d plain models (%d passed)\n", Nplain, NplainPass); 292 315 psLogMsg ("psphot", PS_LOG_INFO, " %d too faint to fit, %d failed\n", Nfaint, Nfail); 316 317 psphotFitSummaryExtended(); 318 293 319 return true; 294 320 } … … 314 340 psMetadataIterator *iter = job->args->data[3]; 315 341 psRegion *region = job->args->data[4]; 316 int psfSize = PS_SCALAR_VALUE(job->args->data[5],S32); 317 int fitIter = PS_SCALAR_VALUE(job->args->data[6],S32); 318 float fitMinTol = PS_SCALAR_VALUE(job->args->data[7],F32); 319 float fitMaxTol = PS_SCALAR_VALUE(job->args->data[8],F32); 320 psImageMaskType maskVal = PS_SCALAR_VALUE(job->args->data[9],PS_TYPE_IMAGE_MASK_DATA); 321 psImageMaskType markVal = PS_SCALAR_VALUE(job->args->data[10],PS_TYPE_IMAGE_MASK_DATA); 322 323 // Define source fitting parameters for extended source fits 324 pmSourceFitOptions *fitOptions = pmSourceFitOptionsAlloc(); 325 fitOptions->mode = PM_SOURCE_FIT_EXT; 326 fitOptions->saveCovariance = true; // XXX make this a user option? 327 fitOptions->covarFactor = psImageCovarianceFactorForAperture(readout->covariance, 10.0); // Covariance matrix 328 fitOptions->nIter = fitIter; 329 fitOptions->minTol = fitMinTol; 330 fitOptions->maxTol = fitMaxTol; 342 pmSourceFitOptions *fitOptions = job->args->data[5]; 343 344 int psfSize = PS_SCALAR_VALUE(job->args->data[6],S32); 345 psImageMaskType maskVal = PS_SCALAR_VALUE(job->args->data[7],PS_TYPE_IMAGE_MASK_DATA); 346 psImageMaskType markVal = PS_SCALAR_VALUE(job->args->data[8],PS_TYPE_IMAGE_MASK_DATA); 331 347 332 348 // psTraceSetLevel ("psLib.math.psMinimizeLMChi2_Alt", 5); … … 540 556 psTrace ("psphot", 5, "extended source model for source at %7.1f, %7.1f", source->moments->Mx, source->moments->My); 541 557 } 542 psFree (fitOptions);543 558 544 559 // change the value of a scalar on the array (wrap this and put it in psArray.h) 560 scalar = job->args->data[9]; 561 scalar->data.S32 = Next; 562 563 scalar = job->args->data[10]; 564 scalar->data.S32 = Nconvolve; 565 545 566 scalar = job->args->data[11]; 546 scalar->data.S32 = N ext;567 scalar->data.S32 = NconvolvePass; 547 568 548 569 scalar = job->args->data[12]; 549 scalar->data.S32 = N convolve;570 scalar->data.S32 = Nplain; 550 571 551 572 scalar = job->args->data[13]; 552 scalar->data.S32 = N convolvePass;573 scalar->data.S32 = NplainPass; 553 574 554 575 scalar = job->args->data[14]; 555 scalar->data.S32 = N plain;576 scalar->data.S32 = Nfaint; 556 577 557 578 scalar = job->args->data[15]; 558 scalar->data.S32 = NplainPass;559 560 scalar = job->args->data[16];561 scalar->data.S32 = Nfaint;562 563 scalar = job->args->data[17];564 579 scalar->data.S32 = Nfail; 565 580
Note:
See TracChangeset
for help on using the changeset viewer.
