Changeset 7846 for trunk/psLib/src/fits/psFits.c
- Timestamp:
- Jul 7, 2006, 5:06:40 PM (20 years ago)
- File:
-
- 1 edited
-
trunk/psLib/src/fits/psFits.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/fits/psFits.c
r7300 r7846 7 7 * @author Robert DeSonia, MHPCC 8 8 * 9 * @version $Revision: 1.5 5$ $Name: not supported by cvs2svn $10 * @date $Date: 2006-0 6-02 21:33:33$9 * @version $Revision: 1.56 $ $Name: not supported by cvs2svn $ 10 * @date $Date: 2006-07-08 03:06:40 $ 11 11 * 12 12 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 486 486 return true; 487 487 } 488 489 490 psDataType p_psFitsTypeFromCfitsio(int datatype) 491 { 492 switch (datatype) { 493 case TBYTE: 494 return PS_TYPE_U8; 495 case TSBYTE: 496 return PS_TYPE_S8; 497 case TSHORT: 498 return PS_TYPE_S16; 499 case TUSHORT: 500 return PS_TYPE_U16; 501 case TLONG: 502 if (sizeof(long) == 8) { 503 return PS_TYPE_S64; 504 } 505 // no break 506 case TINT: 507 return PS_TYPE_S32; 508 case TULONG: 509 if (sizeof(unsigned long) == 8) { 510 return PS_TYPE_U64; 511 } 512 // no break 513 case TUINT: 514 return PS_TYPE_U32; 515 case TLONGLONG: 516 return PS_TYPE_S64; 517 case TFLOAT: 518 return PS_TYPE_F32; 519 case TDOUBLE: 520 return PS_TYPE_F64; 521 case TCOMPLEX: 522 return PS_TYPE_C32; 523 case TDBLCOMPLEX: 524 return PS_TYPE_C64; 525 case TLOGICAL: 526 return PS_TYPE_BOOL; 527 default: 528 psError(PS_ERR_IO, true, 529 "Unknown FITS datatype, %d.", 530 datatype); 531 return 0; 532 } 533 } 534 535 bool p_psFitsTypeToCfitsio(psDataType type, int* bitPix, double* bZero, int* dataType) 536 { 537 int bitpix; 538 int datatype; 539 double bzero = 0.0; 540 541 switch (type) { 542 543 case PS_TYPE_U8: 544 bitpix = BYTE_IMG; 545 datatype = TBYTE; 546 break; 547 548 case PS_TYPE_S8: 549 bitpix = BYTE_IMG; 550 bzero = INT8_MIN; 551 datatype = TSBYTE; 552 break; 553 554 case PS_TYPE_U16: 555 bitpix = SHORT_IMG; 556 bzero = -1.0 * INT16_MIN; 557 datatype = TUSHORT; 558 break; 559 560 case PS_TYPE_S16: 561 bitpix = SHORT_IMG; 562 datatype = TSHORT; 563 break; 564 565 case PS_TYPE_U32: 566 bitpix = LONG_IMG; 567 bzero = -1.0 * INT32_MIN; 568 datatype = TUINT; 569 break; 570 571 case PS_TYPE_S32: 572 bitpix = LONG_IMG; 573 datatype = TINT; 574 break; 575 576 case PS_TYPE_F32: 577 bitpix = FLOAT_IMG; 578 datatype = TFLOAT; 579 break; 580 581 case PS_TYPE_F64: 582 bitpix = DOUBLE_IMG; 583 datatype = TDOUBLE; 584 break; 585 586 case PS_DATA_STRING: 587 bitpix = BYTE_IMG; 588 datatype = TSTRING; 589 break; 590 591 case PS_DATA_BOOL: 592 bitpix = BYTE_IMG; 593 datatype = TLOGICAL; 594 break; 595 596 default: { 597 char* typeStr; 598 PS_TYPE_NAME(typeStr,type); 599 psError(PS_ERR_BAD_PARAMETER_TYPE, true, 600 PS_ERRORTEXT_psFits_TYPE_UNSUPPORTED, 601 typeStr); 602 return false; 603 } 604 } 605 606 // pass back the requested parameters (NULL parameters are not set, of course). 607 if (bitPix != NULL) { 608 *bitPix = bitpix; 609 } 610 611 if (dataType != NULL) { 612 *dataType = datatype; 613 } 614 615 if (bZero != NULL) { 616 *bZero = bzero; 617 } 618 619 return true; 620 } 621 622
Note:
See TracChangeset
for help on using the changeset viewer.
