Changeset 35376
- Timestamp:
- Apr 9, 2013, 11:04:00 AM (13 years ago)
- Location:
- branches/eam_branches/ipp-20130307/psModules/src/objects
- Files:
-
- 3 edited
-
pmSourceFitModel.c (modified) (4 diffs)
-
pmSourceMoments.c (modified) (3 diffs)
-
pmSourceSky.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20130307/psModules/src/objects/pmSourceFitModel.c
r34403 r35376 75 75 PS_ASSERT_PTR_NON_NULL(source->pixels, false); 76 76 PS_ASSERT_PTR_NON_NULL(source->maskObj, false); 77 PS_ASSERT_PTR_NON_NULL(source->variance, false); 77 78 // XXX if variance is NULL, use pixels instead (wrong, but not badly wrong) 79 // PS_ASSERT_PTR_NON_NULL(source->variance, false); 78 80 79 81 psBool fitStatus = true; … … 93 95 float Xo = model->params->data.F32[PM_PAR_XPOS]; 94 96 float Yo = model->params->data.F32[PM_PAR_YPOS]; 97 98 // if variance is NULL, we pretend pixels == variance 99 float **vWgt = source->variance ? source->variance->data.F32 : source->pixels->data.F32; 95 100 96 101 // fill in the coordinate and value entries … … 103 108 } 104 109 // skip zero-variance points 105 if ( source->variance->data.F32[i][j] == 0) {110 if (vWgt[i][j] == 0) { 106 111 continue; 107 112 } 108 113 // skip nan values in image 109 114 if (!isfinite(source->pixels->data.F32[i][j])) { 115 fprintf (stderr, "WARNING: unmasked nan in image : %x vs %x\n", source->maskObj->data.PS_TYPE_IMAGE_MASK_DATA[i][j], maskVal); 110 116 continue; 111 117 } 112 118 113 119 // skip nan values in image 114 if (!isfinite( source->variance->data.F32[i][j])) {115 fprintf (stderr, " impossible!%x vs %x\n", source->maskObj->data.PS_TYPE_IMAGE_MASK_DATA[i][j], maskVal);120 if (!isfinite(vWgt[i][j])) { 121 fprintf (stderr, "WARNING: unmasked nan in variance : %x vs %x\n", source->maskObj->data.PS_TYPE_IMAGE_MASK_DATA[i][j], maskVal); 116 122 continue; 117 123 } … … 140 146 // source sky variance 141 147 if (options->poissonErrors) { 142 yErr->data.F32[nPix] = 1.0 / source->variance->data.F32[i][j];148 yErr->data.F32[nPix] = 1.0 / vWgt[i][j]; 143 149 } else { 144 150 yErr->data.F32[nPix] = 1.0 / options->weight; -
branches/eam_branches/ipp-20130307/psModules/src/objects/pmSourceMoments.c
r34403 r35376 151 151 152 152 float *vPix = source->pixels->data.F32[row]; 153 float *vWgt = source->variance ->data.F32[row];153 float *vWgt = source->variance ? source->variance->data.F32[row] : source->pixels->data.F32[row]; 154 154 155 155 psImageMaskType *vMsk = (source->maskObj == NULL) ? NULL : source->maskObj->data.PS_TYPE_IMAGE_MASK_DATA[row]; … … 266 266 267 267 float **vPix = source->pixels->data.F32; 268 float **vWgt = source->variance ->data.F32;269 psImageMaskType **vMsk = (source->maskObj == NULL) ? NULL : source->maskObj->data.PS_TYPE_IMAGE_MASK_DATA;268 float **vWgt = source->variance ? source->variance->data.F32 : source->pixels->data.F32; 269 psImageMaskType **vMsk = (source->maskObj == NULL) ? NULL : source->maskObj->data.PS_TYPE_IMAGE_MASK_DATA; 270 270 271 271 float RF = 0.0; … … 467 467 468 468 float *vPix = source->pixels->data.F32[row]; 469 float *vWgt = source->variance ->data.F32[row];469 float *vWgt = source->variance ? source->variance->data.F32[row] : source->pixels->data.F32[row]; 470 470 471 471 psImageMaskType *vMsk = (source->maskObj == NULL) ? NULL : source->maskObj->data.PS_TYPE_IMAGE_MASK_DATA[row]; -
branches/eam_branches/ipp-20130307/psModules/src/objects/pmSourceSky.c
r34403 r35376 122 122 psTrace("psModules.objects", 10, "---- %s() begin ----\n", __func__); 123 123 PS_ASSERT_PTR_NON_NULL(source, false); 124 PS_ASSERT_IMAGE_NON_NULL(source->variance, false);125 124 PS_ASSERT_IMAGE_NON_NULL(source->maskObj, false); 126 125 PS_ASSERT_PTR_NON_NULL(source->peak, false); 127 126 PS_ASSERT_INT_POSITIVE(Radius, false); 127 128 if (source->variance == NULL) { 129 // XXX this is needed so psphotCheckRadiusPSF has a real value 130 source->moments->dSky = 1.0; 131 return true; 132 } 128 133 129 134 // maskVal is used to test for rejected pixels, and must include markVal
Note:
See TracChangeset
for help on using the changeset viewer.
