IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 34144


Ignore:
Timestamp:
Jul 13, 2012, 6:31:39 AM (14 years ago)
Author:
eugene
Message:

add special fit case for trails; update guess for trails; update cmf output to include trails and errors

Location:
branches/eam_branches/ipp-20120627/psModules/src/objects
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20120627/psModules/src/objects/models/pmModel_TRAIL.c

    r34141 r34144  
    5959
    6060// Lax parameter limits
    61 static float paramsMinLax[] = { -1.0e3, 1.0e-2, -1.0e2, -1.0e2,  0.5, -0.1, -1.0 };
    62 static float paramsMaxLax[] = {  1.0e5, 1.0e+8, +1.0e4, +1.0e4, 50.0, +3.3 , 1.0 };
     61static float paramsMinLax[] = { -1.0e3, 1.0e-2, -1.0e2, -1.0e2,  0.5, -3.3, -0.5 };
     62static float paramsMaxLax[] = {  1.0e5, 1.0e+8, +1.0e4, +1.0e4, 50.0, +3.3 , 5.0 };
    6363
    6464// Moderate parameter limits
     
    255255    if (!isfinite(axes.theta)) return false;
    256256
    257     PAR[PM_PAR_LENGTH] = axes.major; // XXX major or 2*major?
    258     PAR[PM_PAR_THETA] = axes.theta; // XXX theta or theta * RAD_DEG?
    259     PAR[PM_PAR_SIGMA] = psfAxes.major; // XXX major or 0.5*major?
     257    // axes.major is a sigma in the major direction; scale to
     258    PAR[PM_PAR_LENGTH] = 1.5*2.35*axes.major; // a tophat of length L has L = 1.5 * 2.35 * sigma
     259    PAR[PM_PAR_THETA] = axes.theta; // theta in radians
     260    PAR[PM_PAR_SIGMA] = psfAxes.major; // psf major axes (sigma of the psf)
    260261
    261262    // set the model normalization
     
    285286    psF32 *PAR = params->data.F32;
    286287
    287     return (0.5*PAR[PM_PAR_LENGTH]);
     288    // PAR_LENGTH is the unconvolved length.  add a bit for safety
     289    return (0.5*PAR[PM_PAR_LENGTH] + 2);
    288290}
    289291
  • branches/eam_branches/ipp-20120627/psModules/src/objects/pmSourceFitModel.c

    r32347 r34144  
    182182        constraint->paramMask->data.PS_TYPE_VECTOR_MASK_DATA[PM_PAR_YPOS] = 1;
    183183        constraint->paramMask->data.PS_TYPE_VECTOR_MASK_DATA[PM_PAR_SKY] = 1;
     184        break;
     185      case PM_SOURCE_FIT_TRAIL:
     186        // special mode for pmModel_TRAIL: Io, Xo, Yo, Length, and Theta (not Io or Sigma)
     187        nParams = params->n - 3;
     188        psVectorInit (constraint->paramMask, 0);
     189        constraint->paramMask->data.PS_TYPE_VECTOR_MASK_DATA[PM_PAR_SKY] = 1;
     190        constraint->paramMask->data.PS_TYPE_VECTOR_MASK_DATA[PM_PAR_SIGMA] = 1;
    184191        break;
    185192      case PM_SOURCE_FIT_INDEX:
  • branches/eam_branches/ipp-20120627/psModules/src/objects/pmSourceFitModel.h

    r31153 r34144  
    2222    PM_SOURCE_FIT_INDEX,
    2323    PM_SOURCE_FIT_NO_INDEX,
     24    PM_SOURCE_FIT_TRAIL,
    2425} pmSourceFitMode;
    2526
  • branches/eam_branches/ipp-20120627/psModules/src/objects/pmSourceIO_CMF.c.in

    r33693 r34144  
    641641
    642642            // XXX these should be major and minor, not 'x' and 'y'
    643             psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_WIDTH_MAJ",    0, "EXT width in x coordinate",                  axes.major);
    644             psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_WIDTH_MIN",    0, "EXT width in y coordinate",                  axes.minor);
    645             psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_THETA",        0, "EXT orientation angle",                      axes.theta);
     643            if (model->type == pmModelClassGetType("PS_MODEL_TRAIL")) {
     644              psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_WIDTH_MAJ",    0, "EXT width (major axis), length for trail", PAR[PM_PAR_LENGTH]);
     645              psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_WIDTH_MIN",    0, "EXT width (minor axis), sigma for trail",  PAR[PM_PAR_SIGMA]);
     646              psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_THETA",        0, "EXT orientation angle",                    PAR[PM_PAR_THETA]);
     647              psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_WIDTH_MAJ_ERR",0, "EXT width error (major axis)",            dPAR[PM_PAR_LENGTH]);
     648              psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_WIDTH_MIN_ERR",0, "EXT width error (minor axis)",            dPAR[PM_PAR_SIGMA]);
     649              psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_THETA_ERR",    0, "EXT orientation angle (error)",           dPAR[PM_PAR_THETA]);
     650            } else {
     651              psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_WIDTH_MAJ",    0, "EXT width (major axis), length for trail", axes.major);
     652              psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_WIDTH_MIN",    0, "EXT width (minor axis), sigma for trail",  axes.minor);
     653              psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_THETA",        0, "EXT orientation angle",                    axes.theta);
     654              psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_WIDTH_MAJ_ERR",0, "EXT width error (major axis)",            dPAR[PM_PAR_LENGTH]);
     655              psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_WIDTH_MIN_ERR",0, "EXT width error (minor axis)",            dPAR[PM_PAR_SIGMA]);
     656              psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_THETA_ERR",    0, "EXT orientation angle (error)",           dPAR[PM_PAR_THETA]);
     657            }
    646658
    647659            // write out the other generic parameters
  • branches/eam_branches/ipp-20120627/psModules/src/objects/pmSourceIO_CMF_PS1_SV1.c

    r33690 r34144  
    716716
    717717            // XXX these should be major and minor, not 'x' and 'y'
    718             psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_WIDTH_MAJ",    0, "EXT width in x coordinate",                  axes.major);
    719             psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_WIDTH_MIN",    0, "EXT width in y coordinate",                  axes.minor);
    720             psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_THETA",        0, "EXT orientation angle",                      axes.theta);
     718            if (model->type == pmModelClassGetType("PS_MODEL_TRAIL")) {
     719              psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_WIDTH_MAJ",    0, "EXT width (major axis), length for trail", PAR[PM_PAR_LENGTH]);
     720              psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_WIDTH_MIN",    0, "EXT width (minor axis), sigma for trail",  PAR[PM_PAR_SIGMA]);
     721              psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_THETA",        0, "EXT orientation angle",                    PAR[PM_PAR_THETA]);
     722            } else {
     723              psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_WIDTH_MAJ",    0, "EXT width (major axis), length for trail", axes.major);
     724              psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_WIDTH_MIN",    0, "EXT width (minor axis), sigma for trail",  axes.minor);
     725              psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_THETA",        0, "EXT orientation angle",                    axes.theta);
     726            }
    721727
    722728            // write out the other generic parameters
Note: See TracChangeset for help on using the changeset viewer.