IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 12957


Ignore:
Timestamp:
Apr 22, 2007, 5:39:10 PM (19 years ago)
Author:
eugene
Message:

changed PM_MODEL_ADD_.. to PM_MODEL_OP_..; added pmSourceAdd/Sub; adding modelFlux and maskView/maskObj to pmSource

Location:
branches/eam_02_branch/psphot/src
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_02_branch/psphot/src/psphotAddNoise.c

    r12952 r12957  
    6363        PAR[PM_PAR_SXY] = newshape.sxy;
    6464
    65         if (add) {
    66             pmModelAdd (source->weight, source->mask, model, PM_MODEL_ADD_FULL);
    67         } else {
    68             pmModelSub (source->weight, source->mask, model, PM_MODEL_ADD_FULL);
    69         }
     65        // XXX if we use pmSourceOp, the size (and possibly Io) will not be respected
     66        pmSourceOp (source, PM_MODEL_OP_FULL, add);
    7067       
    7168        // restore original values
  • branches/eam_02_branch/psphot/src/psphotBlendFit.c

    r12955 r12957  
    4343
    4444        // limit selection to some SN limit
     45        // XXX this should use peak?
    4546        if (source->moments == NULL) continue;
    4647        if (source->moments->SN < FIT_SN_LIM) continue;
    4748
     49        // XXX this should use peak?
    4850        if (source->moments->x < AnalysisRegion.x0) continue;
    4951        if (source->moments->y < AnalysisRegion.y0) continue;
     
    6567        // replace object in image
    6668        if (source->mode & PM_SOURCE_MODE_SUBTRACTED) {
    67           // XXX we will need to remove the existing source->modelFlux if we do
    68           // a non-linear fit
    69           // pmSourceSub (!NORM, -)
    70             pmModelAdd (source->pixels, source->mask, source->modelPSF, PM_MODEL_ADD_FULL);
     69            pmSourceAdd (source, PM_MODEL_OP_FULL);
    7170        }
    7271        Nfit ++;
    7372
    7473        // try fitting PSFs, then try extended sources
     74        // these functions subtract the resulting fitted source (XXX and update the modelFlux?)
    7575        if (psphotFitBlend (readout, source, psf)) {
    7676            psTrace ("psphot", 5, "source at %7.1f, %7.1f is psf", source->moments->x, source->moments->y);
     
    8787        Nfail ++;
    8888
    89         // re-subtract PSF for object, leave local sky
    90         pmModelSub (source->pixels, source->mask, source->modelPSF, PM_MODEL_ADD_FULL);
     89        // re-subtract the object, leave local sky
     90        pmSourceSub (source, PM_MODEL_OP_FULL);
    9191        source->mode |= PM_SOURCE_MODE_SUBTRACTED;
    9292        source->mode |= PM_SOURCE_MODE_TEMPSUB;
  • branches/eam_02_branch/psphot/src/psphotChoosePSF.c

    r12952 r12957  
    240240            // set the mask and subtract the PSF model
    241241            psImageKeepCircle (source->mask, x, y, RADIUS, "OR", PM_MASK_MARK);
    242             pmModelSub (source->pixels, source->mask, source->modelPSF, PM_MODEL_ADD_FULL);
     242            pmModelSub (source->pixels, source->mask, source->modelPSF, PM_MODEL_OP_FULL);
    243243            psImageKeepCircle (source->mask, x, y, RADIUS, "AND", PS_NOT_U8(PM_MASK_MARK));
    244244        }
  • branches/eam_02_branch/psphot/src/psphotEnsemblePSF.c

    r12952 r12957  
    9191
    9292        // fill in the model pixel values
     93        // XXX this function should just work with the (normalized) modelFlux pixels
     94        // XXX we should not have to create a complete copy
     95        // XXX review the use of the object mask: can we use a copied mask?
    9396        psImageInit (fitSource->pixels, 0.0);
    9497        psImageKeepCircle (fitSource->mask, x, y, model->radiusFit, "OR", PM_MASK_MARK);
    95         pmModelAdd (fitSource->pixels, fitSource->mask, model, PM_MODEL_ADD_FULL);
     98        pmModelAdd (fitSource->pixels, fitSource->mask, model, PM_MODEL_OP_FULL);
    9699
    97100        // save source in list
     
    218221
    219222        // subtract object
    220         pmModelSub (Ri->pixels, Ri->mask, model, PM_MODEL_ADD_FULL);
     223        pmModelSub (Ri->pixels, Ri->mask, model, PM_MODEL_OP_FULL);
    221224        Ri->mode |= PM_SOURCE_MODE_SUBTRACTED;
    222225        if (!final) Ri->mode |= PM_SOURCE_MODE_TEMPSUB;
  • branches/eam_02_branch/psphot/src/psphotFitSet.c

    r12952 r12957  
    2424    }
    2525
     26    // XXX pmSourceFitSet must cache the modelFlux?
    2627    pmSourceFitSet (source, modelSet, mode);
    2728
     
    3233    for (int i = 0; i < modelSet->n; i++) {
    3334        pmModel *model = modelSet->data[i];
    34         pmModelSub (source->pixels, source->mask, model, PM_MODEL_ADD_FULL);
     35        pmModelSub (source->pixels, source->mask, model, PM_MODEL_OP_FULL);
    3536
    3637        fprintf (stderr, "output parameters (obj %d):\n", i);
  • branches/eam_02_branch/psphot/src/psphotGrowthCurve.c

    r12952 r12957  
    5454
    5555        psImageKeepCircle (mask, xc, yc, radius, "OR", PM_MASK_MARK);
    56         pmModelAdd (image, mask, model, PM_MODEL_ADD_FULL);
     56        pmModelAdd (image, mask, model, PM_MODEL_OP_FULL);
    5757        pmSourcePhotometryAper (&apMag, model, image, mask);
    5858        psImageKeepCircle (mask, xc, yc, radius, "AND", PS_NOT_U8(PM_MASK_MARK));
  • branches/eam_02_branch/psphot/src/psphotMakeResiduals.c

    r12952 r12957  
    7979        psImage *weight = psImageCopy (NULL, source->weight, PS_TYPE_F32);
    8080        psImage *mask   = psImageCopy (NULL, source->mask,   PS_TYPE_U8);
    81         pmModelSub (image, mask, model, PM_MODEL_ADD_FULL);
     81        pmModelSub (image, mask, model, PM_MODEL_OP_FULL);
    8282       
    8383        // re-normalize image and weight
  • branches/eam_02_branch/psphot/src/psphotModelTest.c

    r12952 r12957  
    177177
    178178    // subtract object, leave local sky
    179     pmModelSub (source->pixels, source->mask, model, PM_MODEL_ADD_FULL);
     179    pmModelSub (source->pixels, source->mask, model, PM_MODEL_OP_FULL);
    180180
    181181    fprintf (stderr, "output parameters: \n");
  • branches/eam_02_branch/psphot/src/psphotOutput.c

    r12952 r12957  
    182182    modelEXT->params->data.F32[3] = y;
    183183    pmModel *modelPSF = pmModelFromPSF (modelEXT, psf);
    184     pmModelAdd (sample, NULL, modelPSF, PM_MODEL_ADD_FULL);
     184    pmModelAdd (sample, NULL, modelPSF, PM_MODEL_OP_FULL);
    185185    psFree (modelPSF);
    186186    return (sample);
  • branches/eam_02_branch/psphot/src/psphotReplaceUnfit.c

    r12955 r12957  
    11# include "psphotInternal.h"
    22
     3// replace the flux for sources which failed
    34bool psphotReplaceUnfit (psArray *sources) {
    45
     
    1516
    1617    replace:
    17         if (source->modelPSF == NULL) continue;
    18 
    19         psTrace ("psphot", 3, "replacing object at %f,%f\n",
    20                  source->modelPSF->params->data.F32[PM_PAR_XPOS], source->modelPSF->params->data.F32[PM_PAR_YPOS]);
    21 
    22         // why am i assuming below that this is a PSF?
    23         // pmSourceAdd (!NORM, +)
    24         pmModelAdd (source->pixels, source->mask, source->modelPSF, PM_MODEL_ADD_FULL);
     18        pmSourceAdd (source, PM_MODEL_OP_FULL);
    2519        source->mode &= ~PM_SOURCE_MODE_SUBTRACTED;
    2620        source->mode &= ~PM_SOURCE_MODE_TEMPSUB;
     
    4236      if (!(source->mode & PM_SOURCE_MODE_SUBTRACTED)) continue;
    4337
    44       // select appropriate model
    45       pmModel *model = pmSourceGetModel (NULL, source);
    46       if (model == NULL) continue;  // model must be defined
    47        
    48       psTrace ("psphot", 3, "replacing object at %f,%f\n",
    49                model->params->data.F32[PM_PAR_XPOS], model->params->data.F32[PM_PAR_YPOS]);
    50 
    51       // pmSourceAdd (source, !NORM, "+");
    52       // XXX remove model selection and ps
    53       pmModelAdd (source->pixels, source->mask, model, PM_MODEL_ADD_FULL);
     38      pmSourceAdd (source, PM_MODEL_OP_FULL);
    5439      source->mode &= ~PM_SOURCE_MODE_SUBTRACTED;
    5540    }
     
    5843}
    5944
    60 // add or sub source replace or if the source has
     45// add source, if the source has been subtracted (or if we ignore the state)
    6146bool psphotAddWithTest (pmSource *source, bool useState) {
    6247
     
    6449    bool state = !(source->mode & PM_SOURCE_MODE_SUBTRACTED);
    6550    if (state && useState) return true;
    66 
    67     // select appropriate model
    68     pmModel *model = pmSourceGetModel (NULL, source);
    69     if (model == NULL) return false;  // model must be defined
    70    
    71     psTrace ("psphot", 3, "replacing object at %f,%f\n",
    72              model->params->data.F32[PM_PAR_XPOS], model->params->data.F32[PM_PAR_YPOS]);
    7351   
    7452    // replace the model if 1) state says it is missing or 2) useState is false (just do it)
    7553    if (!state || !useState) {
    76         pmModelAdd (source->pixels, source->mask, model, PM_MODEL_ADD_FULL);
     54        pmSourceAdd (source, PM_MODEL_OP_FULL);
    7755    }
    7856    return true;
    7957}
    8058
    81 // add or sub source replace or if the source has
     59// sub source, if the source has been added (or if we ignore the state)
    8260bool psphotSubWithTest (pmSource *source, bool useState) {
    8361
     
    8664    if (state && useState) return true;
    8765
    88     // select appropriate model
    89     pmModel *model = pmSourceGetModel (NULL, source);
    90     if (model == NULL) return false;  // model must be defined
    91    
    92     psTrace ("psphot", 3, "replacing object at %f,%f\n",
    93              model->params->data.F32[PM_PAR_XPOS], model->params->data.F32[PM_PAR_YPOS]);
    94    
    9566    // replace the model if 1) state says it is missing or 2) useState is false (just do it)
    9667    if (!state || !useState) {
    97       // pmSourceSub (!NORM, -)
    98         pmModelSub (source->pixels, source->mask, model, PM_MODEL_ADD_FULL);
     68        pmSourceSub (source, PM_MODEL_OP_FULL);
    9969    }
    10070    return true;
     
    10777    bool newState = !(source->mode & PM_SOURCE_MODE_SUBTRACTED);
    10878    if (curState == newState) return true;
    109 
    110     // select appropriate model
    111     pmModel *model = pmSourceGetModel (NULL, source);
    112     if (model == NULL) return false;  // model must be defined
    113    
    114     psTrace ("psphot", 3, "replacing object at %f,%f\n",
    115              model->params->data.F32[PM_PAR_XPOS], model->params->data.F32[PM_PAR_YPOS]);
    11679   
    11780    if (curState && !newState) {
    118       // pmSourceSub (!NORM, -)
    119         pmModelSub (source->pixels, source->mask, model, PM_MODEL_ADD_FULL);
     81        pmSourceSub (source, PM_MODEL_OP_FULL);
    12082    }
    12183    if (newState && !curState) {
    122       // pmSourceAdd (!NORM, +)
    123         pmModelAdd (source->pixels, source->mask, model, PM_MODEL_ADD_FULL);
     84        pmSourceAdd (source, PM_MODEL_OP_FULL);
    12485    }
    12586    return true;
  • branches/eam_02_branch/psphot/src/psphotSourceFits.c

    r12952 r12957  
    110110        blend->modelPSF = psMemIncrRefCounter (model);
    111111        psTrace ("psphot", 5, "fitted blend as PSF\n");
    112         pmModelSub (source->pixels, source->mask, model, PM_MODEL_ADD_FULL);
     112        pmModelSub (source->pixels, source->mask, model, PM_MODEL_OP_FULL);
    113113        blend->mode |=  PM_SOURCE_MODE_SUBTRACTED;
    114114        blend->mode &= ~PM_SOURCE_MODE_TEMPSUB;
     
    128128
    129129    psTrace ("psphot", 5, "fitted primary as PSF\n");
    130     pmModelSub (source->pixels, source->mask, PSF, PM_MODEL_ADD_FULL);
     130    pmModelSub (source->pixels, source->mask, PSF, PM_MODEL_OP_FULL);
    131131    psFree (source->modelPSF);
    132132    source->modelPSF = PSF;
     
    169169
    170170    psTrace ("psphot", 5, "fitted as PSF\n");
    171     pmModelSub (source->pixels, source->mask, PSF, PM_MODEL_ADD_FULL);
     171    pmModelSub (source->pixels, source->mask, PSF, PM_MODEL_OP_FULL);
    172172
    173173    // free old model, save new model
     
    264264    // sub EXT
    265265    psFree (DBL);
    266     pmModelSub (source->pixels, source->mask, EXT, PM_MODEL_ADD_FULL);
     266    pmModelSub (source->pixels, source->mask, EXT, PM_MODEL_OP_FULL);
    267267    psTrace ("psphot", 5, "blob as EXT: %f %f\n", EXT->params->data.F32[PM_PAR_XPOS], EXT->params->data.F32[PM_PAR_YPOS]);
    268268
     
    276276    // sub DLB
    277277    psFree (EXT);
    278     pmModelSub (source->pixels, source->mask, (pmModel *) DBL->data[0], PM_MODEL_ADD_FULL);
    279     pmModelSub (source->pixels, source->mask, (pmModel *) DBL->data[1], PM_MODEL_ADD_FULL);
     278    pmModelSub (source->pixels, source->mask, (pmModel *) DBL->data[0], PM_MODEL_OP_FULL);
     279    pmModelSub (source->pixels, source->mask, (pmModel *) DBL->data[1], PM_MODEL_OP_FULL);
    280280    psTrace ("psphot", 5, "blob as DBL: %f %f\n", ONE->params->data.F32[PM_PAR_XPOS], ONE->params->data.F32[PM_PAR_YPOS]);
    281281
  • branches/eam_02_branch/psphot/src/psphotTestPSF.c

    r12952 r12957  
    124124
    125125        // subtract model flux
    126         pmModelSub (source->pixels, source->mask, model, PM_MODEL_ADD_FULL);
     126        pmModelSub (source->pixels, source->mask, model, PM_MODEL_OP_FULL);
    127127    }
    128128    fclose (f);
  • branches/eam_02_branch/psphot/src/psphotWeightBias.c

    r12952 r12957  
    55// only allow the normalization to vary
    66// XXX eventually, we should be able to do this with linear fitting...
     7// XXX UNUSED
    78bool psphotWeightBias (pmReadout *readout, psArray *sources, psMetadata *recipe, pmPSF *psf) {
    89
     
    5960
    6061        // replace object in image
    61         pmModelAdd (source->pixels, source->mask, source->modelPSF, PM_MODEL_ADD_FULL);
     62        pmModelAdd (source->pixels, source->mask, source->modelPSF, PM_MODEL_OP_FULL);
    6263
    6364        // make a temporary model (we don't keep the result of this analysis)
     
    7677
    7778        // re-subtract PSF for object, leave local sky
    78         pmModelSub (source->pixels, source->mask, source->modelPSF, PM_MODEL_ADD_FULL);
     79        pmModelSub (source->pixels, source->mask, source->modelPSF, PM_MODEL_OP_FULL);
    7980
    8081        PARp = source->modelPSF->params->data.F32;
Note: See TracChangeset for help on using the changeset viewer.