Changeset 3407 for trunk/psLib/src/fileUtils/psFits.c
- Timestamp:
- Mar 11, 2005, 10:38:56 AM (21 years ago)
- File:
-
- 1 edited
-
trunk/psLib/src/fileUtils/psFits.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/fileUtils/psFits.c
r3341 r3407 7 7 * @author Robert DeSonia, MHPCC 8 8 * 9 * @version $Revision: 1.2 0$ $Name: not supported by cvs2svn $10 * @date $Date: 2005-0 2-28 23:34:10$9 * @version $Revision: 1.21 $ $Name: not supported by cvs2svn $ 10 * @date $Date: 2005-03-11 20:38:56 $ 11 11 * 12 12 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 98 98 break; 99 99 100 case PS_TYPE_BOOL: 100 101 case PS_TYPE_S8: 101 102 bitpix = BYTE_IMG; … … 1450 1451 psError(PS_ERR_BAD_PARAMETER_NULL, true, 1451 1452 PS_ERRORTEXT_psFits_NULL); 1452 return NULL;1453 return false; 1453 1454 } 1454 1455 … … 1619 1620 return true; 1620 1621 } 1622 1623 bool psFitsUpdateTable(psFits* fits, 1624 psMetadata* data, 1625 int row) 1626 { 1627 int status = 0; 1628 1629 if (fits == NULL) { 1630 psError(PS_ERR_BAD_PARAMETER_NULL, true, 1631 PS_ERRORTEXT_psFits_NULL); 1632 return false; 1633 } 1634 1635 if (data == NULL) { 1636 psError(PS_ERR_BAD_PARAMETER_NULL, true, 1637 PS_ERRORTEXT_psFits_IMAGE_NULL); 1638 return false; 1639 } 1640 1641 1642 // check to see if we even are positioned on a table HDU 1643 int hdutype; 1644 if ( fits_get_hdu_type(fits->p_fd,&hdutype, &status) != 0) { 1645 char fitsErr[MAX_STRING_LENGTH]; 1646 (void)fits_get_errstatus(status, fitsErr); 1647 psError(PS_ERR_IO, true, 1648 PS_ERRORTEXT_psFits_GET_HDU_TYPE_FAILED, 1649 fitsErr); 1650 return false; 1651 } 1652 if (hdutype != ASCII_TBL && hdutype != BINARY_TBL) { 1653 psError(PS_ERR_IO, true, 1654 PS_ERRORTEXT_psFits_NOT_TABLE_TYPE); 1655 return false; 1656 } 1657 1658 1659 psMetadataIterator* iter = psMetadataIteratorAlloc(data,PS_LIST_HEAD,NULL); 1660 1661 psMetadataItem* item; 1662 1663 while ( (item=psMetadataGetAndIncrement(iter)) != NULL) { 1664 if (PS_META_IS_PRIMITIVE(item->type)) { 1665 // operating on primitive data type, i.e., not a complex object 1666 int colnum = 0; 1667 1668 if ( fits_get_colnum(fits->p_fd, CASESEN, item->name, &colnum, &status) == 0) { 1669 // cooresponding column found in table 1670 int dataType = 0; 1671 convertPsTypeToFits(item->type, NULL, NULL, &dataType); 1672 1673 if (fits_write_col(fits->p_fd, dataType, colnum, row, 0,1,&item->data,&status) != 0) { 1674 char fitsErr[MAX_STRING_LENGTH]; 1675 (void)fits_get_errstatus(status, fitsErr); 1676 psError(PS_ERR_IO, true, 1677 PS_ERRORTEXT_psFits_WRITE_FAILED, 1678 fits->filename, fitsErr); 1679 return false; 1680 } 1681 } 1682 } 1683 } 1684 1685 psFree(iter); 1686 1687 return true; 1688 }
Note:
See TracChangeset
for help on using the changeset viewer.
