IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 6900


Ignore:
Timestamp:
Apr 18, 2006, 9:01:19 PM (20 years ago)
Author:
eugene
Message:

mods to fix mask issues, negative-radius errors, simpsons formula for integral

Location:
trunk/psphot/src
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/psphot/src/psphotBasicDeblend.c

    r6862 r6900  
    2525    // we use an index for this so the spatial sorting is kept
    2626    psVector *SN = psVectorAlloc (sources->n, PS_DATA_F32);
     27    SN->n = SN->nalloc;
    2728    for (int i = 0; i < SN->n; i++) {
    2829        source = sources->data[i];
     
    4041
    4142        // temporary array for overlapping objects we find
    42         // XXX psArrayAlloc should set ->n to 0 *and* all objects to NULL
    43         // XXX I need a psArrayEmpty function to free the elements without the array
    44         // XXX then, I could allocate 'overlap' once outside the loop and only
    45         // XXX clear at the end of each loop
    4643        psArray *overlap = psArrayAlloc (100);
    4744        overlap->n = 0;
     
    117114                    source->blends->n = 0;
    118115                }
    119 
    120116                psArrayAdd (source->blends, 16, testSource);
    121117
  • trunk/psphot/src/psphotChoosePSF.c

    r6862 r6900  
    5757    // set up an array to store the results
    5858    psArray *models = psArrayAlloc (list->n);
     59    models->n = list->n;
    5960
    6061    // try each model option listed in config
  • trunk/psphot/src/psphotEnsemblePSF.c

    r6862 r6900  
    2929    psArray  *models = psArrayAlloc (sources->n);
    3030    psVector *index  = psVectorAlloc (sources->n, PS_TYPE_U32);
    31     models->n = 0;
    32     index->n = 0;
     31    models->n = index->n = 0;
    3332
    3433    // option to limit analysis to a specific region
     
    118117        // fill in the model pixel values
    119118        psImageInit (flux, 0.0);
    120         psImageKeepCircle (mask, x, y, model->radiusTMP, "OR", PM_SOURCE_MASK_MARKED);
     119        psImageKeepCircle (mask, x, y, model->radiusTMP, "OR", PM_MASK_MARK);
    121120        pmModelAdd (flux, mask, model, false, false);
    122121
    123122        // calculate nDOF (nPix - 1)
    124         // int Nmaskpix = psImageCountPixelMask (mask, allArray, PM_SOURCE_MASK_SATURATED);
     123        // int Nmaskpix = psImageCountPixelMask (mask, allArray, PM_MASK_SAT);
    125124        // model->nDOF  = mask->numCols*mask->numRows - Nmaskpix - 1;
    126125
     
    136135    psSparse *sparse = psSparseAlloc (models->n, 100);
    137136    psVector *weight = psVectorAlloc (models->n, PS_TYPE_F32);
     137    weight->n = models->n;
     138
    138139    for (int i = 0; i < models->n; i++) {
    139140        int N = index->data.U32[i];
     
    209210        y = model->params->data.F32[3];
    210211
    211         psImageKeepCircle (Fi->mask, x, y, model->radiusTMP, "OR", PM_SOURCE_MASK_MARKED);
     212        psImageKeepCircle (Fi->mask, x, y, model->radiusTMP, "OR", PM_MASK_MARK);
    212213        pmSourceChisq (model, Fi->pixels, Fi->mask, Fi->weight);
    213         psImageKeepCircle (Fi->mask, x, y, model->radiusTMP, "AND", ~PM_SOURCE_MASK_MARKED);
     214        psImageKeepCircle (Fi->mask, x, y, model->radiusTMP, "AND", NOT_U8(PM_MASK_MARK));
    214215    }
    215216
  • trunk/psphot/src/psphotFakeSources.c

    r6715 r6900  
    11# include "psphot.h"
    2 
    3 # if (0)
    4 psArray *psphotFakeSources () {
    5 
    6     // psphotUpdateHeader (header, config);
    7 
    8     psArray *sources = psArrayAlloc (50);
    9 
    10     for (int i = 0; i < sources->n; i++) {
    11         pmSource *source = pmSourceAlloc ();
    12         modelType = pmModelSetType ("PS_MODEL_QGAUSS");
    13         source->modelPSF = pmSourceModelGuess (source, modelType);
    14         source->peak = pmPeakAlloc (10, 10, 0, 0);
    15         sources->data[i] = source;
    16     }
    17     return sources;
    18 }
    19 # endif
    202
    213psArray *psphotFakeSources () {
  • trunk/psphot/src/psphotGrowthCurve.c

    r6753 r6900  
    4545        radius = psf->growth->radius->data.F32[i];
    4646
    47         psImageKeepCircle (mask, xc, yc, radius, "OR", PM_SOURCE_MASK_MARKED);
     47        psImageKeepCircle (mask, xc, yc, radius, "OR", PM_MASK_MARK);
    4848
    4949        pmModelAdd (image, mask, model, false, false);
     
    5151        pmSourcePhotometryAper (&apMag, model, image, mask);
    5252
    53         psImageKeepCircle (mask, xc, yc, radius, "AND", ~PM_SOURCE_MASK_MARKED);
     53        psImageKeepCircle (mask, xc, yc, radius, "AND", NOT_U8(PM_MASK_MARK));
    5454        psf->growth->apMag->data.F32[i] = apMag;
    5555    }
  • trunk/psphot/src/psphotImageMedian.c

    r6862 r6900  
    119119    }
    120120
     121    psphotSaveImage (NULL, background->image, "back.fits");
     122    psphotSaveImage (NULL, image, "image.fits");
     123    psphotSaveImage (NULL, mask, "mask.fits");
     124
    121125    psLogMsg ("psphot", 3, "subtracted background model: %f sec\n", psTimerMark ("psphot"));
    122126    psImageClippedStatsCleanup();
  • trunk/psphot/src/psphotMaskReadout.c

    r6715 r6900  
    2121
    2222    // psImageKeepRegion assumes the region refers to the parent coordinates
    23     psImageKeepRegion (readout->mask, keep, "OR", PM_SOURCE_MASK_INVALID);
     23    psImageKeepRegion (readout->mask, keep, "OR", PM_MASK_BAD);
    2424
    2525    return true;
  • trunk/psphot/src/psphotModelTest.c

    r6851 r6900  
    158158
    159159    // define the pixels used for the fit
    160     psImageKeepCircle (source->mask, xObj, yObj, RADIUS, "OR", PM_SOURCE_MASK_MARKED);
     160    psImageKeepCircle (source->mask, xObj, yObj, RADIUS, "OR", PM_MASK_MARK);
    161161
    162162    char *fitset = psMetadataLookupStr (&status, recipe, "TEST_FIT_SET");
  • trunk/psphot/src/psphotSourceFits.c

    r6862 r6900  
    1818
    1919    // fit PSF model (set/unset the pixel mask)
    20     psImageKeepCircle (source->mask, x, y, PSF->radiusTMP, "OR", PM_SOURCE_MASK_MARKED);
     20    psImageKeepCircle (source->mask, x, y, PSF->radiusTMP, "OR", PM_MASK_MARK);
    2121    pmSourceFitModel (source, PSF, PM_SOURCE_FIT_PSF);
    22     psImageKeepCircle (source->mask, x, y, PSF->radiusTMP, "AND", ~PM_SOURCE_MASK_MARKED);
     22    psImageKeepCircle (source->mask, x, y, PSF->radiusTMP, "AND", NOT_U8(PM_MASK_MARK));
    2323   
    2424    // correct model chisq for flux trend
     
    193193
    194194    modelSet = psArrayAlloc (2);
     195    modelSet->n = 0;
    195196
    196197    DBL = pmModelCopy (PSF);
     
    210211
    211212    // fit PSF model (set/unset the pixel mask)
    212     psImageKeepCircle (source->mask, x, y, PSF->radiusTMP, "OR", PM_SOURCE_MASK_MARKED);
     213    psImageKeepCircle (source->mask, x, y, PSF->radiusTMP, "OR", PM_MASK_MARK);
    213214    pmSourceFitSet (source, modelSet, PM_SOURCE_FIT_PSF);
    214     psImageKeepCircle (source->mask, x, y, PSF->radiusTMP, "AND", ~PM_SOURCE_MASK_MARKED);
     215    psImageKeepCircle (source->mask, x, y, PSF->radiusTMP, "AND", NOT_U8(PM_MASK_MARK));
    215216
    216217    return (modelSet);
     
    230231
    231232    // fit EXT (not PSF) model (set/unset the pixel mask)
    232     psImageKeepCircle (source->mask, x, y, EXT->radiusTMP, "OR", PM_SOURCE_MASK_MARKED);
     233    psImageKeepCircle (source->mask, x, y, EXT->radiusTMP, "OR", PM_MASK_MARK);
    233234    pmSourceFitModel (source, EXT, PM_SOURCE_FIT_EXT);
    234     psImageKeepCircle (source->mask, x, y, EXT->radiusTMP, "AND", ~PM_SOURCE_MASK_MARKED);
     235    psImageKeepCircle (source->mask, x, y, EXT->radiusTMP, "AND", NOT_U8(PM_MASK_MARK));
    235236
    236237    return (EXT);
     
    293294
    294295    // fit PSF model (set/unset the pixel mask)
    295     psImageKeepCircle (source->mask, x, y, PSF->radiusTMP, "OR", PM_SOURCE_MASK_MARKED);
     296    psImageKeepCircle (source->mask, x, y, PSF->radiusTMP, "OR", PM_MASK_MARK);
    296297    pmSourceFitSet (source, modelSet, PM_SOURCE_FIT_PSF);
    297     psImageKeepCircle (source->mask, x, y, PSF->radiusTMP, "AND", ~PM_SOURCE_MASK_MARKED);
     298    psImageKeepCircle (source->mask, x, y, PSF->radiusTMP, "AND", NOT_U8(PM_MASK_MARK));
    298299
    299300    // correct model chisq for flux trend
  • trunk/psphot/src/psphotTest.c

    r6117 r6900  
    6262    // create a test table
    6363    table = psArrayAlloc (10);
    64     table->n = 0;
     64table->n = 0;
    6565
    6666    for (int i = 0; i < 10; i++) {
  • trunk/psphot/src/psphotWeightBias.c

    r6862 r6900  
    6060
    6161        // fit PSF model (set/unset the pixel mask)
    62         psImageKeepCircle (source->mask, x, y, PSF->radiusTMP, "OR", PM_SOURCE_MASK_MARKED);
     62        psImageKeepCircle (source->mask, x, y, PSF->radiusTMP, "OR", PM_MASK_MARK);
    6363        pmSourceFitModel (source, PSF, PM_SOURCE_FIT_NORM);
    64         psImageKeepCircle (source->mask, x, y, PSF->radiusTMP, "AND", ~PM_SOURCE_MASK_MARKED);
     64        psImageKeepCircle (source->mask, x, y, PSF->radiusTMP, "AND", NOT_U8(PM_MASK_MARK));
    6565   
    6666        // re-subtract PSF for object, leave local sky
Note: See TracChangeset for help on using the changeset viewer.