Changeset 5136 for trunk/psLib/src/fits/psFits.c
- Timestamp:
- Sep 26, 2005, 11:13:36 AM (21 years ago)
- File:
-
- 1 edited
-
trunk/psLib/src/fits/psFits.c (modified) (24 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/fits/psFits.c
r5099 r5136 1 /** @file psFits.c 1 /** @file psFits.cr 2 2 * 3 3 * @brief Contains Fits I/O routines … … 7 7 * @author Robert DeSonia, MHPCC 8 8 * 9 * @version $Revision: 1.4 5$ $Name: not supported by cvs2svn $10 * @date $Date: 2005-09-2 2 23:19:38$9 * @version $Revision: 1.46 $ $Name: not supported by cvs2svn $ 10 * @date $Date: 2005-09-26 21:13:22 $ 11 11 * 12 12 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 156 156 } 157 157 158 static bool convertMetadataTypeToBinaryTForm(ps MetadataType type, char** fitsType)158 static bool convertMetadataTypeToBinaryTForm(psDataType type, char** fitsType) 159 159 { 160 160 switch (type) { 161 case PS_ META_BOOL:161 case PS_DATA_BOOL: 162 162 *fitsType = psStringCopy("1L"); 163 163 break; 164 case PS_ META_S32:164 case PS_DATA_S32: 165 165 *fitsType = psStringCopy("1J"); 166 166 break; 167 case PS_ META_F32:167 case PS_DATA_F32: 168 168 *fitsType = psStringCopy("1E"); 169 169 break; 170 case PS_ META_F64:170 case PS_DATA_F64: 171 171 *fitsType = psStringCopy("1D"); 172 172 break; 173 case PS_ META_STR:173 case PS_DATA_STRING: 174 174 *fitsType = psStringCopy("1A"); 175 175 break; … … 510 510 PS_LIST_TAIL, 511 511 keyName, 512 PS_ META_S32 | PS_META_DUPLICATE_OK,512 PS_DATA_S32 | PS_META_DUPLICATE_OK, 513 513 keyComment, 514 514 atoi(keyValue)); … … 520 520 PS_LIST_TAIL, 521 521 keyName, 522 PS_ META_F64 | PS_META_DUPLICATE_OK,522 PS_DATA_F64 | PS_META_DUPLICATE_OK, 523 523 keyComment, 524 524 atof(keyValue)); … … 531 531 PS_LIST_TAIL, 532 532 keyName, 533 PS_ META_STR| PS_META_DUPLICATE_OK,533 PS_DATA_STRING | PS_META_DUPLICATE_OK, 534 534 keyComment, 535 535 keyValue+1); … … 538 538 PS_LIST_TAIL, 539 539 keyName, 540 PS_ META_STR| PS_META_DUPLICATE_OK,540 PS_DATA_STRING | PS_META_DUPLICATE_OK, 541 541 keyComment, 542 542 keyValue); … … 548 548 PS_LIST_TAIL, 549 549 keyName, 550 PS_ META_BOOL | PS_META_DUPLICATE_OK,550 PS_DATA_BOOL | PS_META_DUPLICATE_OK, 551 551 keyComment, 552 552 tempBool); … … 1053 1053 while ( (item=psListGetAndIncrement(iter)) != NULL ) { 1054 1054 switch (item->type) { 1055 case PS_ META_BOOL: {1055 case PS_DATA_BOOL: { 1056 1056 int value = item->data.B; 1057 1057 fits_update_key(fits->fd, … … 1063 1063 break; 1064 1064 } 1065 case PS_ META_S32:1065 case PS_DATA_S32: 1066 1066 fits_update_key(fits->fd, 1067 1067 TINT, … … 1071 1071 &status); 1072 1072 break; 1073 case PS_ META_F32:1073 case PS_DATA_F32: 1074 1074 fits_update_key(fits->fd, 1075 1075 TFLOAT, … … 1079 1079 &status); 1080 1080 break; 1081 case PS_ META_F64:1081 case PS_DATA_F64: 1082 1082 fits_update_key(fits->fd, 1083 1083 TDOUBLE, … … 1087 1087 &status); 1088 1088 break; 1089 case PS_ META_STR:1089 case PS_DATA_STRING: 1090 1090 fits_update_key(fits->fd, 1091 1091 TSTRING, … … 1192 1192 col, name, typecode, repeat, (double)value); \ 1193 1193 psMetadataAdd(data,PS_LIST_TAIL, name, \ 1194 PS_ META_##TYPE, \1194 PS_DATA_##TYPE, \ 1195 1195 "", (ps##TYPE)value); \ 1196 1196 break; \ … … 1214 1214 if (anynul == 0) { 1215 1215 psMetadataAdd(data,PS_LIST_TAIL, name, 1216 PS_ META_STR,1216 PS_DATA_STRING, 1217 1217 "", value); 1218 1218 } … … 1494 1494 PS_LIST_HEAD,true); 1495 1495 while ( (item=psListGetAndIncrement(iter)) != NULL) { 1496 if (PS_ META_IS_PRIMITIVE(item->type) || item->type == PS_META_STR) {1496 if (PS_DATA_IS_PRIMITIVE(item->type) || item->type == PS_DATA_STRING) { 1497 1497 bool found = false; 1498 1498 psMetadataItem* fItem = NULL; … … 1506 1506 if (! found) { 1507 1507 psArrayAdd(columns, columns->nalloc, item); 1508 } else if (item->type == PS_ META_STR&&1508 } else if (item->type == PS_DATA_STRING && 1509 1509 strlen(fItem->data.V) > strlen(item->data.V)) { 1510 1510 // got to keep the longest string value as to know what size to create the table column … … 1567 1567 int row; 1568 1568 item = columns->data[n]; 1569 if (PS_ META_IS_PRIMITIVE(item->type)) {1569 if (PS_DATA_IS_PRIMITIVE(item->type)) { 1570 1570 psVector* col = NULL; 1571 1571 psArray* colArray = NULL; 1572 1572 switch (item->type) { 1573 case PS_ META_S32:1573 case PS_DATA_S32: 1574 1574 col = psVectorAlloc(table->n, PS_TYPE_S32); 1575 1575 for (row = 0; row < table->n; row++) { … … 1587 1587 break; 1588 1588 1589 case PS_ META_F32:1589 case PS_DATA_F32: 1590 1590 col = psVectorAlloc(table->n, PS_TYPE_F32); 1591 1591 for (row = 0; row < table->n; row++) { … … 1603 1603 break; 1604 1604 1605 case PS_ META_F64:1605 case PS_DATA_F64: 1606 1606 col = psVectorAlloc(table->n, PS_TYPE_F64); 1607 1607 for (row = 0; row < table->n; row++) { … … 1619 1619 break; 1620 1620 1621 case PS_ META_BOOL:1621 case PS_DATA_BOOL: 1622 1622 col = psVectorAlloc(table->n, PS_TYPE_BOOL); 1623 1623 for (row = 0; row < table->n; row++) { … … 1635 1635 break; 1636 1636 1637 case PS_ META_STR:1637 case PS_DATA_STRING: 1638 1638 colArray = psArrayAlloc(table->n); 1639 1639 for (row = 0; row < table->n; row++) { … … 1656 1656 } 1657 1657 psFree(col); 1658 } else if (item->type == PS_ META_STR) {1658 } else if (item->type == PS_DATA_STRING) { 1659 1659 psArray* col = psArrayAlloc(table->n); 1660 1660 for (row = 0; row < table->n; row++) { … … 1716 1716 1717 1717 while ( (item=psMetadataGetAndIncrement(iter)) != NULL) { 1718 if (PS_ META_IS_PRIMITIVE(item->type)) {1719 // operating on primitive data type , i.e., not a complex object1718 if (PS_DATA_IS_PRIMITIVE(item->type) || item->type == PS_DATA_STRING) { 1719 // operating on primitive data type or string, i.e., not a complex object 1720 1720 int colnum = 0; 1721 1721 1722 1722 if ( fits_get_colnum(fits->fd, CASESEN, item->name, &colnum, &status) == 0) { 1723 1723 // cooresponding column found in table 1724 int dataType = 0; 1725 convertPsTypeToFits(item->type, NULL, NULL, &dataType); 1724 int dataType = TSTRING; // assume string unless it is a primative type 1725 if (PS_DATA_IS_PRIMITIVE(item->type)) { 1726 convertPsTypeToFits(item->type, NULL, NULL, &dataType); 1727 } 1726 1728 1727 1729 if (fits_write_col(fits->fd, dataType, colnum, row+1, 1, 1, &item->data,&status) != 0) {
Note:
See TracChangeset
for help on using the changeset viewer.
