- Timestamp:
- Mar 29, 2006, 10:55:42 AM (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/rel10_ifa/psModules/src/objects/pmFPAviewWriteObjects.c
r6712 r6726 3 3 * @author EAM, IfA; GLG, MHPCC 4 4 * 5 * @version $Revision: 1.1.2. 4$ $Name: not supported by cvs2svn $6 * @date $Date: 2006-03-2 8 02:14:56$5 * @version $Revision: 1.1.2.5 $ $Name: not supported by cvs2svn $ 6 * @date $Date: 2006-03-29 20:55:42 $ 7 7 * 8 8 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 14 14 #include <string.h> 15 15 #include "pslib.h" 16 #include "psAdditionals.h" 16 17 #include "pmHDU.h" 17 18 #include "pmFPA.h" … … 27 28 #include "pmFPAviewObjectsIO.h" 28 29 29 bool psFitsWriteHeaderNotImage (psFits *fits, psMetadata *header)30 {31 32 int status = 0;33 char fitsErr[1024];34 35 psMetadataItem *mdi = NULL;36 mdi = psMetadataLookup (header, "NAXIS");37 if (mdi != NULL) {38 mdi->data.S32 = 0;39 mdi->type = PS_DATA_S32;40 }41 42 fits_create_img (fits->fd, SHORT_IMG, 0, NULL, &status);43 44 if (status != 0) {45 fits_get_errstatus (status, fitsErr);46 psError (PS_ERR_IO, true, PS_ERRORTEXT_psFits_WRITE_FAILED, fitsErr);47 exit (2);48 }49 50 psFitsWriteHeader (header, fits);51 52 return true;53 }54 55 30 // Given a FITS file pointer, read the table of object data 56 bool pmFPAviewWriteObjects ( pmFPAview *view, pmFPAfile *file)31 bool pmFPAviewWriteObjects (const pmFPAview *view, pmFPAfile *file) 57 32 { 58 33 … … 94 69 95 70 // read in all chip-level Objects files for this FPA 96 bool pmFPAWriteObjects (pmFPA *fpa, pmFPAview *view, pmFPAfile *file)71 bool pmFPAWriteObjects (pmFPA *fpa, const pmFPAview *view, pmFPAfile *file) 97 72 { 98 73 … … 106 81 107 82 // read in all cell-level Objects files for this chip 108 bool pmChipWriteObjects (pmChip *chip, pmFPAview *view, pmFPAfile *file)83 bool pmChipWriteObjects (pmChip *chip, const pmFPAview *view, pmFPAfile *file) 109 84 { 110 85 … … 118 93 119 94 // read in all readout-level Objects files for this cell 120 bool pmCellWriteObjects (pmCell *cell, pmFPAview *view, pmFPAfile *file)95 bool pmCellWriteObjects (pmCell *cell, const pmFPAview *view, pmFPAfile *file) 121 96 { 122 97 … … 130 105 131 106 // read in all readout-level Objects files for this cell 132 bool pmReadoutWriteObjects (pmReadout *readout, pmFPAview *view, pmFPAfile *file)107 bool pmReadoutWriteObjects (pmReadout *readout, const pmFPAview *view, pmFPAfile *file) 133 108 { 134 109 … … 139 114 pmHDU *hdu; 140 115 pmHDU *phu; 116 psMetadata *updates; 117 psMetadata *outhead; 141 118 142 119 psArray *sources = psMetadataLookupPtr (&status, readout->analysis, "PSPHOT.SOURCES"); 143 return true;144 120 145 121 switch (file->type) { … … 166 142 hdu = pmFPAviewThisHDU (view, file->fpa); 167 143 filename = pmFPAfileNameFromRule (file->filerule, file, view); 168 pmSourcesWriteCMP (sources, filename, hdu->header); 144 145 // copy the header to an output header, add the output header data 146 outhead = psMetadataCopy (NULL, hdu->header); 147 148 // check/fix first line (must be SIMPLE = F) 149 psMetadataItem *item = psMetadataGet (outhead, PS_LIST_HEAD); 150 if (strcmp (item->name, "SIMPLE") && strcmp (item->name, "XTENSION")) { 151 psErrorStackPrint(stderr, "invalid header: first line is neither SIMPLE nor XTENSION\n"); 152 exit(EXIT_FAILURE); 153 } 154 if (!strcmp (item->name, "XTENSION")) { 155 psMetadataRemoveIndex (outhead, PS_LIST_HEAD); 156 } 157 psMetadataAddBool (outhead, PS_LIST_HEAD, "SIMPLE", PS_META_REPLACE, "CMP file, not simple", false); 158 159 // copy over the entries saved in the 160 updates = psMetadataLookupPtr (&status, readout->analysis, "PSPHOT.HEADER"); 161 psMetadataCopy (outhead, updates); 162 163 pmSourcesWriteCMP (sources, filename, outhead); 164 psFree (outhead); 169 165 psFree (filename); 170 166 break; … … 184 180 185 181 // CMF always has extensions 186 psMetadataAdd (phu->header, PS_LIST_TAIL, "EXTEND", PS_DATA_BOOL | PS_META_REPLACE, "this file has extensions", true); 187 psFitsWriteHeaderNotImage (file->fits, phu->header); 182 outhead = psMetadataCopy (NULL, phu->header); 183 psMetadataAdd (outhead, PS_LIST_TAIL, "EXTEND", PS_DATA_BOOL | PS_META_REPLACE, "this file has extensions", true); 184 psFitsWriteHeaderNotImage (file->fits, outhead); 188 185 file->phu = phu->header; 189 186 psTrace ("pmFPAfile", 5, "wrote phu %s (type: %d)\n", file->filename, file->type); 190 191 file->phu = phu->header; 187 psFree (outhead); 192 188 } 193 189 … … 196 192 // determine name for header extension 197 193 headname = pmFPAfileNameFromRule (file->extxtra, file, view); 198 psMetadataAddStr (hdu->header, PS_LIST_TAIL, "EXTNAME", PS_META_REPLACE, "extension name", headname); 199 psFitsWriteHeaderNotImage (file->fits, hdu->header); 194 outhead = psMetadataCopy (NULL, hdu->header); 195 psMetadataAddStr (outhead, PS_LIST_TAIL, "EXTNAME", PS_META_REPLACE, "extension name", headname); 196 psFitsWriteHeaderNotImage (file->fits, outhead); 200 197 psTrace ("pmFPAfile", 5, "wrote ext head %s (type: %d)\n", file->filename, file->type); 201 198 file->header = hdu->header; 199 psFree (outhead); 202 200 psFree (headname); 203 201 } … … 205 203 // write this table to disk 206 204 dataname = pmFPAfileNameFromRule (file->extrule, file, view); 207 pmSourcesWriteCMF (file->fits, sources, hdu->header, dataname); 205 updates = psMetadataLookupPtr (&status, readout->analysis, "PSPHOT.HEADER"); 206 pmSourcesWriteCMF (file->fits, sources, updates, dataname); 207 psTrace ("pmFPAfile", 5, "wrote ext data %s (type: %d)\n", file->filename, file->type); 208 208 psFree (dataname); 209 209 break;
Note:
See TracChangeset
for help on using the changeset viewer.
