IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Apr 4, 2011, 1:04:41 PM (15 years ago)
Author:
eugene
Message:

updates to pmPeak to better distinguish peak flux versions; updates to visualization; add bits for substantial suspect masking; consolidate assignment of source position and flux based on peak, moments, etc; improve footprint culling process; fix PSF_QF and PSF_QF_PERFECT calculations; fix source model chisq values

Location:
trunk/psModules
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/psModules

    • Property svn:ignore
      •  

        old new  
        2828ChangeLog
        2929psmodules-*.tar.*
         30a.out.dSYM
  • trunk/psModules/src/objects/models/pmModel_DEV.c

    r29004 r31153  
    217217bool PM_MODEL_GUESS (pmModel *model, pmSource *source)
    218218{
    219     pmMoments *moments = source->moments;
    220     pmPeak    *peak    = source->peak;
    221     psF32     *PAR  = model->params->data.F32;
    222 
    223     psEllipseMoments emoments;
    224     emoments.x2 = moments->Mxx;
    225     emoments.xy = moments->Mxy;
    226     emoments.y2 = moments->Myy;
    227 
    228     // force the axis ratio to be < 20.0
    229     psEllipseAxes axes = psEllipseMomentsToAxes (emoments, 20.0);
    230 
    231     if (!isfinite(axes.major)) return false;
    232     if (!isfinite(axes.minor)) return false;
    233     if (!isfinite(axes.theta)) return false;
    234 
    235     psEllipseShape shape = psEllipseAxesToShape (axes);
    236 
    237     if (!isfinite(shape.sx))  return false;
    238     if (!isfinite(shape.sy))  return false;
    239     if (!isfinite(shape.sxy)) return false;
    240 
    241     // the other parameters depend on the guess for PAR_7
     219    psF32 *PAR  = model->params->data.F32;
     220
     221    // sky is set to 0.0
     222    PAR[PM_PAR_SKY]  = 0.0;
     223
     224    // set the shape parameters
     225    if (!pmModelSetShape(&PAR[PM_PAR_SXX], &PAR[PM_PAR_SXY], &PAR[PM_PAR_SYY], source->moments)) {
     226      return false;
     227    }
     228
     229    // the normalization is modified by the slope
    242230    float index = 0.5 / ALPHA;
    243231    float bn = 1.9992*index - 0.3271;
    244     // float fR = 1.0 / (sqrt(2.0) * pow (bn, index));
    245232    float Io = exp(0.5*bn);
    246233
    247     float Sxx = PS_MAX(0.5, shape.sx);
    248     float Syy = PS_MAX(0.5, shape.sy);
    249 
    250     PAR[PM_PAR_SKY]  = 0.0;
    251     PAR[PM_PAR_I0]   = peak->flux / Io;
    252     PAR[PM_PAR_XPOS] = peak->xf;
    253     PAR[PM_PAR_YPOS] = peak->yf;
    254     // PAR[PM_PAR_SXX]  = Sxx * fR;
    255     // PAR[PM_PAR_SYY]  = Syy * fR;
    256     PAR[PM_PAR_SXX]  = Sxx;
    257     PAR[PM_PAR_SYY]  = Syy;
    258     PAR[PM_PAR_SXY]  = shape.sxy;
     234    // set the model normalization
     235    if (!pmModelSetNorm(&PAR[PM_PAR_I0], source)) {
     236      return false;
     237    }
     238    PAR[PM_PAR_I0] /= Io;
     239
     240    // set the model position
     241    if (!pmModelSetPosition(&PAR[PM_PAR_XPOS], &PAR[PM_PAR_YPOS], source)) {
     242      return false;
     243    }
    259244
    260245    return(true);
     
    322307    psF64 radius = axes.major * sqrt (2.0) * pow(zn, 0.5 / ALPHA);
    323308
    324     psAssert (isfinite(radius), "fix this code: z should not be nan");
     309    psAssert (isfinite(radius), "fix this code: radius should not be nan for Io = %f, flux = %f, major = %f (%f, %f, %f)",
     310              PAR[PM_PAR_I0], flux, axes.major, PAR[PM_PAR_SXX], PAR[PM_PAR_SXY], PAR[PM_PAR_SYY]);
     311
    325312    return (radius);
    326313}
  • trunk/psModules/src/objects/models/pmModel_EXP.c

    r29004 r31153  
    210210bool PM_MODEL_GUESS (pmModel *model, pmSource *source)
    211211{
    212     pmMoments *moments = source->moments;
    213     pmPeak    *peak    = source->peak;
    214     psF32     *PAR  = model->params->data.F32;
    215 
    216     psEllipseMoments emoments;
    217     emoments.x2 = moments->Mxx;
    218     emoments.xy = moments->Mxy;
    219     emoments.y2 = moments->Myy;
    220 
    221     // force the axis ratio to be < 20.0
    222     psEllipseAxes axes = psEllipseMomentsToAxes (emoments, 20.0);
    223 
    224     if (!isfinite(axes.major)) return false;
    225     if (!isfinite(axes.minor)) return false;
    226     if (!isfinite(axes.theta)) return false;
    227 
    228     psEllipseShape shape = psEllipseAxesToShape (axes);
    229 
    230     if (!isfinite(shape.sx))  return false;
    231     if (!isfinite(shape.sy))  return false;
    232     if (!isfinite(shape.sxy)) return false;
    233 
     212    psF32 *PAR  = model->params->data.F32;
     213
     214    // sky is set to 0.0
    234215    PAR[PM_PAR_SKY]  = 0.0;
    235     PAR[PM_PAR_I0]   = peak->flux;
    236     PAR[PM_PAR_XPOS] = peak->xf;
    237     PAR[PM_PAR_YPOS] = peak->yf;
    238     PAR[PM_PAR_SXX]  = PS_MAX(0.5, M_SQRT2*shape.sx);
    239     PAR[PM_PAR_SYY]  = PS_MAX(0.5, M_SQRT2*shape.sy);
    240     PAR[PM_PAR_SXY]  = shape.sxy;
     216
     217    // set the shape parameters
     218    if (!pmModelSetShape(&PAR[PM_PAR_SXX], &PAR[PM_PAR_SXY], &PAR[PM_PAR_SYY], source->moments)) {
     219      return false;
     220    }
     221
     222    // set the model normalization
     223    if (!pmModelSetNorm(&PAR[PM_PAR_I0], source)) {
     224      return false;
     225    }
     226
     227    // set the model position
     228    if (!pmModelSetPosition(&PAR[PM_PAR_XPOS], &PAR[PM_PAR_YPOS], source)) {
     229      return false;
     230    }
     231
    241232    return(true);
    242233}
     
    303294    psF64 radius = axes.major * sqrt (2.0) * zn;
    304295
    305     psAssert (isfinite(radius), "fix this code: z should not be nan for %f", PAR[PM_PAR_7]);
     296    psAssert (isfinite(radius), "fix this code: radius should not be nan for Io = %f, flux = %f, major = %f (%f, %f, %f)",
     297              PAR[PM_PAR_I0], flux, axes.major, PAR[PM_PAR_SXX], PAR[PM_PAR_SXY], PAR[PM_PAR_SYY]);
    306298    return (radius);
    307299}
  • trunk/psModules/src/objects/models/pmModel_GAUSS.c

    r29004 r31153  
    193193bool PM_MODEL_GUESS (pmModel *model, pmSource *source)
    194194{
    195     pmMoments *moments = source->moments;
    196     pmPeak    *peak    = source->peak;
    197     psF32     *PAR  = model->params->data.F32;
    198 
    199     psEllipseMoments emoments;
    200     emoments.x2 = moments->Mxx;
    201     emoments.y2 = moments->Myy;
    202     emoments.xy = moments->Mxy;
    203 
    204     // force the axis ratio to be < 20.0
    205     psEllipseAxes axes = psEllipseMomentsToAxes (emoments, 20.0);
    206     psEllipseShape shape = psEllipseAxesToShape (axes);
    207 
     195    psF32 *PAR  = model->params->data.F32;
     196
     197    // sky is set to 0.0
    208198    PAR[PM_PAR_SKY]  = 0.0;
    209     PAR[PM_PAR_I0]   = peak->flux;
    210     PAR[PM_PAR_XPOS] = peak->xf;
    211     PAR[PM_PAR_YPOS] = peak->yf;
    212     PAR[PM_PAR_SXX] = PS_MAX(0.5, M_SQRT2*shape.sx);
    213     PAR[PM_PAR_SYY] = PS_MAX(0.5, M_SQRT2*shape.sy);
    214     PAR[PM_PAR_SXY] = shape.sxy;
     199
     200    // set the shape parameters
     201    if (!pmModelSetShape(&PAR[PM_PAR_SXX], &PAR[PM_PAR_SXY], &PAR[PM_PAR_SYY], source->moments)) {
     202      return false;
     203    }
     204
     205    // set the model normalization
     206    if (!pmModelSetNorm(&PAR[PM_PAR_I0], source)) {
     207      return false;
     208    }
     209
     210    // set the model position
     211    if (!pmModelSetPosition(&PAR[PM_PAR_XPOS], &PAR[PM_PAR_YPOS], source)) {
     212      return false;
     213    }
     214
    215215    return(true);
    216216}
     
    258258    psEllipseAxes axes = psEllipseShapeToAxes (shape, 20.0);
    259259    psF64 radius = axes.major * sqrt (2.0 * log(PAR[PM_PAR_I0] / flux));
    260     psAssert (isfinite(radius), "fix this code: radius should not be nan for %f", PAR[PM_PAR_I0]);
     260    psAssert (isfinite(radius), "fix this code: radius should not be nan for Io = %f, flux = %f, major = %f (%f, %f, %f)",
     261              PAR[PM_PAR_I0], flux, axes.major, PAR[PM_PAR_SXX], PAR[PM_PAR_SXY], PAR[PM_PAR_SYY]);
    261262
    262263    return (radius);
  • trunk/psModules/src/objects/models/pmModel_PGAUSS.c

    r29004 r31153  
    194194bool PM_MODEL_GUESS (pmModel *model, pmSource *source)
    195195{
    196     pmMoments *moments = source->moments;
    197     pmPeak    *peak    = source->peak;
    198     psF32     *PAR     = model->params->data.F32;
    199 
    200     psEllipseMoments emoments;
    201     emoments.x2 = moments->Mxx;
    202     emoments.xy = moments->Mxy;
    203     emoments.y2 = moments->Myy;
    204 
    205     psEllipseAxes axes = psEllipseMomentsToAxes (emoments, 20.0);
    206     psEllipseShape shape = psEllipseAxesToShape (axes);
    207 
     196    psF32 *PAR  = model->params->data.F32;
     197
     198    // sky is set to 0.0
    208199    PAR[PM_PAR_SKY]  = 0.0;
    209     PAR[PM_PAR_I0]   = peak->flux;
    210     PAR[PM_PAR_XPOS] = peak->xf;
    211     PAR[PM_PAR_YPOS] = peak->yf;
    212     PAR[PM_PAR_SXX] = PS_MAX(0.5, M_SQRT2*shape.sx);
    213     PAR[PM_PAR_SYY] = PS_MAX(0.5, M_SQRT2*shape.sy);
    214     PAR[PM_PAR_SXY] = shape.sxy;
     200
     201    // set the shape parameters
     202    if (!pmModelSetShape(&PAR[PM_PAR_SXX], &PAR[PM_PAR_SXY], &PAR[PM_PAR_SYY], source->moments)) {
     203      return false;
     204    }
     205
     206    // set the model normalization
     207    if (!pmModelSetNorm(&PAR[PM_PAR_I0], source)) {
     208      return false;
     209    }
     210
     211    // set the model position
     212    if (!pmModelSetPosition(&PAR[PM_PAR_XPOS], &PAR[PM_PAR_YPOS], source)) {
     213      return false;
     214    }
     215
    215216    return(true);
    216217}
     
    285286    // choose a z value guaranteed to be beyond our limit
    286287    float z0 = pow((1.0 / limit), (1.0 / 3.0));
    287     psAssert (isfinite(z0), "fix this code: z0 should not be nan for %f", PAR[PM_PAR_I0]);
     288    psAssert (isfinite(z0), "fix this code: z0 should not be nan for Io = %f, flux = %f, major = %f (%f, %f, %f)",
     289              PAR[PM_PAR_I0], flux, axes.major, PAR[PM_PAR_SXX], PAR[PM_PAR_SXY], PAR[PM_PAR_SYY]);
     290
    288291    float z1 = (1.0 / limit);
    289     psAssert (isfinite(z1), "fix this code: z1 should not be nan for %f", PAR[PM_PAR_I0]);
     292    psAssert (isfinite(z1), "fix this code: z1 should not be nan for Io = %f, flux = %f, major = %f (%f, %f, %f)",
     293              PAR[PM_PAR_I0], flux, axes.major, PAR[PM_PAR_SXX], PAR[PM_PAR_SXY], PAR[PM_PAR_SYY]);
     294
    290295    z1 = PS_MAX (z0, z1);
    291296    z0 = 0.0;
  • trunk/psModules/src/objects/models/pmModel_PS1_V1.c

    r29004 r31153  
    213213bool PM_MODEL_GUESS (pmModel *model, pmSource *source)
    214214{
    215     pmMoments *moments = source->moments;
    216     pmPeak    *peak    = source->peak;
    217     psF32     *PAR  = model->params->data.F32;
    218 
    219     psEllipseMoments emoments;
    220     emoments.x2 = moments->Mxx;
    221     emoments.xy = moments->Mxy;
    222     emoments.y2 = moments->Myy;
    223 
    224     // force the axis ratio to be < 20.0
    225     psEllipseAxes axes = psEllipseMomentsToAxes (emoments, 20.0);
    226 
    227     if (!isfinite(axes.major)) return false;
    228     if (!isfinite(axes.minor)) return false;
    229     if (!isfinite(axes.theta)) return false;
    230 
    231     psEllipseShape shape = psEllipseAxesToShape (axes);
    232 
    233     if (!isfinite(shape.sx))  return false;
    234     if (!isfinite(shape.sy))  return false;
    235     if (!isfinite(shape.sxy)) return false;
    236 
     215    psF32 *PAR  = model->params->data.F32;
     216
     217    // sky is set to 0.0
    237218    PAR[PM_PAR_SKY]  = 0.0;
    238     PAR[PM_PAR_I0]   = peak->flux;
    239     PAR[PM_PAR_XPOS] = peak->xf;
    240     PAR[PM_PAR_YPOS] = peak->yf;
    241     PAR[PM_PAR_SXX]  = PS_MAX(0.5, M_SQRT2*shape.sx);
    242     PAR[PM_PAR_SYY]  = PS_MAX(0.5, M_SQRT2*shape.sy);
    243     PAR[PM_PAR_SXY]  = shape.sxy;
     219
     220    // set the shape parameters
     221    if (!pmModelSetShape(&PAR[PM_PAR_SXX], &PAR[PM_PAR_SXY], &PAR[PM_PAR_SYY], source->moments)) {
     222      return false;
     223    }
     224
     225    // set the model normalization
     226    if (!pmModelSetNorm(&PAR[PM_PAR_I0], source)) {
     227      return false;
     228    }
     229
     230    // set the model position
     231    if (!pmModelSetPosition(&PAR[PM_PAR_XPOS], &PAR[PM_PAR_YPOS], source)) {
     232      return false;
     233    }
     234
     235    // extra parameter
    244236    PAR[PM_PAR_7]    = 0.5;
    245237
     
    314306    float z0 = 0.0;
    315307    float z1 = pow((1.0 / limit), (1.0 / ALPHA));
    316     psAssert (isfinite(z1), "fix this code: z1 should not be nan for %f", PAR[PM_PAR_7]);
     308    psAssert (isfinite(z1), "fix this code: z1 should not be nan for Io = %f, flux = %f, major = %f (%f, %f, %f)",
     309              PAR[PM_PAR_I0], flux, axes.major, PAR[PM_PAR_SXX], PAR[PM_PAR_SXY], PAR[PM_PAR_SYY]);
    317310    if (PAR[PM_PAR_7] < 0.0) z1 *= 2.0;
    318311
  • trunk/psModules/src/objects/models/pmModel_QGAUSS.c

    r29004 r31153  
    214214bool PM_MODEL_GUESS (pmModel *model, pmSource *source)
    215215{
    216     pmMoments *moments = source->moments;
    217     pmPeak    *peak    = source->peak;
    218     psF32     *PAR  = model->params->data.F32;
    219 
    220     psEllipseMoments emoments;
    221     emoments.x2 = moments->Mxx;
    222     emoments.xy = moments->Mxy;
    223     emoments.y2 = moments->Myy;
    224 
    225     // force the axis ratio to be < 20.0
    226     psEllipseAxes axes = psEllipseMomentsToAxes (emoments, 20.0);
    227 
    228     if (!isfinite(axes.major)) return false;
    229     if (!isfinite(axes.minor)) return false;
    230     if (!isfinite(axes.theta)) return false;
    231 
    232     psEllipseShape shape = psEllipseAxesToShape (axes);
    233 
    234     if (!isfinite(shape.sx))  return false;
    235     if (!isfinite(shape.sy))  return false;
    236     if (!isfinite(shape.sxy)) return false;
    237 
     216    psF32 *PAR  = model->params->data.F32;
     217
     218    // sky is set to 0.0
    238219    PAR[PM_PAR_SKY]  = 0.0;
    239     PAR[PM_PAR_I0]   = peak->flux;
    240     PAR[PM_PAR_XPOS] = peak->xf;
    241     PAR[PM_PAR_YPOS] = peak->yf;
    242     PAR[PM_PAR_SXX]  = PS_MAX(0.5, M_SQRT2*shape.sx);
    243     PAR[PM_PAR_SYY]  = PS_MAX(0.5, M_SQRT2*shape.sy);
    244     PAR[PM_PAR_SXY]  = shape.sxy;
     220
     221    // set the shape parameters
     222    if (!pmModelSetShape(&PAR[PM_PAR_SXX], &PAR[PM_PAR_SXY], &PAR[PM_PAR_SYY], source->moments)) {
     223      return false;
     224    }
     225
     226    // set the model normalization
     227    if (!pmModelSetNorm(&PAR[PM_PAR_I0], source)) {
     228      return false;
     229    }
     230
     231    // set the model position
     232    if (!pmModelSetPosition(&PAR[PM_PAR_XPOS], &PAR[PM_PAR_YPOS], source)) {
     233      return false;
     234    }
     235
     236    // extra parameter
    245237    PAR[PM_PAR_7]    = 1.0;
    246238
     
    315307    float z0 = 0.0;
    316308    float z1 = pow((1.0 / limit), (1.0 / ALPHA));
    317     psAssert (isfinite(z1), "fix this code: z1 should not be nan for %f", PAR[PM_PAR_7]);
     309    psAssert (isfinite(z1), "fix this code: z1 should not be nan for Io = %f, flux = %f, major = %f (%f, %f, %f)",
     310              PAR[PM_PAR_I0], flux, axes.major, PAR[PM_PAR_SXX], PAR[PM_PAR_SXY], PAR[PM_PAR_SYY]);
    318311    if (PAR[PM_PAR_7] < 0.0) z1 *= 2.0;
    319312
  • trunk/psModules/src/objects/models/pmModel_RGAUSS.c

    r29004 r31153  
    203203bool PM_MODEL_GUESS (pmModel *model, pmSource *source)
    204204{
    205     pmMoments *moments = source->moments;
    206     pmPeak    *peak    = source->peak;
    207     psF32     *PAR  = model->params->data.F32;
    208 
    209     psEllipseMoments emoments;
    210     emoments.x2 = moments->Mxx;
    211     emoments.xy = moments->Mxy;
    212     emoments.y2 = moments->Myy;
    213 
    214     // force the axis ratio to be < 20.0
    215     psEllipseAxes axes = psEllipseMomentsToAxes (emoments, 20.0);
    216 
    217     if (!isfinite(axes.major)) return false;
    218     if (!isfinite(axes.minor)) return false;
    219     if (!isfinite(axes.theta)) return false;
    220 
    221     psEllipseShape shape = psEllipseAxesToShape (axes);
    222 
    223     if (!isfinite(shape.sx))  return false;
    224     if (!isfinite(shape.sy))  return false;
    225     if (!isfinite(shape.sxy)) return false;
    226 
     205    psF32 *PAR  = model->params->data.F32;
     206
     207    // sky is set to 0.0
    227208    PAR[PM_PAR_SKY]  = 0.0;
    228     PAR[PM_PAR_I0]   = peak->flux;
    229     PAR[PM_PAR_XPOS] = peak->xf;
    230     PAR[PM_PAR_YPOS] = peak->yf;
    231     PAR[PM_PAR_SXX]  = PS_MAX(0.5, shape.sx);
    232     PAR[PM_PAR_SYY]  = PS_MAX(0.5, shape.sy);
    233     PAR[PM_PAR_SXY]  = shape.sxy;
     209
     210    // set the shape parameters
     211    if (!pmModelSetShape(&PAR[PM_PAR_SXX], &PAR[PM_PAR_SXY], &PAR[PM_PAR_SYY], source->moments)) {
     212      return false;
     213    }
     214
     215    // set the model normalization
     216    if (!pmModelSetNorm(&PAR[PM_PAR_I0], source)) {
     217      return false;
     218    }
     219
     220    // set the model position
     221    if (!pmModelSetPosition(&PAR[PM_PAR_XPOS], &PAR[PM_PAR_YPOS], source)) {
     222      return false;
     223    }
     224
     225    // extra parameter
    234226    PAR[PM_PAR_7]    = 1.5;
    235227
     
    305297    // choose a z value guaranteed to be beyond our limit
    306298    float z0 = pow((1.0 / limit), (1.0 / PAR[PM_PAR_7]));
    307     psAssert (isfinite(z0), "fix this code: z0 should not be nan for %f", PAR[PM_PAR_7]);
     299    psAssert (isfinite(z0), "fix this code: z0 should not be nan for Io = %f, flux = %f, major = %f (%f, %f, %f), par 7 = %f",
     300              PAR[PM_PAR_I0], flux, axes.major, PAR[PM_PAR_SXX], PAR[PM_PAR_SXY], PAR[PM_PAR_SYY], PAR[PM_PAR_7]);
     301
    308302    float z1 = (1.0 / limit);
    309     psAssert (isfinite(z1), "fix this code: z1 should not be nan for %f", PAR[PM_PAR_7]);
     303    psAssert (isfinite(z1), "fix this code: z1 should not be nan for Io = %f, flux = %f, major = %f (%f, %f, %f), par 7 = %f",
     304              PAR[PM_PAR_I0], flux, axes.major, PAR[PM_PAR_SXX], PAR[PM_PAR_SXY], PAR[PM_PAR_SYY], PAR[PM_PAR_7]);
     305
    310306    z1 = PS_MAX (z0, z1);
    311307    z0 = 0.0;
  • trunk/psModules/src/objects/models/pmModel_SERSIC.c

    r29028 r31153  
    222222{
    223223    pmMoments *moments = source->moments;
    224     pmPeak    *peak    = source->peak;
    225224    psF32     *PAR  = model->params->data.F32;
     225
     226    // sky is set to 0.0
     227    PAR[PM_PAR_SKY]  = 0.0;
    226228
    227229    // the other parameters depend on the guess for PAR_7
     
    236238    float Zero  = 1.16 - 0.615 * PAR[PM_PAR_7];
    237239
     240    // Sersic shape is a bit special
    238241    psEllipseMoments emoments;
    239242    emoments.x2 = moments->Mxx;
     
    273276    float Syy = PS_MAX(0.5, shape.sy);
    274277
    275     PAR[PM_PAR_SKY]  = 0.0;
    276     PAR[PM_PAR_I0]   = peak->flux / Io;
    277     PAR[PM_PAR_XPOS] = peak->xf;
    278     PAR[PM_PAR_YPOS] = peak->yf;
    279278    PAR[PM_PAR_SXX]  = Sxx;
    280279    PAR[PM_PAR_SYY]  = Syy;
    281280    PAR[PM_PAR_SXY]  = shape.sxy;
     281
     282    // set the model normalization (adjust for Sersic best guess)
     283    if (!pmModelSetNorm(&PAR[PM_PAR_I0], source)) {
     284      return false;
     285    }
     286    PAR[PM_PAR_I0] /= Io;
     287
     288    // set the model position
     289    if (!pmModelSetPosition(&PAR[PM_PAR_XPOS], &PAR[PM_PAR_YPOS], source)) {
     290      return false;
     291    }
    282292
    283293    return(true);
     
    346356    psF64 radius = axes.major * sqrt (2.0) * pow(zn, 0.5 / PAR[PM_PAR_7]);
    347357
    348     // fprintf (stderr, "sersic model %f %f, n %f, radius: %f, zn: %f, f/Io: %f, major: %f\n", PAR[PM_PAR_XPOS], PAR[PM_PAR_YPOS], PAR[PM_PAR_7], radius, zn, flux/PAR[PM_PAR_I0], axes.major);
    349 
    350     psAssert (isfinite(radius), "fix this code: z should not be nan for %f", PAR[PM_PAR_7]);
     358    psAssert (isfinite(radius), "fix this code: radius should not be nan for Io = %f, flux = %f, major = %f (%f, %f, %f), par 7 = %f",
     359              PAR[PM_PAR_I0], flux, axes.major, PAR[PM_PAR_SXX], PAR[PM_PAR_SXY], PAR[PM_PAR_SYY], PAR[PM_PAR_7]);
    351360    return (radius);
    352361}
Note: See TracChangeset for help on using the changeset viewer.