Changeset 5168 for trunk/psLib/src/fits
- Timestamp:
- Sep 28, 2005, 10:02:49 AM (21 years ago)
- File:
-
- 1 edited
-
trunk/psLib/src/fits/psFits.c (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/fits/psFits.c
r5164 r5168 1 /** @file psFits.c r1 /** @file psFits.c 2 2 * 3 3 * @brief Contains Fits I/O routines … … 7 7 * @author Robert DeSonia, MHPCC 8 8 * 9 * @version $Revision: 1. 49$ $Name: not supported by cvs2svn $10 * @date $Date: 2005-09-28 02:37:58$9 * @version $Revision: 1.50 $ $Name: not supported by cvs2svn $ 10 * @date $Date: 2005-09-28 20:02:46 $ 11 11 * 12 12 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 682 682 psMetadataAddMetadata(out, PS_LIST_HEAD, name, 0, "FITS Header", 683 683 header); 684 } else { // XXX: is this a warning or error? 685 psLogMsg(__func__, PS_LOG_WARN, 686 "Failed to read HDU#%d header data.", 687 lcv); 684 } else { 685 psWarning("Failed to read HDU#%d header data.", 686 lcv); 688 687 } 689 688 … … 1249 1248 #define READ_TABLE_ROW_CASE(FITSTYPE, NATIVETYPE, TYPE) \ 1250 1249 case FITSTYPE: { \ 1251 NATIVETYPE value = 0; \ 1252 int anynul = 0; \ 1253 fits_read_col(fits->fd, FITSTYPE, col,row+1, \ 1254 1, 1, NULL, &value, &anynul, &status); \ 1255 psTrace(".psFits.psFitsReadTableRow",5,"Column #%i, '%s', is type %i, repeat %i, Value = %g\n", \ 1256 col, name, typecode, repeat, (double)value); \ 1257 psMetadataAdd(data,PS_LIST_TAIL, name, \ 1258 PS_DATA_##TYPE, \ 1259 "", (ps##TYPE)value); \ 1250 if (repeat == 1) { \ 1251 NATIVETYPE value; \ 1252 int anynul = 0; \ 1253 fits_read_col(fits->fd, FITSTYPE, col,row+1, \ 1254 1, 1, NULL, &value, &anynul, &status); \ 1255 psTrace(".psFits.psFitsReadTableRow",5,"Column #%i, '%s', is type %i, repeat %i, Value = %g\n", \ 1256 col, name, typecode, repeat, (double)value); \ 1257 psMetadataAdd(data,PS_LIST_TAIL, name, \ 1258 PS_DATA_##TYPE, \ 1259 "", (ps##TYPE)value); \ 1260 } else { \ 1261 psVector* value = psVectorAlloc(repeat,PS_DATA_##TYPE); \ 1262 int anynul = 0; \ 1263 fits_read_col(fits->fd, FITSTYPE, col,row+1, \ 1264 1, repeat, NULL, value->data.U8, &anynul, &status); \ 1265 psMetadataAdd(data,PS_LIST_TAIL, name, \ 1266 PS_DATA_VECTOR, \ 1267 "", value); \ 1268 psFree(value); \ 1269 } \ 1260 1270 break; \ 1261 1271 } … … 1285 1295 } 1286 1296 default: 1297 psWarning("Data type (%d) not supportted for column %d", 1298 typecode, col); 1299 1287 1300 psTrace("psFits.psFitsReadTableRow", 2, 1288 1301 "Column %d or row %d was of a non primitive type, %d", … … 1584 1597 columns->data[n] = psMemIncrRefCounter(item); 1585 1598 } 1599 } else { 1600 // unsupported type -- treating as an error 1601 psError(PS_ERR_BAD_PARAMETER_TYPE, true, 1602 "Unsupported data type (%d) for Metadata Item '%s' in row %d.", 1603 item->type, item->name, row); 1604 psFree(iter); 1605 psFree(columns); 1606 return false; 1586 1607 } 1587 1608 } … … 1591 1612 1592 1613 if (columns->n == 0) { // no table columns found 1593 // XXX: Error? 1614 psError(PS_ERR_BAD_PARAMETER_SIZE, true, 1615 "Did not find any column data to write to a table."); 1616 psFree(columns); 1594 1617 return false; 1595 1618 } … … 1599 1622 psArray* columnTypes = psArrayAlloc(columns->n); 1600 1623 for (int n=0; n < columns->n; n++) { 1601 char* fitsType;1602 1624 columnNames->data[n] = psMemIncrRefCounter(((psMetadataItem*)columns->data[n])->name); 1603 1625 if ( ! getMetadataTForm((psMetadataItem*)columns->data[n], 1604 &fitsType,1) ) { 1605 // XXX: error message 1626 (char**)&(columnTypes->data[n]),1) ) { 1627 psError(PS_ERR_UNKNOWN, true, 1628 "Failed to determine the FITS data type of '%s' (type=%d).", 1629 columnNames->data[n], 1630 ((psMetadataItem*)columns->data[n])->type); 1631 psFree(columns); 1632 psFree(columnNames); 1633 psFree(columnTypes); 1606 1634 return false; 1607 1635 } 1608 columnTypes->data[n] = fitsType;1609 1636 } 1610 1637
Note:
See TracChangeset
for help on using the changeset viewer.
