- Timestamp:
- Feb 19, 2009, 7:59:50 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/cnb_branch_20090215/psModules/src/objects/pmSourcePhotometry.c
r21363 r21536 3 3 * @author EAM, IfA; GLG, MHPCC 4 4 * 5 * @version $Revision: 1.49 $ $Name: not supported by cvs2svn $6 * @date $Date: 2009-02- 06 02:31:25$5 * @version $Revision: 1.49.4.1 $ $Name: not supported by cvs2svn $ 6 * @date $Date: 2009-02-19 17:59:50 $ 7 7 * 8 8 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 145 145 // measure the contribution of included pixels 146 146 if (mode & PM_SOURCE_PHOT_WEIGHT) { 147 pmSourcePixelWeight (&source->pixWeight, model, source-> pixels, source->maskObj, maskVal);147 pmSourcePixelWeight (&source->pixWeight, model, source->maskObj, maskVal); 148 148 } 149 149 … … 164 164 // XXX full model or just analytical? 165 165 // XXX use pmSourceAdd instead? 166 if (source-> mode & PM_SOURCE_MODE_SUBTRACTED) {166 if (source->tmpFlags & PM_SOURCE_TMPF_SUBTRACTED) { 167 167 pmModelAdd (source->pixels, source->maskObj, model, PM_MODEL_OP_FULL, maskVal); 168 168 } … … 170 170 // if we are measuring aperture photometry and applying the growth correction, 171 171 // we need to shift the flux in the selected pixels (but not the mask) 172 // psImageShift ();173 172 psImage *flux = NULL, *mask = NULL; // Star flux and mask images, to photometer 174 173 if (mode & PM_SOURCE_PHOT_INTERP) { … … 186 185 } 187 186 188 // XXX this is test code to verify the shift is doing the right thing (seems to be)189 # if (0)190 // measure centroid of unshifted gaussian (should be 16.0,16.0)191 {192 psImage *image = source->pixels;193 float xo = 0.0;194 float yo = 0.0;195 float xo2 = 0.0;196 float yo2 = 0.0;197 float no = 0.0;198 for (int j = 0; j < image->numRows; j++)199 {200 for (int i = 0; i < image->numCols; i++) {201 xo += i*image->data.F32[j][i];202 yo += j*image->data.F32[j][i];203 xo2 += i*i*image->data.F32[j][i];204 yo2 += j*j*image->data.F32[j][i];205 no += image->data.F32[j][i];206 }207 }208 xo /= no;209 yo /= no;210 xo2 = sqrt (xo2/no - xo*xo);211 yo2 = sqrt (yo2/no - yo*yo);212 fprintf (stderr, "pre-shift centroid: %f,%f, sigma: %f,%f: flux: %f\n", xo, yo, xo2, yo2, no);213 }214 215 // measure centroid of unshifted gaussian (should be 16.0,16.0)216 {217 psImage *image = flux;218 float xo = 0.0;219 float yo = 0.0;220 float xo2 = 0.0;221 float yo2 = 0.0;222 float no = 0.0;223 for (int j = 0; j < image->numRows; j++)224 {225 for (int i = 0; i < image->numCols; i++) {226 xo += i*image->data.F32[j][i];227 yo += j*image->data.F32[j][i];228 xo2 += i*i*image->data.F32[j][i];229 yo2 += j*j*image->data.F32[j][i];230 no += image->data.F32[j][i];231 }232 }233 xo /= no;234 yo /= no;235 xo2 = sqrt (xo2/no - xo*xo);236 yo2 = sqrt (yo2/no - yo*yo);237 fprintf (stderr, "pre-shift centroid: %f,%f, sigma: %f,%f: flux: %f\n", xo, yo, xo2, yo2, no);238 }239 # endif240 241 187 } else { 242 188 flux = source->pixels; … … 269 215 // if source was originally subtracted, re-subtract object, leave local sky 270 216 // XXX replace with pmSourceSub... 271 if (source-> mode & PM_SOURCE_MODE_SUBTRACTED) {217 if (source->tmpFlags & PM_SOURCE_TMPF_SUBTRACTED) { 272 218 pmModelSub (source->pixels, source->maskObj, model, PM_MODEL_OP_FULL, maskVal); 273 219 } … … 344 290 345 291 // return source aperture magnitude 346 bool pmSourcePixelWeight (float *pixWeight, pmModel *model, psImage * image, psImage *mask, psImageMaskType maskVal)292 bool pmSourcePixelWeight (float *pixWeight, pmModel *model, psImage *mask, psImageMaskType maskVal) 347 293 { 348 294 PS_ASSERT_PTR_NON_NULL(pixWeight, false); 349 PS_ASSERT_PTR_NON_NULL(image, false);350 295 PS_ASSERT_PTR_NON_NULL(mask, false); 351 296 PS_ASSERT_PTR_NON_NULL(model, false); … … 377 322 Yo = params->data.F32[PM_PAR_YPOS]; 378 323 379 dX = Xo - image->col0;380 dP = image->numCols - dX;324 dX = Xo - mask->col0; 325 dP = mask->numCols - dX; 381 326 DX = PS_MAX(dX, dP); 382 NX = image->numCols;383 384 dY = Yo - image->row0;385 dP = image->numRows - dY;327 NX = mask->numCols; 328 329 dY = Yo - mask->row0; 330 dP = mask->numRows - dY; 386 331 DY = PS_MAX(dY, dP); 387 NY = image->numRows;332 NY = mask->numRows; 388 333 389 334 // measure modelSum and validSum. this function is applied to a sources' subimage. the … … 612 557 # endif 613 558 559 // determine chisq, etc for linear normalization-only fit 614 560 bool pmSourceChisq (pmModel *model, psImage *image, psImage *mask, psImage *variance, 615 561 psImageMaskType maskVal) … … 632 578 } 633 579 } 580 model->nPix = Npix; 634 581 model->nDOF = Npix - 1; 635 582 model->chisq = dC; … … 817 764 } 818 765 766 // XXX this is test code to verify the shift is doing the right thing (seems to be) 767 # if (0) 768 // measure centroid of unshifted gaussian (should be 16.0,16.0) 769 { 770 psImage *image = source->pixels; 771 float xo = 0.0; 772 float yo = 0.0; 773 float xo2 = 0.0; 774 float yo2 = 0.0; 775 float no = 0.0; 776 for (int j = 0; j < image->numRows; j++) 777 { 778 for (int i = 0; i < image->numCols; i++) { 779 xo += i*image->data.F32[j][i]; 780 yo += j*image->data.F32[j][i]; 781 xo2 += i*i*image->data.F32[j][i]; 782 yo2 += j*j*image->data.F32[j][i]; 783 no += image->data.F32[j][i]; 784 } 785 } 786 xo /= no; 787 yo /= no; 788 xo2 = sqrt (xo2/no - xo*xo); 789 yo2 = sqrt (yo2/no - yo*yo); 790 fprintf (stderr, "pre-shift centroid: %f,%f, sigma: %f,%f: flux: %f\n", xo, yo, xo2, yo2, no); 791 } 792 793 // measure centroid of unshifted gaussian (should be 16.0,16.0) 794 { 795 psImage *image = flux; 796 float xo = 0.0; 797 float yo = 0.0; 798 float xo2 = 0.0; 799 float yo2 = 0.0; 800 float no = 0.0; 801 for (int j = 0; j < image->numRows; j++) 802 { 803 for (int i = 0; i < image->numCols; i++) { 804 xo += i*image->data.F32[j][i]; 805 yo += j*image->data.F32[j][i]; 806 xo2 += i*i*image->data.F32[j][i]; 807 yo2 += j*j*image->data.F32[j][i]; 808 no += image->data.F32[j][i]; 809 } 810 } 811 xo /= no; 812 yo /= no; 813 xo2 = sqrt (xo2/no - xo*xo); 814 yo2 = sqrt (yo2/no - yo*yo); 815 fprintf (stderr, "pre-shift centroid: %f,%f, sigma: %f,%f: flux: %f\n", xo, yo, xo2, yo2, no); 816 } 817 # endif
Note:
See TracChangeset
for help on using the changeset viewer.
