IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 34271


Ignore:
Timestamp:
Aug 1, 2012, 2:32:05 PM (14 years ago)
Author:
eugene
Message:

do not raise an error if we cannot find the XRAD, XFIT, XSRC extensions; do not attempt to tranform nan ellipses; plug possible leak

Location:
trunk/psModules/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/psModules/src/astrom/pmAstrometryWCS.c

    r32808 r34271  
    565565    // free an existing toFPA structure
    566566    psFree (chip->toFPA);
     567    assert (chip->toFPA == NULL);
    567568    chip->toFPA = toFPA;
    568569
     
    571572
    572573    psFree (chip->fromFPA);
     574    assert (chip->fromFPA == NULL);
    573575    chip->fromFPA = psPlaneTransformInvert(NULL, chip->toFPA, *region, 50);
    574576    psFree (region);
     
    707709        psError(PS_ERR_UNKNOWN, false, "Unable to solve for TPA center.");
    708710        psFree (toTPA);
     711        psFree (tpa1);
    709712        psFree (wcs);
    710713        return NULL;
  • trunk/psModules/src/objects/pmSourceIO.c

    r34270 r34271  
    12261226static bool pmReadoutReadXSRC(pmFPAfile *file, char *exttype, psMetadata *hduHeader, psString xsrcname, psArray *sources, long *sourceIndex)
    12271227{
    1228     if (!psFitsMoveExtName (file->fits, xsrcname)) {
     1228    if (!psFitsMoveExtNameClean (file->fits, xsrcname)) {
    12291229        psWarning ("cannot find xsrc extension %s in %s, skipping", xsrcname, file->filename);
    12301230        return false;
     
    12621262static bool pmReadoutReadXFIT(pmFPAfile *file, char *exttype, psMetadata *hduHeader, psString extname, psArray *sources, long *sourceIndex)
    12631263{
    1264     if (!psFitsMoveExtName (file->fits, extname)) {
     1264    if (!psFitsMoveExtNameClean (file->fits, extname)) {
    12651265        psWarning ("cannot find xfit extension %s in %s, skipping", extname, file->filename);
    12661266        return false;
     
    12971297static bool pmReadoutReadXRAD(pmFPAfile *file, pmReadout *readout, char *exttype, psMetadata *hduHeader, psString extname, psArray *sources, long *sourceIndex)
    12981298{
    1299     if (!psFitsMoveExtName (file->fits, extname)) {
     1299    if (!psFitsMoveExtNameClean (file->fits, extname)) {
    13001300        psWarning ("cannot find xrad extension %s in %s, skipping", extname, file->filename);
    13011301        return false;
  • trunk/psModules/src/objects/pmSourceIO_CMF.c.in

    r34259 r34271  
    703703    psMetadata *row;
    704704    psF32 *PAR, *dPAR;
    705     psEllipseAxes axes;
    706705    psF32 xPos, yPos;
    707706    psF32 xErr, yErr;
     
    766765            xErr = dPAR[PM_PAR_XPOS];
    767766            yErr = dPAR[PM_PAR_YPOS];
    768 
    769             axes = pmPSF_ModelToAxes (PAR, 20.0, model->type);
    770767
    771768            float kronFlux = source->moments ? source->moments->KronFlux : NAN;
     
    805802                psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_THETA_ERR",    0, "EXT orientation angle (error)",           dPAR[PM_PAR_THETA]);
    806803            } else {
    807                 psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_WIDTH_MAJ",    0, "EXT width (major axis), length for trail", axes.major);
    808                 psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_WIDTH_MIN",    0, "EXT width (minor axis), sigma for trail",  axes.minor);
    809                 psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_THETA",        0, "EXT orientation angle",                    axes.theta);
    810                 psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_WIDTH_MAJ_ERR",0, "EXT width error (major axis)",            dPAR[PM_PAR_LENGTH]);
    811                 psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_WIDTH_MIN_ERR",0, "EXT width error (minor axis)",            dPAR[PM_PAR_SIGMA]);
    812                 psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_THETA_ERR",    0, "EXT orientation angle (error)",           dPAR[PM_PAR_THETA]);
     804                if (!isfinite(PAR[PM_PAR_SXX]) || !isfinite(PAR[PM_PAR_SYY])  || !isfinite(PAR[PM_PAR_SXY])) {
     805                    psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_WIDTH_MAJ",     0, "EXT width (SXX, isnan)", PAR[PM_PAR_SXX]);
     806                    psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_WIDTH_MIN",     0, "EXT width (SYY, isnan)", PAR[PM_PAR_SYY]);
     807                    psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_THETA",         0, "EXT angle (SXY, isnan)", PAR[PM_PAR_SXY]);
     808                    psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_WIDTH_MAJ_ERR", 0, "EXT width err (SXX, isnan)", dPAR[PM_PAR_SXX]);
     809                    psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_WIDTH_MIN_ERR", 0, "EXT width err (SYY, isnan)", dPAR[PM_PAR_SYY]);
     810                    psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_THETA_ERR",     0, "EXT angle err (SXY, isnan)", dPAR[PM_PAR_SXY]);
     811                } else {
     812                    psEllipseAxes axes = pmPSF_ModelToAxes (PAR, 20.0, model->type);
     813                    psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_WIDTH_MAJ",    0, "EXT width (major axis), length for trail", axes.major);
     814                    psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_WIDTH_MIN",    0, "EXT width (minor axis), sigma for trail",  axes.minor);
     815                    psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_THETA",        0, "EXT orientation angle",                    axes.theta);
     816                    psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_WIDTH_MAJ_ERR",0, "EXT width error (major axis)",            dPAR[PM_PAR_SXX]);
     817                    psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_WIDTH_MIN_ERR",0, "EXT width error (minor axis)",            dPAR[PM_PAR_SYY]);
     818                    psMetadataAddF32 (row, PS_LIST_TAIL, "EXT_THETA_ERR",    0, "EXT orientation angle (error)",           dPAR[PM_PAR_SXY]);
     819                }
    813820            }
    814821
Note: See TracChangeset for help on using the changeset viewer.