IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Mar 8, 2006, 5:14:23 PM (20 years ago)
Author:
magnier
Message:

major rework of objects code

File:
1 edited

Legend:

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

    r6545 r6556  
    1 # include "pmFPAviewWriteObjects.h"
     1/** @file  pmSourcePhotometry.c
     2 *
     3 *  @author EAM, IfA; GLG, MHPCC
     4 *
     5 *  @version $Revision: 1.1.2.2 $ $Name: not supported by cvs2svn $
     6 *  @date $Date: 2006-03-09 03:14:23 $
     7 *
     8 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     9 *
     10 */
     11
     12#include <stdio.h>
     13#include <math.h>
     14#include <string.h>
     15#include "pslib.h"
     16#include "pmHDU.h"
     17#include "pmFPA.h"
     18#include "pmFPAview.h"
     19#include "pmFPAfile.h"
     20
     21#include "pmPeaks.h"
     22#include "pmMoments.h"
     23#include "pmModel.h"
     24#include "pmSource.h"
     25
     26#include "pmSourceIO.h"
     27#include "pmFPAviewObjectsIO.h"
    228
    329// Given a FITS file pointer, read the table of object data
     
    4268
    4369// read in all chip-level Objects files for this FPA
    44 pmFPAWriteObjects (pmFPA *fpa, pmFPAview *view, pmFPAfile *file)
     70bool pmFPAWriteObjects (pmFPA *fpa, pmFPAview *view, pmFPAfile *file)
    4571{
    4672
    4773    for (int i = 0; i < fpa->chips->n; i++) {
    4874
    49         pmChip *chip = fpa->data[i];
     75        pmChip *chip = fpa->chips->data[i];
    5076        pmChipWriteObjects (chip, view, file);
    5177    }
     
    5480
    5581// read in all cell-level Objects files for this chip
    56 pmChipWriteObjects (pmChip *chip, pmFPAview *view, pmFPAfile *file)
     82bool pmChipWriteObjects (pmChip *chip, pmFPAview *view, pmFPAfile *file)
    5783{
    5884
    5985    for (int i = 0; i < chip->cells->n; i++) {
    6086
    61         pmCell *cell = chip->data[i];
     87        pmCell *cell = chip->cells->data[i];
    6288        pmCellWriteObjects (cell, view, file);
    6389    }
     
    6692
    6793// read in all readout-level Objects files for this cell
    68 pmCellWriteObjects (pmCell *cell, pmFPAview *view, pmFPAfile *file)
     94bool pmCellWriteObjects (pmCell *cell, pmFPAview *view, pmFPAfile *file)
    6995{
    7096
    7197    for (int i = 0; i < cell->readouts->n; i++) {
    7298
    73         pmReadout *readout = cell->data[i];
     99        pmReadout *readout = cell->readouts->data[i];
    74100        pmReadoutWriteObjects (readout, view, file);
    75101    }
     
    78104
    79105// read in all readout-level Objects files for this cell
    80 pmReadoutWriteObjects (pmReadout *readout, pmFPAview *view, pmFPAfile *file)
     106bool pmReadoutWriteObjects (pmReadout *readout, pmFPAview *view, pmFPAfile *file)
    81107{
     108
     109    bool status;
     110    char *filename;
     111    char *dataname;
     112    char *headname;
     113    pmHDU *hdu;
    82114
    83115    psArray *sources = psMetadataLookupPtr (&status, readout->analysis, "PSPHOT.SOURCES");
     
    85117    switch (file->type) {
    86118    case PM_FPA_FILE_OBJ:
    87         filename = pmConfigNameFromRule (file->filerule, view);
    88         pmSourcesWriteOBJ (filename, sources);
     119        filename = pmFPAviewNameFromRule (file->filerule, view);
     120        pmSourcesWriteOBJ (sources, filename);
    89121        break;
    90122
    91123    case PM_FPA_FILE_SX:
    92         filename = pmConfigNameFromRule (file->filerule, view);
    93         pmSourcesWriteSX (filename, sources);
     124        filename = pmFPAviewNameFromRule (file->filerule, view);
     125        pmSourcesWriteSX (sources, filename);
    94126        break;
    95127
    96128    case PM_FPA_FILE_CMP:
    97129        // a SPLIT format : only one header and object table per file
    98         pmHDU *hdu = pmFPAviewThisHDU (view);
    99         filename = pmConfigNameFromRule (file->filerule, view);
    100         pmSourcesWriteCMP (filename, sources, hdu->header);
     130        hdu = pmFPAviewThisHDU (view);
     131        filename = pmFPAviewNameFromRule (file->filerule, view);
     132        pmSourcesWriteCMP (sources, filename, hdu->header);
    101133        break;
    102134
    103135    case PM_FPA_FILE_CMF:
    104136        // write header, if not yet written?
    105         pmHDU *hdu = pmFPAviewThisHDU (view);
     137        hdu = pmFPAviewThisHDU (view);
    106138
    107139        // XXX is this needed? is it automatically added?
     
    111143        if (hdu->header) {
    112144            psMetadataItem *mdi = NULL;
    113             headname = pmConfigNameFromRule (file->extxtra, view);
     145            headname = pmFPAviewNameFromRule (file->extxtra, view);
    114146
    115147            // set NAXIS to 0 (we don't write out the data array)
     
    119151            mdi->type = PS_DATA_S32;
    120152
    121             psFitsWriteHeader (file->fits, hdu->header, headname);
     153            if (strcasecmp (headname, "PHU")) {
     154                psMetadataAdd (hdu->header, PS_LIST_HEAD, "EXTNAME", PS_DATA_STRING, "extension name", headname);
     155            }
     156            psFitsWriteHeader (hdu->header, file->fits);
    122157        }
    123         dataname = pmConfigNameFromRule (file->extrule, view);
     158        dataname = pmFPAviewNameFromRule (file->extrule, view);
    124159        pmSourcesWriteCMF (file->fits, sources, hdu->header, dataname);
     160        break;
     161
     162    default:
     163        fprintf (stderr, "warning: type mismatch\n");
    125164        break;
    126165    }
Note: See TracChangeset for help on using the changeset viewer.