Changeset 7246
- Timestamp:
- May 30, 2006, 12:44:37 PM (20 years ago)
- File:
-
- 1 edited
-
trunk/psLib/src/fits/psFitsHeader.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/fits/psFitsHeader.c
r7244 r7246 7 7 * @author Robert DeSonia, MHPCC 8 8 * 9 * @version $Revision: 1.1 6$ $Name: not supported by cvs2svn $10 * @date $Date: 2006-05-30 22: 11:51$9 * @version $Revision: 1.17 $ $Name: not supported by cvs2svn $ 10 * @date $Date: 2006-05-30 22:44:37 $ 11 11 * 12 12 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 112 112 // This is the default type that cfitsio reports whenever it doesn't know what it is. 113 113 // Trap NAN, INF and -INF, which cfitsio doesn't handle. 114 if (strncasecmp(keyValue, " nan", 3) == 0) {114 if (strncasecmp(keyValue, "NAN", 3) == 0) { 115 115 success = psMetadataAdd(out, PS_LIST_TAIL, keyName, PS_DATA_F32 | dupFlag, keyComment, 116 116 (psF32)NAN); 117 } else if (strncasecmp(keyValue, " inf", 3) == 0) {117 } else if (strncasecmp(keyValue, "INF", 3) == 0) { 118 118 success = psMetadataAdd(out, PS_LIST_TAIL, keyName, PS_DATA_F32 | dupFlag, keyComment, 119 119 (psF32)INFINITY); 120 } else if (strncasecmp(keyValue, "- inf", 4) == 0) {120 } else if (strncasecmp(keyValue, "-INF", 4) == 0) { 121 121 success = psMetadataAdd(out, PS_LIST_TAIL, keyName, PS_DATA_F32 | dupFlag, keyComment, 122 122 (psF32)-INFINITY); … … 156 156 } 157 157 158 success = psMetadataAdd(out, PS_LIST_TAIL, keyName, PS_DATA_STRING | dupFlag, keyComment, 159 keyValueFixed); 158 // Need to trap NAN, INF and -INF written by psFitsWriteHeader. 159 // cfitsio won't write these, so we write them as strings, and then have to trap them on read. 160 if (strcasecmp(keyValueFixed, "NAN") == 0) { 161 success = psMetadataAdd(out, PS_LIST_TAIL, keyName, PS_DATA_F32 | dupFlag, keyComment, 162 (psF32)NAN); 163 } else if (strcasecmp(keyValueFixed, "INF") == 0) { 164 success = psMetadataAdd(out, PS_LIST_TAIL, keyName, PS_DATA_F32 | dupFlag, keyComment, 165 (psF32)INFINITY); 166 } else if (strcasecmp(keyValueFixed, "-INF") == 0) { 167 success = psMetadataAdd(out, PS_LIST_TAIL, keyName, PS_DATA_F32 | dupFlag, keyComment, 168 (psF32)-INFINITY); 169 } else { 170 success = psMetadataAdd(out, PS_LIST_TAIL, keyName, PS_DATA_STRING | dupFlag, keyComment, 171 keyValueFixed); 172 } 160 173 break; 161 174 } … … 295 308 fits_update_key(fits->fd, TUINT, item->name, &item->data.U32, item->comment, &status); 296 309 break; 297 case PS_DATA_F32: 298 fits_update_key(fits->fd, TFLOAT, item->name, &item->data.F32, item->comment, &status); 299 break; 300 case PS_DATA_F64: 301 fits_update_key(fits->fd, TDOUBLE, item->name, &item->data.F64, item->comment, &status); 302 break; 310 case PS_DATA_F32: { 311 int infCheck = 0; // Result of isinf() 312 if (isnan(item->data.F32)) { 313 fits_update_key(fits->fd, TSTRING, item->name, "NaN", item->comment, &status); 314 } else if ((infCheck = isinf(item->data.F32)) != 0) { 315 if (infCheck == 1) { 316 fits_update_key(fits->fd, TSTRING, item->name, "Inf", item->comment, &status); 317 } else { 318 fits_update_key(fits->fd, TSTRING, item->name, "-Inf", item->comment, &status); 319 } 320 } else { 321 fits_update_key(fits->fd, TFLOAT, item->name, &item->data.F32, item->comment, &status); 322 } 323 break; 324 } 325 case PS_DATA_F64: { 326 int infCheck = 0; // Result of isinf() 327 if (isnan(item->data.F64)) { 328 fits_update_key(fits->fd, TSTRING, item->name, "NaN", item->comment, &status); 329 } else if ((infCheck = isinf(item->data.F64)) != 0) { 330 if (infCheck == 1) { 331 fits_update_key(fits->fd, TSTRING, item->name, "Inf", item->comment, &status); 332 } else { 333 fits_update_key(fits->fd, TSTRING, item->name, "-Inf", item->comment, &status); 334 } 335 } else { 336 fits_update_key(fits->fd, TDOUBLE, item->name, &item->data.F64, item->comment, &status); 337 } 338 break; 339 } 303 340 case PS_DATA_STRING: 304 341 fits_update_key(fits->fd, TSTRING, item->name, item->data.V, item->comment, &status);
Note:
See TracChangeset
for help on using the changeset viewer.
