IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Feb 19, 2009, 7:59:50 AM (17 years ago)
Author:
beaumont
Message:

Added visualizations to ppSub. Set up a single variable in pmVisual to control when plots are drawn.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/cnb_branch_20090215/psModules/src/objects/pmSourcePhotometry.c

    r21363 r21536  
    33 *  @author EAM, IfA; GLG, MHPCC
    44 *
    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 $
    77 *
    88 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    145145    // measure the contribution of included pixels
    146146    if (mode & PM_SOURCE_PHOT_WEIGHT) {
    147         pmSourcePixelWeight (&source->pixWeight, model, source->pixels, source->maskObj, maskVal);
     147        pmSourcePixelWeight (&source->pixWeight, model, source->maskObj, maskVal);
    148148    }
    149149
     
    164164    // XXX full model or just analytical?
    165165    // XXX use pmSourceAdd instead?
    166     if (source->mode & PM_SOURCE_MODE_SUBTRACTED) {
     166    if (source->tmpFlags & PM_SOURCE_TMPF_SUBTRACTED) {
    167167        pmModelAdd (source->pixels, source->maskObj, model, PM_MODEL_OP_FULL, maskVal);
    168168    }
     
    170170    // if we are measuring aperture photometry and applying the growth correction,
    171171    // we need to shift the flux in the selected pixels (but not the mask)
    172     // psImageShift ();
    173172    psImage *flux = NULL, *mask = NULL; // Star flux and mask images, to photometer
    174173    if (mode & PM_SOURCE_PHOT_INTERP) {
     
    186185        }
    187186
    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         # endif
    240 
    241187    } else {
    242188        flux = source->pixels;
     
    269215    // if source was originally subtracted, re-subtract object, leave local sky
    270216    // XXX replace with pmSourceSub...
    271     if (source->mode & PM_SOURCE_MODE_SUBTRACTED) {
     217    if (source->tmpFlags & PM_SOURCE_TMPF_SUBTRACTED) {
    272218        pmModelSub (source->pixels, source->maskObj, model, PM_MODEL_OP_FULL, maskVal);
    273219    }
     
    344290
    345291// return source aperture magnitude
    346 bool pmSourcePixelWeight (float *pixWeight, pmModel *model, psImage *image, psImage *mask, psImageMaskType maskVal)
     292bool pmSourcePixelWeight (float *pixWeight, pmModel *model, psImage *mask, psImageMaskType maskVal)
    347293{
    348294    PS_ASSERT_PTR_NON_NULL(pixWeight, false);
    349     PS_ASSERT_PTR_NON_NULL(image, false);
    350295    PS_ASSERT_PTR_NON_NULL(mask, false);
    351296    PS_ASSERT_PTR_NON_NULL(model, false);
     
    377322    Yo = params->data.F32[PM_PAR_YPOS];
    378323
    379     dX = Xo - image->col0;
    380     dP = image->numCols - dX;
     324    dX = Xo - mask->col0;
     325    dP = mask->numCols - dX;
    381326    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;
    386331    DY = PS_MAX(dY, dP);
    387     NY = image->numRows;
     332    NY = mask->numRows;
    388333
    389334    // measure modelSum and validSum.  this function is applied to a sources' subimage.  the
     
    612557# endif
    613558
     559// determine chisq, etc for linear normalization-only fit
    614560bool pmSourceChisq (pmModel *model, psImage *image, psImage *mask, psImage *variance,
    615561                    psImageMaskType maskVal)
     
    632578        }
    633579    }
     580    model->nPix = Npix;
    634581    model->nDOF = Npix - 1;
    635582    model->chisq = dC;
     
    817764}
    818765
     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.