IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jul 16, 2005, 6:02:29 AM (21 years ago)
Author:
eugene
Message:

improved galaxy model guesses, better handling of errors

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psphot/src/psphot-utils.c

    r4421 r4574  
    9696        model = (psModel  *) source->modelPSF;
    9797        if (model == NULL) continue;
     98        if (source->type == PS_SOURCE_GALAXY) continue;
     99        if (source->type == PS_SOURCE_DEFECT) continue;
     100        if (source->type == PS_SOURCE_SATURATED) continue;
    98101        params = model->params;
    99102        dparams = model->dparams;
     
    107110            fprintf (f, "%9.6f ", dparams[0].data.F32[j+4]);
    108111        }
    109         fprintf (f, ": %2d %7.4f %7.4f %7.2f (%d %d)\n", source[0].type, log10(model[0].chisq), source[0].moments->SN, model[0].radius, model[0].nDOF, model[0].nIter);
     112        fprintf (f, ": %2d %7.4f %7.4f %7.2f (%d %d)\n",
     113                 source[0].type, log10(model[0].chisq), source[0].moments->SN,
     114                 model[0].radius, model[0].nDOF, model[0].nIter);
    110115    }
    111116    fclose (f);
     
    134139        model = (psModel  *) source->modelFLT;
    135140        if (model == NULL) continue;
     141        if (source->type == PS_SOURCE_PSFSTAR) continue;
     142        if (source->type == PS_SOURCE_SATSTAR) continue;
     143        if (source->type == PS_SOURCE_BRIGHTSTAR) continue;
     144        if (source->type == PS_SOURCE_FAINTSTAR) continue;
     145        if (source->type == PS_SOURCE_OTHER) continue;
     146        if (source->type == PS_SOURCE_DEFECT) continue;
     147        if (source->type == PS_SOURCE_SATURATED) continue;
     148
    136149        params = model->params;
    137150        dparams = model->dparams;
     
    287300}
    288301
     302/* this code is in pmObjects.h / psModules:psEllipse */
     303# if (0)
     304typedef struct {
     305  double major;
     306  double minor;
     307  double theta;
     308} EllipseAxes;
     309
     310typedef struct {
     311  double x2;
     312  double y2;
     313  double xy;
     314} EllipseMoments;
     315
     316typedef struct {
     317  double sx;
     318  double sy;
     319  double sxy;
     320} EllipseShape;
     321
     322EllipseAxes EllipseMomentsToAxes (EllipseMoments moments) {
     323
     324  EllipseAxes axes;
     325
     326  double f = sqrt (0.25*PS_SQR(moments.x2 - moments.y2) + PS_SQR(moments.sy));
     327
     328  axes.major = sqrt (0.5*(moments.x2 + moments.y2) + f);
     329  axes.minor = sqrt (0.5*(moments.x2 + moments.y2) - f)
     330  axes.theta = atan2 (2*moments.xy, moments.x2 - moments.y2) / 2;
     331  // theta in radians
     332
     333  return (axes);
     334}
     335
     336EllipseShape EllipseMomentsToShape (EllipseMoments moments) {
     337
     338  EllipseShape shape;
     339
     340  double f = sqrt(0.25*PS_SQR(axes.x2 - axes.y2) + PS_SQR(axes.sxy));
     341
     342  shape.sx = moments.y2 / f;
     343  shape.sy = moments.x2 / f;
     344  shape.sxy = -2.0*moments.xy / f;
     345  // XXX - these are probably wrong
     346
     347  return (shape);
     348}
     349
     350EllipseMoments EllipseShapeToMoments (EllipseShape shape) {
     351
     352  EllipseMoments moments;
     353
     354  return (moments);
     355}
     356
     357EllipseAxes EllipseShapeToAxes (EllipseShape shape) {
     358
     359  EllipseAxes axes;
     360
     361
     362  return (axes);
     363}
     364
     365EllipseShape EllipseAxesToShape (EllipseAxes axes) {
     366
     367  EllipseShape shape;
     368
     369  shape.sx = PS_SQR(cos(axes.theta) / axes.major) + PS_SQR(sin(axes.theta) / axes.minor);
     370  shape.sy = PS_SQR(sin(axes.theta) / axes.major) + PS_SQR(cos(axes.theta) / axes.minor);
     371  shape.sxy = cos(axes.theta)*sin(axes.theta)*(1.0/PS_SQR(axes.major) - 1.0/PS_SQR(axes.minor));
     372
     373  return (shape);
     374}
     375
     376EllipseMoments EllipseAxesToMoments (EllipseAxes axes) {
     377
     378  EllipseMoments moments;
     379
     380  return (moments);
     381}
     382
     383# endif
Note: See TracChangeset for help on using the changeset viewer.