Changeset 4574 for trunk/psphot/src/psphot-utils.c
- Timestamp:
- Jul 16, 2005, 6:02:29 AM (21 years ago)
- File:
-
- 1 edited
-
trunk/psphot/src/psphot-utils.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psphot/src/psphot-utils.c
r4421 r4574 96 96 model = (psModel *) source->modelPSF; 97 97 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; 98 101 params = model->params; 99 102 dparams = model->dparams; … … 107 110 fprintf (f, "%9.6f ", dparams[0].data.F32[j+4]); 108 111 } 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); 110 115 } 111 116 fclose (f); … … 134 139 model = (psModel *) source->modelFLT; 135 140 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 136 149 params = model->params; 137 150 dparams = model->dparams; … … 287 300 } 288 301 302 /* this code is in pmObjects.h / psModules:psEllipse */ 303 # if (0) 304 typedef struct { 305 double major; 306 double minor; 307 double theta; 308 } EllipseAxes; 309 310 typedef struct { 311 double x2; 312 double y2; 313 double xy; 314 } EllipseMoments; 315 316 typedef struct { 317 double sx; 318 double sy; 319 double sxy; 320 } EllipseShape; 321 322 EllipseAxes 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 336 EllipseShape 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 350 EllipseMoments EllipseShapeToMoments (EllipseShape shape) { 351 352 EllipseMoments moments; 353 354 return (moments); 355 } 356 357 EllipseAxes EllipseShapeToAxes (EllipseShape shape) { 358 359 EllipseAxes axes; 360 361 362 return (axes); 363 } 364 365 EllipseShape 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 376 EllipseMoments 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.
