Changeset 7011 for trunk/psModules/src/objects/pmSourceIO.c
- Timestamp:
- Apr 30, 2006, 12:08:02 PM (20 years ago)
- File:
-
- 1 edited
-
trunk/psModules/src/objects/pmSourceIO.c (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/objects/pmSourceIO.c
r6960 r7011 3 3 * @author EAM, IfA 4 4 * 5 * @version $Revision: 1. 3$ $Name: not supported by cvs2svn $6 * @date $Date: 2006-04- 23 01:07:51$5 * @version $Revision: 1.4 $ $Name: not supported by cvs2svn $ 6 * @date $Date: 2006-04-30 22:08:02 $ 7 7 * 8 8 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 290 290 bool pmFPAReadObjects (pmFPA *fpa, const pmFPAview *view, pmFPAfile *file) 291 291 { 292 293 292 for (int i = 0; i < fpa->chips->n; i++) { 294 295 293 pmChip *chip = fpa->chips->data[i]; 296 294 pmChipReadObjects (chip, view, file); … … 302 300 bool pmChipReadObjects (pmChip *chip, const pmFPAview *view, pmFPAfile *file) 303 301 { 304 305 302 for (int i = 0; i < chip->cells->n; i++) { 306 307 303 pmCell *cell = chip->cells->data[i]; 308 304 pmCellReadObjects (cell, view, file); … … 314 310 bool pmCellReadObjects (pmCell *cell, const pmFPAview *view, pmFPAfile *file) 315 311 { 316 312 // determine the number of readouts: 313 switch (file->type) { 314 case PM_FPA_FILE_CMP: { 315 pmReadout *readout; 316 readout = pmReadoutAlloc (cell); 317 psFree (readout); 318 break; 319 } 320 default: 321 psAbort ("pmSourceIO", "n readouts is not yet defined\n"); 322 } 317 323 for (int i = 0; i < cell->readouts->n; i++) { 318 319 324 pmReadout *readout = cell->readouts->data[i]; 320 325 pmReadoutReadObjects (readout, view, file); 326 cell->data_exists = true; 321 327 } 322 328 return true; … … 345 351 // read in header, if not yet loaded 346 352 hdu = pmFPAviewThisHDU (view, file->fpa); 347 348 char *filename = pmFPAfileNameFromRule (file->filerule, file, view); 349 file->fits = psFitsOpen (filename, "r"); 353 if (file->filename) 354 psFree (file->filename); 355 file->filename = pmFPAfileNameFromRule (file->filerule, file, view); 356 357 // indirect filenames 358 if (!strcasecmp (file->filename, "@FILES")) { 359 psFree (file->filename); 360 char *extra = pmFPAfileNameFromRule (file->filextra, file, view); 361 file->filename = psMetadataLookupStr (&status, file->names, extra); 362 psFree (extra); 363 if (file->filename == NULL) 364 return false; 365 // psMetadataLookupStr just returns a view, file->filename must be protected 366 psMemIncrRefCounter (file->filename); 367 } 368 file->fits = psFitsOpen (file->filename, "r"); 369 if (hdu->header != NULL) { 370 psFree (hdu->header); 371 } 350 372 hdu->header = psFitsReadHeader (NULL, file->fits); 351 373 psFitsClose (file->fits); 352 sources = pmSourcesReadCMP (filename, hdu->header); 353 psFree (filename); 374 file->fits = NULL; 375 376 sources = pmSourcesReadCMP (file->filename, hdu->header); 354 377 break; 355 378 … … 366 389 char *dataname = pmFPAfileNameFromRule (file->extrule, file, view); 367 390 psFitsMoveExtName (file->fits, dataname); 368 sources = pmSourcesReadCMF (file->fits, hdu->header);391 sources = pmSourcesReadCMF (file->fits, hdu->header); 369 392 psFree (dataname); 370 393 break; … … 374 397 break; 375 398 } 399 readout->data_exists = true; 376 400 status = psMetadataAdd (readout->analysis, PS_LIST_TAIL, "PSPHOT.SOURCES", PS_DATA_ARRAY, "psphot sources", sources); 377 return true; 378 } 379 380 401 psFree (sources); 402 return true; 403 } 404 405
Note:
See TracChangeset
for help on using the changeset viewer.
