IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Apr 14, 2006, 11:58:44 AM (20 years ago)
Author:
eugene
Message:

renamed config to recipe in lower-level functions, added pixel weights to pmSource, other cleanups

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psphot/src/psphotOutput.c

    r6727 r6862  
    11# include "psphot.h"
     2
     3int psphotSaveImage (psMetadata *header, psImage *image, char *filename) {
     4
     5    psFits *fits = psFitsOpen (filename, "w");
     6    psFitsWriteImage (fits, NULL, image, 0, NULL);
     7    psFitsClose (fits);
     8    return (TRUE);
     9}
     10
     11bool psphotDumpMoments (psMetadata *recipe, psArray *sources) {
     12
     13    bool status;
     14
     15    // optional dump of all rough source data
     16    char *output = psMetadataLookupStr (&status, recipe, "MOMENTS_OUTPUT_FILE");
     17    if (!status) return false;
     18    if (output == NULL) return false;
     19    if (output[0] == 0) return false;
     20
     21    pmMomentsWriteText (sources, output);
     22    return true;
     23}
     24
     25// these values are saved in an output header stub - they are added to either the
     26// PHU header (CMP) or the MEF table header (CMF)
     27psMetadata *psphotDefineHeader (psMetadata *recipe) {
     28
     29    psMetadata *header = psMetadataAlloc ();
     30
     31    // write necessary information to output header
     32    psMetadataItemTransfer (header, recipe, "ZERO_PT");
     33    psMetadataItemTransfer (header, recipe, "PHOTCODE");
     34
     35    psMetadataItemTransfer (header, recipe, "APMIFIT");
     36    psMetadataItemTransfer (header, recipe, "DAPMIFIT");
     37    psMetadataItemTransfer (header, recipe, "NAPMIFIT");
     38    psMetadataItemTransfer (header, recipe, "SKYBIAS");
     39    psMetadataItemTransfer (header, recipe, "SKYSAT");
     40   
     41    // PSF model parameters (shape values for image center)
     42    psMetadataItemTransfer (header, recipe, "NPSFSTAR");
     43    psMetadataItemTransfer (header, recipe, "APLOSS");
     44    psMetadataItemTransfer (header, recipe, "FWHM_X");
     45    psMetadataItemTransfer (header, recipe, "FWHM_Y");
     46    psMetadataItemTransfer (header, recipe, "ANGLE");
     47
     48    // XXX these need to be defined from elsewhere
     49    psMetadataAdd (header, PS_LIST_TAIL, "FSATUR",   PS_DATA_F32 | PS_META_REPLACE, "SATURATION MAG",      0.0);
     50    psMetadataAdd (header, PS_LIST_TAIL, "FLIMIT",   PS_DATA_F32 | PS_META_REPLACE, "COMPLETENESS MAG",    0.0);
     51
     52    // sky background model statistics
     53    psMetadataItemTransfer (header, recipe, "SKY_MEAN");
     54    psMetadataItemTransfer (header, recipe, "SKY_STDV");
     55    psMetadataItemTransfer (header, recipe, "SKY_MIN");
     56    psMetadataItemTransfer (header, recipe, "SKY_MAX");
     57    psMetadataItemTransfer (header, recipe, "SKY_NX");
     58    psMetadataItemTransfer (header, recipe, "SKY_NY");
     59
     60    return header;
     61}
    262
    363# if (0)
     
    66126}
    67127# endif
    68 
    69 int psphotSaveImage (psMetadata *header, psImage *image, char *filename) {
    70 
    71     psFits *fits = psFitsOpen (filename, "w");
    72     psFitsWriteImage (fits, NULL, image, 0, NULL);
    73     psFitsClose (fits);
    74     return (TRUE);
    75 }
    76 
    77 bool psphotDumpMoments (psMetadata *config, psArray *sources) {
    78 
    79     bool status;
    80 
    81     // optional dump of all rough source data
    82     char *output = psMetadataLookupStr (&status, config, "MOMENTS_OUTPUT_FILE");
    83     if (!status) return false;
    84     if (output == NULL) return false;
    85     if (output[0] == 0) return false;
    86 
    87     pmMomentsWriteText (sources, output);
    88     return true;
    89 }
    90 
    91 // these values are saved in an output header stub - they are added to either the
    92 // PHU header (CMP) or the MEF table header (CMF)
    93 psMetadata *psphotDefineHeader (psMetadata *recipe) {
    94 
    95     psMetadata *header = psMetadataAlloc ();
    96 
    97     // write necessary information to output header
    98     psMetadataItemTransfer (header, recipe, "ZERO_PT");
    99     psMetadataItemTransfer (header, recipe, "PHOTCODE");
    100 
    101     psMetadataItemTransfer (header, recipe, "APMIFIT");
    102     psMetadataItemTransfer (header, recipe, "DAPMIFIT");
    103     psMetadataItemTransfer (header, recipe, "NAPMIFIT");
    104     psMetadataItemTransfer (header, recipe, "SKYBIAS");
    105     psMetadataItemTransfer (header, recipe, "SKYSAT");
    106    
    107     psMetadataItemTransfer (header, recipe, "NPSFSTAR");
    108     psMetadataItemTransfer (header, recipe, "APLOSS");
    109 
    110     // XXX these need to be defined from elsewhere
    111     psMetadataAdd (header, PS_LIST_TAIL, "FWHM_X",   PS_DATA_F32 | PS_META_REPLACE, "PSF FWHM X",          0.0);
    112     psMetadataAdd (header, PS_LIST_TAIL, "FWHM_Y",   PS_DATA_F32 | PS_META_REPLACE, "PSF FWHM Y",          0.0);
    113     psMetadataAdd (header, PS_LIST_TAIL, "ANGLE",    PS_DATA_F32 | PS_META_REPLACE, "PSF ANGLE",           0.0);
    114     psMetadataAdd (header, PS_LIST_TAIL, "FSATUR",   PS_DATA_F32 | PS_META_REPLACE, "SATURATION MAG",      0.0);
    115     psMetadataAdd (header, PS_LIST_TAIL, "FLIMIT",   PS_DATA_F32 | PS_META_REPLACE, "COMPLETENESS MAG",    0.0);
    116 
    117     return header;
    118 }
Note: See TracChangeset for help on using the changeset viewer.