- Timestamp:
- Mar 27, 2006, 4:14:56 PM (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/rel10_ifa/psModules/src/objects/pmFPAviewWriteObjects.c
r6573 r6712 3 3 * @author EAM, IfA; GLG, MHPCC 4 4 * 5 * @version $Revision: 1.1.2. 3$ $Name: not supported by cvs2svn $6 * @date $Date: 2006-03- 14 02:21:07$5 * @version $Revision: 1.1.2.4 $ $Name: not supported by cvs2svn $ 6 * @date $Date: 2006-03-28 02:14:56 $ 7 7 * 8 8 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 27 27 #include "pmFPAviewObjectsIO.h" 28 28 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 29 55 // Given a FITS file pointer, read the table of object data 30 56 bool pmFPAviewWriteObjects (pmFPAview *view, pmFPAfile *file) 31 57 { 32 58 33 pmFPA *fpa = view->fpa;59 pmFPA *fpa = file->fpa; 34 60 35 61 if (view->chip == -1) { … … 112 138 char *headname; 113 139 pmHDU *hdu; 140 pmHDU *phu; 114 141 115 142 psArray *sources = psMetadataLookupPtr (&status, readout->analysis, "PSPHOT.SOURCES"); 143 return true; 116 144 117 145 switch (file->type) { 146 case PM_FPA_FILE_RAW: 147 filename = pmFPAfileNameFromRule (file->filerule, file, view); 148 pmSourcesWriteRAW (sources, filename); 149 psFree (filename); 150 break; 151 118 152 case PM_FPA_FILE_OBJ: 119 filename = pmFPA viewNameFromRule (file->filerule, view, file->fpa);153 filename = pmFPAfileNameFromRule (file->filerule, file, view); 120 154 pmSourcesWriteOBJ (sources, filename); 155 psFree (filename); 121 156 break; 122 157 123 158 case PM_FPA_FILE_SX: 124 filename = pmFPA viewNameFromRule (file->filerule, view, file->fpa);159 filename = pmFPAfileNameFromRule (file->filerule, file, view); 125 160 pmSourcesWriteSX (sources, filename); 161 psFree (filename); 126 162 break; 127 163 … … 129 165 // a SPLIT format : only one header and object table per file 130 166 hdu = pmFPAviewThisHDU (view, file->fpa); 131 filename = pmFPA viewNameFromRule (file->filerule, view, file->fpa);167 filename = pmFPAfileNameFromRule (file->filerule, file, view); 132 168 pmSourcesWriteCMP (sources, filename, hdu->header); 169 psFree (filename); 133 170 break; 134 171 135 172 case PM_FPA_FILE_CMF: 136 // write header, if not yet written? 173 // write a PHU? 174 // write a header? 175 // write the data 176 177 // get the current header 137 178 hdu = pmFPAviewThisHDU (view, file->fpa); 138 179 139 // XXX is this needed? is it automatically added? 140 // psMetadataAdd (header, PS_LIST_TAIL, "EXTEND", PS_DATA_BOOL | PS_META_REPLACE, "this file has extensions", true); 141 142 // I need a test to see if the Cell header has been written out 143 if (hdu->header) { 144 psMetadataItem *mdi = NULL; 145 headname = pmFPAviewNameFromRule (file->extxtra, view, file->fpa); 146 147 // set NAXIS to 0 (we don't write out the data array) 148 // XXX part of the header cleanup? 149 mdi = psMetadataLookup (hdu->header, "NAXIS"); 150 mdi->data.S32 = 0; 151 mdi->type = PS_DATA_S32; 152 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); 180 // if file does not yet have a PHU, write it to disk 181 if (file->phu == NULL) { 182 // get the corresponding phu 183 phu = pmFPAviewThisPHU (view, file->fpa); 184 185 // 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); 188 file->phu = phu->header; 189 psTrace ("pmFPAfile", 5, "wrote phu %s (type: %d)\n", file->filename, file->type); 190 191 file->phu = phu->header; 157 192 } 158 dataname = pmFPAviewNameFromRule (file->extrule, view, file->fpa); 193 194 // this this header block is new, write it to disk, 195 if (hdu->header != file->header) { 196 // determine name for header extension 197 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); 200 psTrace ("pmFPAfile", 5, "wrote ext head %s (type: %d)\n", file->filename, file->type); 201 file->header = hdu->header; 202 psFree (headname); 203 } 204 205 // write this table to disk 206 dataname = pmFPAfileNameFromRule (file->extrule, file, view); 159 207 pmSourcesWriteCMF (file->fits, sources, hdu->header, dataname); 208 psFree (dataname); 160 209 break; 161 210
Note:
See TracChangeset
for help on using the changeset viewer.
