IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Apr 14, 2006, 11:43:59 AM (20 years ago)
Author:
magnier
Message:

added JPEG and PSF I/O methods to pmFPAfile, added pmSourcePixelWeights

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/rel10_ifa/psModules/src/objects/pmPSF.c

    r6848 r6859  
    66 *  @author EAM, IfA
    77 *
    8  *  @version $Revision: 1.4.4.4 $ $Name: not supported by cvs2svn $
    9  *  @date $Date: 2006-04-13 06:18:46 $
     8 *  @version $Revision: 1.4.4.5 $ $Name: not supported by cvs2svn $
     9 *  @date $Date: 2006-04-14 21:43:59 $
    1010 *
    1111 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    309309    return false;
    310310}
    311 
    312 psMetadata *pmPSFtoMD (psMetadata *metadata, pmPSF *psf)
    313 {
    314 
    315     if (metadata == NULL) {
    316         metadata = psMetadataAlloc ();
    317     }
    318 
    319     char *modelName = pmModelGetType (psf->type);
    320     psMetadataAdd (metadata, PS_LIST_TAIL, "PSF_MODEL_NAME", PS_DATA_STRING, "PSF model name", modelName);
    321 
    322     psMetadataAdd (metadata, PS_LIST_TAIL, "PSF_POISSON_ERRORS", PS_DATA_BOOL, "Poisson errors for fits", psf->poissonErrors);
    323 
    324     int nPar = pmModelParameterCount (psf->type)    ;
    325     psMetadataAdd (metadata, PS_LIST_TAIL, "PSF_MODEL_NPAR", PS_DATA_S32, "PSF model parameter count", nPar);
    326 
    327     for (int i = 0; i < nPar - 4; i++) {
    328         psPolynomial2D *poly = psf->params->data[i];
    329         psPolynomial2DtoMD (metadata, poly, "PSF_PAR%02d", i);
    330     }
    331     psPolynomial4DtoMD (metadata, psf->ApTrend, "APTREND");
    332 
    333     psMetadataAdd (metadata, PS_LIST_TAIL, "PSF_AP_RESID", PS_DATA_F32, "aperture residual", psf->ApResid);
    334     psMetadataAdd (metadata, PS_LIST_TAIL, "PSF_dAP_RESID", PS_DATA_F32, "aperture residual scatter", psf->dApResid);
    335     psMetadataAdd (metadata, PS_LIST_TAIL, "PSF_SKY_BIAS", PS_DATA_F32, "sky bias level", psf->skyBias);
    336 
    337     psMetadataAdd (metadata, PS_LIST_TAIL, "PSF_CHISQ", PS_DATA_F32, "chi-square for fit", psf->chisq);
    338     psMetadataAdd (metadata, PS_LIST_TAIL, "PSF_NSTARS", PS_DATA_S32, "number of stars used to measure PSF", psf->nPSFstars);
    339 
    340     return metadata;
    341 }
    342 
    343 pmPSF *pmPSFfromMD (psMetadata *metadata)
    344 {
    345 
    346     bool status;
    347     char keyword[80];
    348 
    349     char *modelName = psMetadataLookupPtr (&status, metadata, "PSF_MODEL_NAME");
    350     pmModelType type = pmModelSetType (modelName);
    351 
    352     bool poissonErrors = psMetadataLookupPtr (&status, metadata, "PSF_POISSON_ERRORS");
    353     if (!status)
    354         poissonErrors = true;
    355 
    356     pmPSF *psf = pmPSFAlloc (type, poissonErrors);
    357 
    358     int nPar = psMetadataLookupS32 (&status, metadata, "PSF_MODEL_NPAR");
    359     if (nPar != pmModelParameterCount (psf->type))
    360         psAbort ("read PSF" , "mismatch model par count");
    361 
    362     for (int i = 0; i < nPar - 4; i++) {
    363         sprintf (keyword, "PSF_PAR%02d", i);
    364         psMetadata *folder = psMetadataLookupPtr (&status, metadata, keyword);
    365         psPolynomial2D *poly = psPolynomial2DfromMD (folder);
    366         psFree (psf->params->data[i]);
    367         psf->params->data[i] = poly;
    368     }
    369     sprintf (keyword, "APTREND");
    370     psMetadata *folder = psMetadataLookupPtr (&status, metadata, keyword);
    371     psPolynomial4D *poly = psPolynomial4DfromMD (folder);
    372     psFree (psf->ApTrend);
    373     psf->ApTrend = poly;
    374 
    375     psf->ApResid = psMetadataLookupF32 (&status, metadata, "PSF_AP_RESID");
    376     psf->dApResid = psMetadataLookupF32 (&status, metadata, "PSF_dAP_RESID");
    377     psf->skyBias = psMetadataLookupF32 (&status, metadata, "PSF_SKY_BIAS");
    378 
    379     psf->chisq = psMetadataLookupF32 (&status, metadata, "PSF_CHISQ");
    380     psf->nPSFstars = psMetadataLookupS32 (&status, metadata, "PSF_NSTARS");
    381 
    382     psFree (metadata);
    383     return (psf);
    384 }
Note: See TracChangeset for help on using the changeset viewer.