Changeset 5828 for trunk/psphot/src/psphotFullFit.c
- Timestamp:
- Dec 22, 2005, 4:20:27 PM (21 years ago)
- File:
-
- 1 edited
-
trunk/psphot/src/psphotFullFit.c (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psphot/src/psphotFullFit.c
r5802 r5828 1 1 # include "psphot.h" 2 3 # define CLEAR_TRACE \4 if (TEST_SRC_ON) { \5 psTraceSetLevel (".pmObjects.pmSourceFitModel", 0); \6 psTraceSetLevel ("psMinimizeLMChi2", 0); \7 TEST_SRC_ON = false; } \8 2 9 3 bool psphotFullFit (eamReadout *imdata, psMetadata *config, psArray *sources, pmPSF *psf, psStats *sky) … … 32 26 psphotInitRadiusFLT (config, sky, modelTypeFLT); 33 27 34 float TEST_SRC_X = psMetadataLookupF32 (&status, config, "TEST_SRC_X");35 float TEST_SRC_Y = psMetadataLookupF32 (&status, config, "TEST_SRC_Y");36 bool TEST_SRC_ON = false;37 bool TEST_SRC = status;38 fprintf (stderr, "test src: %f %f\n", TEST_SRC_X, TEST_SRC_Y);39 40 28 for (int i = 0; i < sources->n; i++) { 41 29 … … 56 44 // replace object in image 57 45 pmSourceAddModel (source->pixels, source->mask, modelPSF, false, false); 46 source->mode &= ~PM_SOURCE_SUBTRACTED; 58 47 59 psphotCheckRadiusPSF (imdata, source );48 psphotCheckRadiusPSF (imdata, source, modelPSF); 60 49 61 50 x = modelPSF->params->data.F32[2]; 62 51 y = modelPSF->params->data.F32[3]; 63 64 if (TEST_SRC && (fabs(TEST_SRC_X - x) < 5) && (fabs(TEST_SRC_Y - y) < 5)) {65 psTraceSetLevel (".pmObjects.pmSourceFitModel", 6);66 psTraceSetLevel ("psMinimizeLMChi2", 6);67 TEST_SRC_ON = true;68 }69 52 70 53 // fit PSF model (set/unset the pixel mask) … … 78 61 79 62 // does the PSF model succeed? 80 if (psphotEvalPSF (source )) {63 if (psphotEvalPSF (source, source->modelPSF)) { 81 64 pmSourceSubModel (source->pixels, source->mask, source->modelPSF, false, false); 82 source->mode |= PM_SOURCE_SUBTRACTED; 65 source->mode |= PM_SOURCE_SUBTRACTED; 66 source->mode &= ~PM_SOURCE_TEMPSUB; 83 67 psFree (LIN); 84 68 Nsub ++; 85 CLEAR_TRACE;86 69 continue; 87 70 } 71 72 // use the moments to get the extended source angle 73 // displace on either side of the main peak by 1sigma or so 74 // cut the peak in half? use the main peak? 75 // also try fit set on (unsaturated?) objects with a blend within 2-3 sigma 76 // allow all possible nearby blends to be fit? 77 // EllipseMoments moments; 78 // moments.x2 = source->moments->Sx; 79 // moments.y2 = source->moments->Sy; 80 // moments.xy = source->moments->Sxy; 81 // EllipseAxes axes = EllipseMomentsToAxes (moments); 88 82 89 83 // skip the source if we don't think it is extended … … 101 95 pmModel *modelFLT = source->modelFLT; 102 96 103 psphotCheckRadiusFLT (imdata, source );97 psphotCheckRadiusFLT (imdata, source, modelFLT); 104 98 105 99 x = modelFLT->params->data.F32[2]; … … 116 110 117 111 // does the FLT model succeed? 118 if (psphotEvalFLT (source )) {112 if (psphotEvalFLT (source, source->modelFLT)) { 119 113 pmSourceSubModel (source->pixels, source->mask, source->modelFLT, false, false); 120 source->mode |= PM_SOURCE_SUBTRACTED; 114 source->mode |= PM_SOURCE_SUBTRACTED; 115 source->mode &= ~PM_SOURCE_TEMPSUB; 121 116 psFree (LIN); 122 117 Nsub ++; 123 CLEAR_TRACE;124 118 continue; 125 119 } 126 120 127 // subtract PSF for object, leave local sky121 // re-subtract PSF for object, leave local sky 128 122 subLINEAR: 129 123 psFree (source->modelPSF); … … 131 125 pmSourceSubModel (source->pixels, source->mask, source->modelPSF, false, false); 132 126 source->mode |= PM_SOURCE_SUBTRACTED; 133 source->mode |= PM_SOURCE_ LINEAR;127 source->mode |= PM_SOURCE_TEMPSUB; 134 128 Nsub ++; 135 CLEAR_TRACE;136 129 } 137 130
Note:
See TracChangeset
for help on using the changeset viewer.
