Changeset 2782 for trunk/external-alma/atnf/PKSIO/ASTEDataset.cc
- Timestamp:
- 03/07/13 18:45:58 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/external-alma/atnf/PKSIO/ASTEDataset.cc
r2781 r2782 41 41 ASTEDataset::ASTEDataset( string name ) 42 42 : NRODataset( name ) 43 { 44 LogIO os( LogOrigin( "ASTEDataset", "ASTEDataset()", WHERE ) ) ; 45 46 // check endian 47 open() ; 48 fseek( fp_, 144, SEEK_SET ) ; 49 int tmp ; 50 if( fread( &tmp, 1, sizeof(int), fp_ ) != sizeof(int) ) { 51 os << LogIO::SEVERE << "Error while checking endian of the file. " << LogIO::POST ; 52 return ; 53 } 54 if ( ( 0 < tmp ) && ( tmp <= ASTE_ARYMAX ) ) { 55 same_ = true ; 56 os << LogIO::NORMAL << "same endian " << LogIO::POST ; 57 } 58 else { 59 same_ = false ; 60 os << LogIO::NORMAL << "different endian " << LogIO::POST ; 61 } 62 fseek( fp_, 0, SEEK_SET ) ; 63 64 // memory allocation 65 initialize() ; 66 } 43 {} 67 44 68 45 // destructor 69 46 ASTEDataset::~ASTEDataset() 70 { 71 } 47 {} 72 48 73 49 // data initialization 74 50 void ASTEDataset::initialize() 75 51 { 76 RX.resize( ASTE_ARYMAX ) ; 77 HPBW.resize( ASTE_ARYMAX ) ; 78 EFFA.resize( ASTE_ARYMAX ) ; 79 EFFB.resize( ASTE_ARYMAX ) ; 80 EFFL.resize( ASTE_ARYMAX ) ; 81 EFSS.resize( ASTE_ARYMAX ) ; 82 GAIN.resize( ASTE_ARYMAX ) ; 83 HORN.resize( ASTE_ARYMAX ) ; 84 POLTP.resize( ASTE_ARYMAX ) ; 85 POLDR.resize( ASTE_ARYMAX ) ; 86 POLAN.resize( ASTE_ARYMAX ) ; 87 DFRQ.resize( ASTE_ARYMAX ) ; 88 SIDBD.resize( ASTE_ARYMAX ) ; 89 REFN.resize( ASTE_ARYMAX ) ; 90 IPINT.resize( ASTE_ARYMAX ) ; 91 MULTN.resize( ASTE_ARYMAX ) ; 92 MLTSCF.resize( ASTE_ARYMAX ) ; 93 LAGWIND.resize( ASTE_ARYMAX ) ; 94 BEBW.resize( ASTE_ARYMAX ) ; 95 BERES.resize( ASTE_ARYMAX ) ; 96 CHWID.resize( ASTE_ARYMAX ) ; 97 ARRY.resize( ASTE_ARYMAX ) ; 98 NFCAL.resize( ASTE_ARYMAX ) ; 99 F0CAL.resize( ASTE_ARYMAX ) ; 100 FQCAL.resize( ASTE_ARYMAX ) ; 101 CHCAL.resize( ASTE_ARYMAX ) ; 102 CWCAL.resize( ASTE_ARYMAX ) ; 103 DSBFC.resize( ASTE_ARYMAX ) ; 104 105 for ( int i = 0 ; i < ASTE_ARYMAX ; i++ ) { 106 FQCAL[i].resize( 10 ) ; 107 CHCAL[i].resize( 10 ) ; 108 CWCAL[i].resize( 10 ) ; 109 } 110 111 datasize_ += sizeof( char ) * ASTE_ARYMAX * 16 // RX 112 + sizeof( double ) * ASTE_ARYMAX * 6 // HPBW, EFFA, EFFB, EFFL, EFSS GAIN 113 + sizeof( char ) * ASTE_ARYMAX * 4 // HORN 114 + sizeof( char ) * ASTE_ARYMAX * 4 // POLTP 115 + sizeof( double ) * ASTE_ARYMAX * 3 // POLDR, POLAN, DFRQ 116 + sizeof( char ) * ASTE_ARYMAX * 4 // SIDBID 117 + sizeof( int ) * ASTE_ARYMAX * 3 // REFN, IPINT, MULTN 118 + sizeof( double ) * ASTE_ARYMAX // MLTSCF 119 + sizeof( char ) * ASTE_ARYMAX * 8 // LAGWIND 120 + sizeof( double ) * ASTE_ARYMAX * 3 // BEBW, BERES, CHWID 121 + sizeof( int ) * ASTE_ARYMAX * 2 // ARRY, NFCAL 122 + sizeof( double ) * ASTE_ARYMAX // F0CAL 123 + sizeof( double ) * ASTE_ARYMAX * 10 * 3 // FQCAL, CHCAL, CWCAL 52 int arymax = arrayMax() ; 53 54 // it must be called 55 NRODataset::initialize() ; 56 57 // additional initialization 58 datasize_ += sizeof( char ) * arymax * 16 // RX 59 + sizeof( double ) * arymax * 6 // HPBW, EFFA, EFFB, EFFL, EFSS GAIN 60 + sizeof( char ) * arymax * 4 // HORN 61 + sizeof( char ) * arymax * 4 // POLTP 62 + sizeof( double ) * arymax * 3 // POLDR, POLAN, DFRQ 63 + sizeof( char ) * arymax * 4 // SIDBID 64 + sizeof( int ) * arymax * 3 // REFN, IPINT, MULTN 65 + sizeof( double ) * arymax // MLTSCF 66 + sizeof( char ) * arymax * 8 // LAGWIND 67 + sizeof( double ) * arymax * 3 // BEBW, BERES, CHWID 68 + sizeof( int ) * arymax * 2 // ARRY, NFCAL 69 + sizeof( double ) * arymax // F0CAL 70 + sizeof( double ) * arymax * 10 * 3 // FQCAL, CHCAL, CWCAL 124 71 + sizeof( char ) * 116 // CDMY1 125 + sizeof( double ) * ASTE_ARYMAX ; // DSBFC 126 127 refFreq_.resize( ASTE_ARYMAX, 0.0 ) ; 128 } 129 130 // fill data header 131 int ASTEDataset::fillHeader() 132 { 133 LogIO os( LogOrigin( "ASTEDataset", "fillHeader()", WHERE ) ) ; 134 135 // open file 136 if ( open() ) { 137 os << LogIO::SEVERE << "Error opening file " << filename_ << "." << LogIO::EXCEPTION ; 138 return -1 ; 139 } 140 141 // fill 142 int status = fillHeader( same_ ) ; 143 144 return status ; 72 + sizeof( double ) * arymax ; // DSBFC 145 73 } 146 74 … … 148 76 { 149 77 LogIO os( LogOrigin( "ASTEDataset", "fillHeader()", WHERE ) ) ; 78 79 int arymax = arrayMax(); 150 80 151 81 string str4( 4, ' ' ) ; … … 521 451 //cout << "PA = " << PA << endl ; 522 452 // 523 for ( int i = 0 ; i < ASTE_ARYMAX; i++ ) {453 for ( int i = 0 ; i < arymax ; i++ ) { 524 454 strcpy( c18, str18.c_str() ) ; 525 455 if ( readHeader( c18, 16 ) == -1 ) { … … 531 461 } 532 462 // DEBUG 533 // nro_debug_output( "RX", ASTE_ARYMAX, RX ) ;534 // 535 for ( int i = 0 ; i < ASTE_ARYMAX; i++ ) {463 // nro_debug_output( "RX", arymax, RX ) ; 464 // 465 for ( int i = 0 ; i < arymax ; i++ ) { 536 466 if ( readHeader( HPBW[i], sameEndian ) == -1 ) { 537 467 os << LogIO::WARN << "Error while reading data HPBW[" << i << "]." << LogIO::POST ; … … 540 470 } 541 471 // DEBUG 542 // nro_debug_output( "HPBW", ASTE_ARYMAX, HPBW ) ;543 // 544 for ( int i = 0 ; i < ASTE_ARYMAX; i++ ) {472 // nro_debug_output( "HPBW", arymax, HPBW ) ; 473 // 474 for ( int i = 0 ; i < arymax ; i++ ) { 545 475 if ( readHeader( EFFA[i], sameEndian ) == -1 ) { 546 476 os << LogIO::WARN << "Error while reading data EFFA[" << i << "]." << LogIO::POST ; … … 549 479 } 550 480 // DEBUG 551 // nro_debug_output( "EFFA", ASTE_ARYMAX, EFFA ) ;552 // 553 for ( int i = 0 ; i < ASTE_ARYMAX; i++ ) {481 // nro_debug_output( "EFFA", arymax, EFFA ) ; 482 // 483 for ( int i = 0 ; i < arymax ; i++ ) { 554 484 if ( readHeader( EFFB[i], sameEndian ) == -1 ) { 555 485 os << LogIO::WARN << "Error while reading data EFFB[" << i << "]." << LogIO::POST ; … … 558 488 } 559 489 // DEBUG 560 // nro_debug_output( "EFFB", ASTE_ARYMAX, EFFB ) ;561 // 562 for ( int i = 0 ; i < ASTE_ARYMAX; i++ ) {490 // nro_debug_output( "EFFB", arymax, EFFB ) ; 491 // 492 for ( int i = 0 ; i < arymax ; i++ ) { 563 493 if ( readHeader( EFFL[i], sameEndian ) == -1 ) { 564 494 os << LogIO::WARN << "Error while reading data EFFL[" << i << "]." << LogIO::POST ; … … 567 497 } 568 498 // DEBUG 569 // nro_debug_output( "EFFL", ASTE_ARYMAX, EFFL ) ;570 // 571 for ( int i = 0 ; i < ASTE_ARYMAX; i++ ) {499 // nro_debug_output( "EFFL", arymax, EFFL ) ; 500 // 501 for ( int i = 0 ; i < arymax ; i++ ) { 572 502 if ( readHeader( EFSS[i], sameEndian ) == -1 ) { 573 503 os << LogIO::WARN << "Error while reading data EFSS[" << i << "]." << LogIO::POST ; … … 576 506 } 577 507 // DEBUG 578 // nro_debug_output( "EFSS", ASTE_ARYMAX, EFSS ) ;579 // 580 for ( int i= 0 ; i < ASTE_ARYMAX; i++) {508 // nro_debug_output( "EFSS", arymax, EFSS ) ; 509 // 510 for ( int i= 0 ; i < arymax ; i++) { 581 511 if ( readHeader( GAIN[i], sameEndian ) == -1 ) { 582 512 os << LogIO::WARN << "Error while reading data GAIN[" << i << "]." << LogIO::POST ; … … 585 515 } 586 516 // DEBUG 587 // nro_debug_output( "GAIN", ASTE_ARYMAX, GAIN ) ;588 // 589 for ( int i= 0 ; i < ASTE_ARYMAX; i++) {517 // nro_debug_output( "GAIN", arymax, GAIN ) ; 518 // 519 for ( int i= 0 ; i < arymax ; i++) { 590 520 strcpy( c4, str4.c_str() ) ; 591 521 if ( readHeader( c4, 4 ) == -1 ) { … … 596 526 } 597 527 // DEBUG 598 // nro_debug_output( "HORN", ASTE_ARYMAX, HORN ) ;599 // 600 for ( int i= 0 ; i < ASTE_ARYMAX; i++) {528 // nro_debug_output( "HORN", arymax, HORN ) ; 529 // 530 for ( int i= 0 ; i < arymax ; i++) { 601 531 strcpy( c4, str4.c_str() ) ; 602 532 if ( readHeader( c4, 4 ) == -1 ) { … … 607 537 } 608 538 // DEBUG 609 // nro_debug_output( "POLTP", ASTE_ARYMAX, POLTP ) ;610 // 611 for ( int i= 0 ; i < ASTE_ARYMAX; i++) {539 // nro_debug_output( "POLTP", arymax, POLTP ) ; 540 // 541 for ( int i= 0 ; i < arymax ; i++) { 612 542 if ( readHeader( POLDR[i], sameEndian ) == -1 ) { 613 543 os << LogIO::WARN << "Error while reading data POLDR[" << i << "]." << LogIO::POST ; … … 616 546 } 617 547 // DEBUG 618 // nro_debug_output( "POLDR", ASTE_ARYMAX, POLDR ) ;619 // 620 for ( int i= 0 ; i < ASTE_ARYMAX; i++) {548 // nro_debug_output( "POLDR", arymax, POLDR ) ; 549 // 550 for ( int i= 0 ; i < arymax ; i++) { 621 551 if ( readHeader( POLAN[i], sameEndian ) == -1 ) { 622 552 os << LogIO::WARN << "Error while reading data POLAN[" << i << "]." << LogIO::POST ; … … 625 555 } 626 556 // DEBUG 627 // nro_debug_output( "POLAN", ASTE_ARYMAX, POLAN ) ;628 // 629 for ( int i= 0 ; i < ASTE_ARYMAX; i++) {557 // nro_debug_output( "POLAN", arymax, POLAN ) ; 558 // 559 for ( int i= 0 ; i < arymax ; i++) { 630 560 if ( readHeader( DFRQ[i], sameEndian ) == -1 ) { 631 561 os << LogIO::WARN << "Error while reading data DFRQ[" << i << "]." << LogIO::POST ; … … 634 564 } 635 565 // DEBUG 636 // nro_debug_output( "DFRQ", ASTE_ARYMAX, DFRQ ) ;637 // 638 for ( int i= 0 ; i < ASTE_ARYMAX; i++) {566 // nro_debug_output( "DFRQ", arymax, DFRQ ) ; 567 // 568 for ( int i= 0 ; i < arymax ; i++) { 639 569 strcpy( c4, str4.c_str() ) ; 640 570 if ( readHeader( c4, 4 ) == -1 ) { … … 645 575 } 646 576 // DEBUG 647 // nro_debug_output( "SIDBD", ASTE_ARYMAX, SIDBD ) ;648 // 649 for ( int i= 0 ; i < ASTE_ARYMAX; i++) {577 // nro_debug_output( "SIDBD", arymax, SIDBD ) ; 578 // 579 for ( int i= 0 ; i < arymax ; i++) { 650 580 if ( readHeader( REFN[i], sameEndian ) == -1 ) { 651 581 os << LogIO::WARN << "Error while reading data REFN[" << i << "]." << LogIO::POST ; … … 654 584 } 655 585 // DEBUG 656 // nro_debug_output( "REFN", ASTE_ARYMAX, REFN ) ;657 // 658 for ( int i= 0 ; i < ASTE_ARYMAX; i++) {586 // nro_debug_output( "REFN", arymax, REFN ) ; 587 // 588 for ( int i= 0 ; i < arymax ; i++) { 659 589 if ( readHeader( IPINT[i], sameEndian ) == -1 ) { 660 590 os << LogIO::WARN << "Error while reading data IPINT[" << i << "]." << LogIO::POST ; … … 663 593 } 664 594 // DEBUG 665 // nro_debug_output( "IPINT", ASTE_ARYMAX, IPINT ) ;666 // 667 for ( int i= 0 ; i < ASTE_ARYMAX; i++) {595 // nro_debug_output( "IPINT", arymax, IPINT ) ; 596 // 597 for ( int i= 0 ; i < arymax ; i++) { 668 598 if ( readHeader( MULTN[i], sameEndian ) == -1 ) { 669 599 os << LogIO::WARN << "Error while reading data MULTN[" << i << "]." << LogIO::POST ; … … 672 602 } 673 603 // DEBUG 674 // nro_debug_output( "MULTN", ASTE_ARYMAX, MULTN ) ;675 // 676 for ( int i= 0 ; i < ASTE_ARYMAX; i++) {604 // nro_debug_output( "MULTN", arymax, MULTN ) ; 605 // 606 for ( int i= 0 ; i < arymax ; i++) { 677 607 if ( readHeader( MLTSCF[i], sameEndian ) == -1 ) { 678 608 os << LogIO::WARN << "Error while reading data MLTSCF[" << i << "]." << LogIO::POST ; … … 681 611 } 682 612 // DEBUG 683 // nro_debug_output( "MLTSCF", ASTE_ARYMAX, MLTSCF ) ;684 // 685 for ( int i= 0 ; i < ASTE_ARYMAX; i++) {613 // nro_debug_output( "MLTSCF", arymax, MLTSCF ) ; 614 // 615 for ( int i= 0 ; i < arymax ; i++) { 686 616 strcpy( c8, str8.c_str() ) ; 687 617 if ( readHeader( c8, 8 ) == -1 ) { … … 692 622 } 693 623 // DEBUG 694 // nro_debug_output( "LAGWIND", ASTE_ARYMAX, LAGWIND ) ;695 // 696 for ( int i= 0 ; i < ASTE_ARYMAX; i++) {624 // nro_debug_output( "LAGWIND", arymax, LAGWIND ) ; 625 // 626 for ( int i= 0 ; i < arymax ; i++) { 697 627 if ( readHeader( BEBW[i], sameEndian ) == -1 ) { 698 628 os << LogIO::WARN << "Error while reading data BEBW[" << i << "]." << LogIO::POST ; … … 701 631 } 702 632 // DEBUG 703 // nro_debug_output( "BEBW", ASTE_ARYMAX, BEBW ) ;704 // 705 for ( int i= 0 ; i < ASTE_ARYMAX; i++) {633 // nro_debug_output( "BEBW", arymax, BEBW ) ; 634 // 635 for ( int i= 0 ; i < arymax ; i++) { 706 636 if ( readHeader( BERES[i], sameEndian ) == -1 ) { 707 637 os << LogIO::WARN << "Error while reading data BERES[" << i << "]." << LogIO::POST ; … … 710 640 } 711 641 // DEBUG 712 // nro_debug_output( "BERES", ASTE_ARYMAX, BERES ) ;713 // 714 for ( int i= 0 ; i < ASTE_ARYMAX; i++) {642 // nro_debug_output( "BERES", arymax, BERES ) ; 643 // 644 for ( int i= 0 ; i < arymax ; i++) { 715 645 if ( readHeader( CHWID[i], sameEndian ) == -1 ) { 716 646 os << LogIO::WARN << "Error while reading data CHWID[" << i << "]." << LogIO::POST ; … … 719 649 } 720 650 // DEBUG 721 // nro_debug_output( "CHWID", ASTE_ARYMAX, CHWID ) ;722 // 723 for ( int i= 0 ; i < ASTE_ARYMAX; i++) {651 // nro_debug_output( "CHWID", arymax, CHWID ) ; 652 // 653 for ( int i= 0 ; i < arymax ; i++) { 724 654 if ( readHeader( ARRY[i], sameEndian ) == -1 ) { 725 655 os << LogIO::WARN << "Error while reading data ARRY[" << i << "]." << LogIO::POST ; … … 728 658 } 729 659 // DEBUG 730 // nro_debug_output( "ARRY", ASTE_ARYMAX, ARRY ) ;731 // 732 for ( int i= 0 ; i < ASTE_ARYMAX; i++) {660 // nro_debug_output( "ARRY", arymax, ARRY ) ; 661 // 662 for ( int i= 0 ; i < arymax ; i++) { 733 663 if ( readHeader( NFCAL[i], sameEndian ) == -1 ) { 734 664 os << LogIO::WARN << "Error while reading data NFCAL[" << i << "]." << LogIO::POST ; … … 737 667 } 738 668 // DEBUG 739 // nro_debug_output( "NFCAL", ASTE_ARYMAX, NFCAL ) ;740 // 741 for ( int i= 0 ; i < ASTE_ARYMAX; i++) {669 // nro_debug_output( "NFCAL", arymax, NFCAL ) ; 670 // 671 for ( int i= 0 ; i < arymax ; i++) { 742 672 if ( readHeader( F0CAL[i], sameEndian ) == -1 ) { 743 673 os << LogIO::WARN << "Error while reading data F0CAL[" << i << "]." << LogIO::POST ; … … 746 676 } 747 677 // DEBUG 748 // nro_debug_output( "F0CAL", ASTE_ARYMAX, F0CAL ) ;749 // 750 for ( int i= 0 ; i < ASTE_ARYMAX; i++) {678 // nro_debug_output( "F0CAL", arymax, F0CAL ) ; 679 // 680 for ( int i= 0 ; i < arymax ; i++) { 751 681 for ( int j = 0 ; j < 10 ; j++ ) { 752 682 if ( readHeader( FQCAL[i][j], sameEndian ) == -1 ) { … … 757 687 } 758 688 // DEBUG 759 // nro_debug_output( "FQCAL", ASTE_ARYMAX, 10, FQCAL ) ;760 // 761 for ( int i= 0 ; i < ASTE_ARYMAX; i++) {689 // nro_debug_output( "FQCAL", arymax, 10, FQCAL ) ; 690 // 691 for ( int i= 0 ; i < arymax ; i++) { 762 692 for ( int j = 0 ; j < 10 ; j++ ) { 763 693 if ( readHeader( CHCAL[i][j], sameEndian ) == -1 ) { … … 768 698 } 769 699 // DEBUG 770 // nro_debug_output( "CHCAL", ASTE_ARYMAX, 10, CHCAL ) ;771 // 772 for ( int i= 0 ; i < ASTE_ARYMAX; i++) {700 // nro_debug_output( "CHCAL", arymax, 10, CHCAL ) ; 701 // 702 for ( int i= 0 ; i < arymax ; i++) { 773 703 for ( int j = 0 ; j < 10 ; j++ ) { 774 704 if ( readHeader( CWCAL[i][j], sameEndian ) == -1 ) { … … 779 709 } 780 710 // DEBUG 781 // nro_debug_output( "CWCAL", ASTE_ARYMAX, 10, CWCAL ) ;711 // nro_debug_output( "CWCAL", arymax, 10, CWCAL ) ; 782 712 // 783 713 if ( readHeader( SCNLEN, sameEndian ) == -1 ) { … … 821 751 //cout << "CDMY1 = " << CDMY1 << endl ; 822 752 // 823 for ( int i = 0 ; i < ASTE_ARYMAX; i++ ) {753 for ( int i = 0 ; i < arymax ; i++ ) { 824 754 if ( readHeader( DSBFC[i], sameEndian ) == -1 ) { 825 755 os << LogIO::WARN << "Error while reading data DSBFC[" << i << "]." << LogIO::POST ; … … 828 758 } 829 759 // DEBUG 830 // nro_debug_output( "DSBFC", ASTE_ARYMAX, DSBFC ) ; 831 // 832 833 //scanNum_ = NSCAN + 1 ; // includes ZERO scan 834 scanLen_ = SCNLEN ; 835 dataLen_ = scanLen_ - SCAN_HEADER_SIZE ; 836 scanNum_ = getScanNum(); 837 rowNum_ = scanNum_ * ARYNM ; 838 chmax_ = (int) ( dataLen_ * 8 / IBIT ) ; 839 record_->LDATA = new char[dataLen_] ; 840 841 initArray(); 842 843 show() ; 760 // nro_debug_output( "DSBFC", arymax, DSBFC ) ; 761 // 844 762 845 763 return 0 ;
Note: See TracChangeset
for help on using the changeset viewer.