- File:
-
- 1 edited
-
trunk/external-alma/atnf/PKSIO/NROFITSDataset.cc (modified) (50 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/external-alma/atnf/PKSIO/NROFITSDataset.cc
r2203 r2442 620 620 } 621 621 // DEBUG 622 // for ( int i = 0 ; i < ARYNM ; i++ ) { 623 // if ( i == 0 ) { 624 // cout << "RX " ; 625 // } 626 // else if ( ( i % 5 ) == 0 ) { 627 // cout << endl << " " ; 628 // } 629 // cout << "\'" << RX[i] << "\' " ; 630 // } 631 // cout << endl ; 622 // nro_debug_output( "RX", ARYNM, RX ) ; 632 623 // 633 624 if ( readColumn( HPBW, "HPBW", sameEndian ) != 0 ) { … … 636 627 } 637 628 // DEBUG 638 // for ( int i = 0 ; i < ARYNM ; i++ ) { 639 // if ( i == 0 ) { 640 // //cout << "HPBW " ; 641 // } 642 // else if ( ( i % 5 ) == 0 ) { 643 // //cout << endl << " " ; 644 // } 645 // //cout << HPBW[i] << " " ; 646 // } 647 // //cout << endl ; 629 // nro_debug_output( "HPBW", ARYNM, HPBW ) ; 648 630 // 649 631 if ( readColumn( EFFA, "EFFA", sameEndian ) != 0 ) { … … 652 634 } 653 635 // DEBUG 654 // for ( int i = 0 ; i < ARYNM ; i++ ) { 655 // if ( i == 0 ) { 656 // //cout << "EFFA " ; 657 // } 658 // else if ( ( i % 5 ) == 0 ) { 659 // //cout << endl << " " ; 660 // } 661 // //cout << EFFA[i] << " " ; 662 // } 663 // //cout << endl ; 636 // nro_debug_output( "EFFA", ARYNM, EFFA ) ; 664 637 // 665 638 if ( readColumn( EFFB, "EFFB", sameEndian ) != 0 ) { … … 668 641 } 669 642 // DEBUG 670 // for ( int i = 0 ; i < ARYNM ; i++ ) { 671 // if ( i == 0 ) { 672 // //cout << "EFFB " ; 673 // } 674 // else if ( ( i % 5 ) == 0 ) { 675 // //cout << endl << " " ; 676 // } 677 // //cout << EFFB[i] << " " ; 678 // } 679 // //cout << endl ; 643 // nro_debug_output( "EFFB", ARYNM, EFFB ) ; 680 644 // 681 645 if ( readColumn( EFFL, "EFFL", sameEndian ) != 0 ) { … … 684 648 } 685 649 // DEBUG 686 // for ( int i = 0 ; i < ARYNM ; i++ ) { 687 // if ( i == 0 ) { 688 // //cout << "EFFL " ; 689 // } 690 // else if ( ( i % 5 ) == 0 ) { 691 // //cout << endl << " " ; 692 // } 693 // //cout << EFFL[i] << " " ; 694 // } 695 // //cout << endl ; 650 // nro_debug_output( "EFFL", ARYNM, EFFL ) ; 696 651 // 697 652 if ( readColumn( EFSS, "EFSS", sameEndian ) != 0 ) { … … 700 655 } 701 656 // DEBUG 702 // for ( int i = 0 ; i < ARYNM ; i++ ) { 703 // if ( i == 0 ) { 704 // //cout << "EFSS " ; 705 // } 706 // else if ( ( i % 5 ) == 0 ) { 707 // //cout << endl << " " ; 708 // } 709 // //cout << EFSS[i] << " " ; 710 // } 711 // //cout << endl ; 657 // nro_debug_output( "EFSS", ARYNM, EFSS ) ; 712 658 // 713 659 if ( readColumn( GAIN, "GAIN", sameEndian ) != 0 ) { … … 716 662 } 717 663 // DEBUG 718 // for ( int i = 0 ; i < ARYNM ; i++ ) { 719 // if ( i == 0 ) { 720 // //cout << "GAIN " ; 721 // } 722 // else if ( ( i % 5 ) == 0 ) { 723 // //cout << endl << " " ; 724 // } 725 // //cout << GAIN[i] << " " ; 726 // } 727 // //cout << endl ; 664 // nro_debug_output( "GAIN", ARYNM, GAIN ) ; 728 665 // 729 666 if ( readColumn( HORN, "HORN" ) != 0 ) { … … 732 669 } 733 670 // DEBUG 734 // for ( int i = 0 ; i < ARYNM ; i++ ) { 735 // if ( i == 0 ) { 736 // //cout << "HORN " ; 737 // } 738 // else if ( ( i % 5 ) == 0 ) { 739 // //cout << endl << " " ; 740 // } 741 // //cout << "\'" << HORN[i] << "\' " ; 742 // } 743 // //cout << endl ; 671 // nro_debug_output( "HORN", ARYNM, HORN ) ; 744 672 // 745 673 if ( readColumn( POLTP, "POLTP" ) != 0 ) { … … 748 676 } 749 677 // DEBUG 750 // for ( int i = 0 ; i < ARYNM ; i++ ) { 751 // if ( i == 0 ) { 752 // //cout << "POLTP " ; 753 // } 754 // else if ( ( i % 5 ) == 0 ) { 755 // //cout << endl << " " ; 756 // } 757 // //cout << "\'" << POLTP[i] << "\' " ; 758 // } 759 // //cout << endl ; 678 // nro_debug_output( "POLTP", ARYNM, POLTP ) ; 760 679 // 761 680 vector<int> ipoldr( ARYNM, 0 ) ; … … 767 686 POLDR[i] = (double)ipoldr[i] ; 768 687 // DEBUG 769 // for ( int i = 0 ; i < ARYNM ; i++ ) { 770 // if ( i == 0 ) { 771 // //cout << "POLDR " ; 772 // } 773 // else if ( ( i % 5 ) == 0 ) { 774 // //cout << endl << " " ; 775 // } 776 // //cout << POLDR[i] << " " ; 777 // } 778 // //cout << endl ; 688 // nro_debug_output( "POLDR", ARYNM, POLDR ) ; 779 689 // 780 690 if ( readColumn( POLAN, "POLAN", sameEndian ) != 0 ) { … … 783 693 } 784 694 // DEBUG 785 // for ( int i = 0 ; i < ARYNM ; i++ ) { 786 // if ( i == 0 ) { 787 // //cout << "POLAN " ; 788 // } 789 // else if ( ( i % 5 ) == 0 ) { 790 // //cout << endl << " " ; 791 // } 792 // //cout << POLAN[i] << " " ; 793 // } 794 // //cout << endl ; 695 // nro_debug_output( "POLAN", ARYNM, POLAN ) ; 795 696 // 796 697 if ( readColumn( DFRQ, "DFRQ", sameEndian ) != 0 ) { … … 799 700 } 800 701 // DEBUG 801 // for ( int i = 0 ; i < ARYNM ; i++ ) { 802 // if ( i == 0 ) { 803 // //cout << "DFRQ " ; 804 // } 805 // else if ( ( i % 5 ) == 0 ) { 806 // //cout << endl << " " ; 807 // } 808 // //cout << DFRQ[i] << " " ; 809 // } 810 // //cout << endl ; 702 // nro_debug_output( "DFRQ", ARYNM, DFRQ ) ; 811 703 // 812 704 if ( readColumn( SIDBD, "SIDBD" ) != 0 ) { … … 815 707 } 816 708 // DEBUG 817 // for ( int i = 0 ; i < ARYNM ; i++ ) { 818 // if ( i == 0 ) { 819 // //cout << "SIDBD " ; 820 // } 821 // else if ( ( i % 5 ) == 0 ) { 822 // //cout << endl << " " ; 823 // } 824 // //cout << "\'" << SIDBD[i] << "\' " ; 825 // } 826 // //cout << endl ; 709 // nro_debug_output( "SIDBD", ARYNM, SIDBD ) ; 827 710 // 828 711 if ( readColumn( REFN, "REFN", sameEndian ) != 0 ) { … … 831 714 } 832 715 // DEBUG 833 // for ( int i = 0 ; i < ARYNM ; i++ ) { 834 // if ( i == 0 ) { 835 // //cout << "REFN " ; 836 // } 837 // else if ( ( i % 5 ) == 0 ) { 838 // //cout << endl << " " ; 839 // } 840 // //cout << REFN[i] << " " ; 841 // } 842 // //cout << endl ; 716 // nro_debug_output( "REFN", ARYNM, REFN ) ; 843 717 // 844 718 if ( readColumn( IPINT, "IPINT", sameEndian ) != 0 ) { … … 847 721 } 848 722 // DEBUG 849 // for ( int i = 0 ; i < ARYNM ; i++ ) { 850 // if ( i == 0 ) { 851 // //cout << "IPINT " ; 852 // } 853 // else if ( ( i % 5 ) == 0 ) { 854 // //cout << endl << " " ; 855 // } 856 // //cout << IPINT[i] << " " ; 857 // } 858 // //cout << endl ; 723 // nro_debug_output( "IPINT", ARYNM, IPINT ) ; 859 724 // 860 725 if ( readColumn( MULTN, "MULTN", sameEndian ) != 0 ) { … … 863 728 } 864 729 // DEBUG 865 // for ( int i = 0 ; i < ARYNM ; i++ ) { 866 // if ( i == 0 ) { 867 // //cout << "MULTN " ; 868 // } 869 // else if ( ( i % 5 ) == 0 ) { 870 // //cout << endl << " " ; 871 // } 872 // //cout << MULTN[i] << " " ; 873 // } 874 // //cout << endl ; 730 // nro_debug_output( "MULTN", ARYNM, MULTN ) ; 875 731 // 876 732 if ( readColumn( MLTSCF, "MLTSCF", sameEndian ) != 0 ) { … … 879 735 } 880 736 // DEBUG 881 // for ( int i = 0 ; i < ARYNM ; i++ ) { 882 // if ( i == 0 ) { 883 // //cout << "MLTSCF " ; 884 // } 885 // else if ( ( i % 5 ) == 0 ) { 886 // //cout << endl << " " ; 887 // } 888 // //cout << MLTSCF[i] << " " ; 889 // } 890 // //cout << endl ; 737 // nro_debug_output( "MLTSCF", ARYNM, MLTSCF ) ; 891 738 // 892 739 if ( readColumn( LAGWIND, "LAGWIN" ) != 0 ) { … … 895 742 } 896 743 // DEBUG 897 // for ( int i = 0 ; i < ARYNM ; i++ ) { 898 // if ( i == 0 ) { 899 // //cout << "LAGWIND " ; 900 // } 901 // else if ( ( i % 5 ) == 0 ) { 902 // //cout << endl << " " ; 903 // } 904 // //cout << "\'" << LAGWIND[i] << "\' " ; 905 // } 906 // //cout << endl ; 744 // nro_debug_output( "LAGWIND", ARYNM, LAGWIND ) ; 907 745 // 908 746 if ( readColumn( BEBW, "BEBW", sameEndian ) != 0 ) { … … 911 749 } 912 750 // DEBUG 913 // for ( int i = 0 ; i < ARYNM ; i++ ) { 914 // if ( i == 0 ) { 915 // //cout << "BEBW " ; 916 // } 917 // else if ( ( i % 5 ) == 0 ) { 918 // //cout << endl << " " ; 919 // } 920 // //cout << BEBW[i] << " " ; 921 // } 922 // //cout << endl ; 751 // nro_debug_output( "BEBW", ARYNM, BEBW ) ; 923 752 // 924 753 if ( readColumn( BERES, "BERES", sameEndian ) != 0 ) { … … 927 756 } 928 757 // DEBUG 929 // for ( int i = 0 ; i < ARYNM ; i++ ) { 930 // if ( i == 0 ) { 931 // //cout << "BERES " ; 932 // } 933 // else if ( ( i % 5 ) == 0 ) { 934 // //cout << endl << " " ; 935 // } 936 // //cout << BERES[i] << " " ; 937 // } 938 // //cout << endl ; 758 // nro_debug_output( "BERES", ARYNM, BERES ) ; 939 759 // 940 760 if ( readColumn( CHWID, "CHWID", sameEndian ) != 0 ) { … … 942 762 return -1 ; 943 763 } 944 // DEBUG 945 // for ( int i = 0 ; i < ARYNM ; i++ ) { 946 // if ( i == 0 ) { 947 // //cout << "CHWID " ; 948 // } 949 // else if ( ( i % 5 ) == 0 ) { 950 // //cout << endl << " " ; 951 // } 952 // //cout << CHWID[i] << " " ; 953 // } 954 // //cout << endl ; 764 // DEBUG 765 // nro_debug_output( "CHWID", ARYNM, CHWID ) ; 955 766 // 956 767 if ( readARRY() != 0 ) { … … 959 770 } 960 771 // DEBUG 961 // for ( int i = 0 ; i < NRO_FITS_ARYMAX ; i++ ) { 962 // if ( i == 0 ) { 963 // //cout << "ARRY " ; 964 // } 965 // else if ( ( i % 20 ) == 0 ) { 966 // //cout << endl << " " ; 967 // } 968 // //cout << ARRY[i] << " " ; 969 // } 970 // //cout << endl ; 772 // nro_debug_output( "ARRY", NRO_FITS_ARYMAX, ARRY ) ; 971 773 // 972 774 if ( readColumn( NFCAL, "NFCAL", sameEndian ) != 0 ) { … … 974 776 return -1 ; 975 777 } 976 // DEBUG 977 // for ( int i = 0 ; i < ARYNM ; i++ ) { 978 // if ( i == 0 ) { 979 // //cout << "NFCAL " ; 980 // } 981 // else if ( ( i % 5 ) == 0 ) { 982 // //cout << endl << " " ; 983 // } 984 // //cout << NFCAL[i] << " " ; 985 // } 986 // //cout << endl ; 778 // DEBUG 779 // nro_debug_output( "NFCAL", ARYNM, NFCAL ) ; 987 780 // 988 781 if ( readColumn( F0CAL, "F0CAL", sameEndian ) != 0 ) { … … 990 783 return -1 ; 991 784 } 992 // DEBUG 993 // for ( int i = 0 ; i < ARYNM ; i++ ) { 994 // if ( i == 0 ) { 995 // //cout << "F0CAL " ; 996 // } 997 // else if ( ( i % 5 ) == 0 ) { 998 // //cout << endl << " " ; 999 // } 1000 // //cout << F0CAL[i] << " " ; 1001 // } 1002 // //cout << endl ; 785 // DEBUG 786 // nro_debug_output( "F0CAL", ARYNM, F0CAL ) ; 1003 787 // 1004 788 for ( int i= 0 ; i < 10 ; i++) { … … 1013 797 } 1014 798 // DEBUG 1015 // for ( int i = 0 ; i < ARYNM ; i++ ) { 1016 // for ( int j = 0 ; j < 10 ; j++ ) { 1017 // if ( j == 0 ) { 1018 // if ( i < 10 ) 1019 // //cout << "FQCAL0" << i << " " ; 1020 // else 1021 // //cout << "FQCAL" << i << " " ; 1022 // } 1023 // else if ( ( j % 5 ) == 0 ) { 1024 // //cout << endl << " " ; 1025 // } 1026 // //cout << FQCAL[i][j] << " " ; 1027 // } 1028 // //cout << endl ; 1029 // } 799 // nro_debug_output( "FQCAL", ARYNM, 10, FQCAL ) ; 1030 800 // 1031 801 for ( int i= 0 ; i < 10 ; i++) { … … 1040 810 } 1041 811 // DEBUG 1042 // for ( int i = 0 ; i < ARYNM ; i++ ) { 1043 // for ( int j = 0 ; j < 10 ; j++ ) { 1044 // if ( j == 0 ) { 1045 // if ( i < 10 ) 1046 // //cout << "CHCAL0" << i << " " ; 1047 // else 1048 // //cout << "CHCAL" << i << " " ; 1049 // } 1050 // else if ( ( j % 5 ) == 0 ) { 1051 // //cout << endl << " " ; 1052 // } 1053 // //cout << CHCAL[i][j] << " " ; 1054 // } 1055 // //cout << endl ; 1056 // } 812 // nro_debug_output( "CHCAL", ARYNM, 10, CHCAL ) ; 1057 813 // 1058 814 for ( int i= 0 ; i < 10 ; i++) { … … 1067 823 } 1068 824 // DEBUG 1069 // for ( int i = 0 ; i < ARYNM ; i++ ) { 1070 // for ( int j = 0 ; j < 10 ; j++ ) { 1071 // if ( j == 0 ) { 1072 // if ( i < 10 ) 1073 // //cout << "CWCAL0" << i << " " ; 1074 // else 1075 // //cout << "CWCAL" << i << " " ; 1076 // } 1077 // else if ( ( j % 5 ) == 0 ) { 1078 // //cout << endl << " " ; 1079 // } 1080 // //cout << CWCAL[i][j] << " " ; 1081 // } 1082 // //cout << endl ; 1083 // } 825 // nro_debug_output( "CWCAL", ARYNM, 10, CWCAL ) ; 1084 826 // 1085 827 if ( readHeader( SCNLEN, "NAXIS1", sameEndian ) != 0 ) { … … 1117 859 } 1118 860 // DEBUG 1119 // for ( int i = 0 ; i < ARYNM ; i++ ) { 1120 // if ( i == 0 ) { 1121 // //cout << "DSBFC " ; 1122 // } 1123 // else if ( ( i % 5 ) == 0 ) { 1124 // //cout << endl << " " ; 1125 // } 1126 // //cout << DSBFC[i] << " " ; 1127 // } 1128 // //cout << endl ; 861 // nro_debug_output( "DSBFC", ARYNM, DSBFC ) ; 1129 862 // 1130 863 … … 2197 1930 } 2198 1931 2199 int NROFITSDataset::readTable( char *v, char *name )2200 {2201 //2202 // Read 'name' attribute defined as char from the 0-th row2203 // of the FITS Scan Record2204 //2205 int status = readTable( v, name, (int)strlen( v ), 0 ) ;2206 2207 return status ;2208 }2209 2210 1932 int NROFITSDataset::readTable( char *v, char *name, int clen, int idx ) 2211 1933 { … … 2214 1936 // of the FITS Scan Record 2215 1937 // 2216 int status = 0 ; 2217 2218 // skip header 2219 fseek( fp_, FITS_HEADER_SIZE, SEEK_SET ) ; 2220 2221 // find offset 2222 int offset = getOffset( name ) ; 2223 if ( offset == -1 ) { 2224 //cerr << "Error, " << name << " is not found in the name list." << endl ; 2225 return -1 ; 2226 } 2227 offset += idx * scanLen_ ; 2228 //cout << "offset for " << name << " is " << offset << " bytes." << endl ; 2229 fseek( fp_, offset, SEEK_CUR ) ; 1938 int status = movePointer( name, idx ) ; 1939 if ( status < 0 ) 1940 return status ; 2230 1941 2231 1942 // get length of char … … 2254 1965 } 2255 1966 2256 int NROFITSDataset::readTable( int &v, char *name, int b )2257 {2258 //2259 // Read 'name' attribute defined as int from the 0-th row2260 // of the FITS Scan Record2261 //2262 int status = readTable( v, name, b, 0 ) ;2263 2264 return status ;2265 }2266 2267 1967 int NROFITSDataset::readTable( int &v, char *name, int b, int idx ) 2268 1968 { … … 2271 1971 // of the FITS Scan Record 2272 1972 // 2273 int status = 0 ; 2274 // skip header 2275 fseek( fp_, FITS_HEADER_SIZE, SEEK_SET ) ; 2276 2277 // find offset 2278 int offset = getOffset( name ) ; 2279 if ( offset == -1 ) { 2280 //cerr << "Error, " << name << " is not found in the name list." << endl ; 2281 return -1 ; 2282 } 2283 offset += idx * scanLen_ ; 2284 //cout << "offset for " << name << " is " << offset << " bytes." << endl ; 2285 fseek( fp_, offset, SEEK_CUR ) ; 1973 int status = movePointer( name, idx ) ; 1974 if ( status < 0 ) 1975 return status ; 2286 1976 2287 1977 // read data … … 2293 1983 } 2294 1984 2295 int NROFITSDataset::readTable( float &v, char *name, int b )2296 {2297 //2298 // Read 'name' attribute defined as float from the 0-th row2299 // of the FITS Scan Record2300 //2301 int status = readTable( v, name, b, 0 ) ;2302 2303 return status ;2304 }2305 2306 1985 int NROFITSDataset::readTable( float &v, char *name, int b, int idx ) 2307 1986 { … … 2310 1989 // of the FITS Scan Record 2311 1990 // 2312 int status = 0 ; 2313 2314 // skip header 2315 fseek( fp_, FITS_HEADER_SIZE, SEEK_SET ) ; 2316 2317 // find offset 2318 int offset = getOffset( name ) ; 2319 if ( offset == -1 ) { 2320 //cerr << "Error, " << name << " is not found in the name list." << endl ; 2321 return -1 ; 2322 } 2323 offset += idx * scanLen_ ; 2324 //cout << "offset for " << name << " is " << offset << " bytes." << endl ; 2325 fseek( fp_, offset, SEEK_CUR ) ; 1991 int status = movePointer( name, idx ) ; 1992 if ( status < 0 ) 1993 return status ; 2326 1994 2327 1995 // read data … … 2333 2001 } 2334 2002 2335 int NROFITSDataset::readTable( double &v, char *name, int b )2336 {2337 //2338 // Read 'name' attribute defined as double from the 0-th row2339 // of the FITS Scan Record2340 //2341 int status = readTable( v, name, b, 0 ) ;2342 2343 return status ;2344 }2345 2346 2003 int NROFITSDataset::readTable( double &v, char *name, int b, int idx ) 2347 2004 { … … 2350 2007 // of the FITS Scan Record 2351 2008 // 2352 int status = 0 ; 2353 2354 // skip header 2355 fseek( fp_, FITS_HEADER_SIZE, SEEK_SET ) ; 2356 2357 // find offset 2358 int offset = getOffset( name ) ; 2359 if ( offset == -1 ) { 2360 //cerr << "Error, " << name << " is not found in the name list." << endl ; 2361 return -1 ; 2362 } 2363 offset += idx * scanLen_ ; 2364 //cout << "offset for " << name << " is " << offset << " bytes." << endl ; 2365 fseek( fp_, offset, SEEK_CUR ) ; 2009 int status = movePointer( name, idx ) ; 2010 if ( status < 0 ) 2011 return status ; 2366 2012 2367 2013 // read data … … 2378 2024 // Read 'name' attribute defined as char array from the FITS Scan Record 2379 2025 // 2380 int status = 0 ; 2381 2382 // skip header 2383 fseek( fp_, FITS_HEADER_SIZE, SEEK_SET ) ; 2384 2385 // find offset 2386 int offset = getOffset( name ) ; 2387 if ( offset == -1 ) { 2388 //cerr << "Error, " << name << " is not found in the name list." << endl ; 2389 return -1 ; 2390 } 2391 offset += idx * scanLen_ ; 2392 //cout << "offset for " << name << " is " << offset << " bytes." << endl ; 2393 fseek( fp_, offset, SEEK_CUR ) ; 2026 int status = movePointer( name, idx ) ; 2027 if ( status < 0 ) 2028 return status ; 2394 2029 2395 2030 // get length of char … … 2426 2061 // Read 'name' attribute defined as int array from the FITS Scan Record 2427 2062 // 2428 int status = 0 ; 2429 2430 // skip header 2431 fseek( fp_, FITS_HEADER_SIZE, SEEK_SET ) ; 2432 2433 // find offset 2434 int offset = getOffset( name ) ; 2435 if ( offset == -1 ) { 2436 //cerr << "Error, " << name << " is not found in the name list." << endl ; 2437 return -1 ; 2438 } 2439 offset += idx * scanLen_ ; 2440 //cout << "offset for " << name << " is " << offset << " bytes." << endl ; 2441 fseek( fp_, offset, SEEK_CUR ) ; 2063 int status = movePointer( name, idx ) ; 2064 if ( status < 0 ) 2065 return status ; 2442 2066 2443 2067 for ( unsigned int i = 0 ; i < v.size() ; i++ ) { … … 2456 2080 // Read 'name' attribute defined as float array from the FITS Scan Record 2457 2081 // 2458 int status = 0 ; 2459 2460 // skip header 2461 fseek( fp_, FITS_HEADER_SIZE, SEEK_SET ) ; 2462 2463 // find offset 2464 int offset = getOffset( name ) ; 2465 if ( offset == -1 ) { 2466 //cerr << "Error, " << name << " is not found in the name list." << endl ; 2467 return -1 ; 2468 } 2469 offset += idx * scanLen_ ; 2470 //cout << "offset for " << name << " is " << offset << " bytes." << endl ; 2471 fseek( fp_, offset, SEEK_CUR ) ; 2082 int status = movePointer( name, idx ) ; 2083 if ( status < 0 ) 2084 return status ; 2472 2085 2473 2086 for ( unsigned int i = 0 ; i < v.size() ; i++ ) { … … 2486 2099 // Read 'name' attribute defined as double array from the FITS Scan Record 2487 2100 // 2488 int status = 0 ; 2489 2490 // skip header 2491 fseek( fp_, FITS_HEADER_SIZE, SEEK_SET ) ; 2492 2493 // find offset 2494 int offset = getOffset( name ) ; 2495 if ( offset == -1 ) { 2496 //cerr << "Error, " << name << " is not found in the name list." << endl ; 2497 return -1 ; 2498 } 2499 offset += idx * scanLen_ ; 2500 //cout << "offset for " << name << " is " << offset << " bytes." << endl ; 2501 fseek( fp_, offset, SEEK_CUR ) ; 2101 int status = movePointer( name, idx ) ; 2102 if ( status < 0 ) 2103 return status ; 2502 2104 2503 2105 for ( unsigned int i = 0 ; i < v.size() ; i++ ) { … … 2511 2113 } 2512 2114 2513 int NROFITSDataset::readColumn( vector<string> &v, char *name )2514 {2515 //2516 // Read 0-th column of ARRYTP-dependent 'name' attributes2517 // defined as char array from the FITS Scan Record2518 //2519 int status = readColumn( v, name, 0 ) ;2520 2521 return status ;2522 }2523 2524 2115 int NROFITSDataset::readColumn( vector<string> &v, char *name, int idx ) 2525 2116 { … … 2528 2119 // defined as char array from the FITS Scan Record 2529 2120 // 2530 int status = 0 ; 2531 2532 // skip header 2533 fseek( fp_, FITS_HEADER_SIZE, SEEK_SET ) ; 2534 2535 // find offset 2536 int offset = getOffset( name ) ; 2537 if ( offset == -1 ) { 2538 //cerr << "Error, " << name << " is not found in the name list." << endl ; 2539 return -1 ; 2540 } 2541 //cout << "offset for " << name << " is " << offset << " bytes." << endl ; 2542 fseek( fp_, offset, SEEK_CUR ) ; 2121 int status = movePointer( name ) ; 2122 if ( status < 0 ) 2123 return status ; 2543 2124 2544 2125 // get length of char … … 2555 2136 2556 2137 for ( unsigned int i = 0 ; i < v.size() ; i++ ) { 2557 offset = scanLen_ * arrayid_[i] + xsize * idx ;2138 int offset = scanLen_ * arrayid_[i] + xsize * idx ; 2558 2139 fseek( fp_, offset, SEEK_CUR ) ; 2559 2140 // int clen = (int)strlen( v[i] ) ; … … 2577 2158 } 2578 2159 2579 int NROFITSDataset::readColumn( vector<int> &v, char *name, int b )2580 {2581 //2582 // Read 0-th column of ARRYTP-dependent 'name' attributes2583 // defined as int array from the FITS Scan Record2584 //2585 int status = readColumn( v, name, b, 0 ) ;2586 2587 return status ;2588 }2589 2590 2160 int NROFITSDataset::readColumn( vector<int> &v, char *name, int b, int idx ) 2591 2161 { … … 2594 2164 // defined as int array from the FITS Scan Record 2595 2165 // 2596 int status = 0 ; 2597 2598 // skip header 2599 fseek( fp_, FITS_HEADER_SIZE, SEEK_SET ) ; 2600 2601 // find offset 2602 int offset = getOffset( name ) ; 2603 if ( offset == -1 ) { 2604 //cerr << "Error, " << name << " is not found in the name list." << endl ; 2605 return -1 ; 2606 } 2607 //cout << "offset for " << name << " is " << offset << " bytes." << endl ; 2608 fseek( fp_, offset, SEEK_CUR ) ; 2166 int status = movePointer( name ) ; 2167 if ( status < 0 ) 2168 return status ; 2609 2169 2610 2170 for ( unsigned int i = 0 ; i < v.size() ; i++ ) { 2611 offset = scanLen_ * arrayid_[i] + sizeof(int) * idx ;2171 int offset = scanLen_ * arrayid_[i] + sizeof(int) * idx ; 2612 2172 fseek( fp_, offset, SEEK_CUR ) ; 2613 2173 fread( &v[i], 1, sizeof(int), fp_ ) ; … … 2621 2181 } 2622 2182 2623 int NROFITSDataset::readColumn( vector<float> &v, char *name, int b )2624 {2625 //2626 // Read 0-th column of ARRYTP-dependent 'name' attributes2627 // defined as float array from the FITS Scan Record2628 //2629 int status = readColumn( v, name, b, 0 ) ;2630 2631 return status ;2632 }2633 2634 2183 int NROFITSDataset::readColumn( vector<float> &v, char *name, int b, int idx ) 2635 2184 { … … 2638 2187 // defined as float array from the FITS Scan Record 2639 2188 // 2640 int status = 0 ; 2641 2642 // skip header 2643 fseek( fp_, FITS_HEADER_SIZE, SEEK_SET ) ; 2644 2645 // find offset 2646 int offset = getOffset( name ) ; 2647 if ( offset == -1 ) { 2648 //cerr << "Error, " << name << " is not found in the name list." << endl ; 2649 return -1 ; 2650 } 2651 //cout << "offset for " << name << " is " << offset << " bytes." << endl ; 2652 fseek( fp_, offset, SEEK_CUR ) ; 2189 int status = movePointer( name ) ; 2190 if ( status < 0 ) 2191 return status ; 2653 2192 2654 2193 for ( unsigned int i = 0 ; i < v.size() ; i++ ) { 2655 offset = scanLen_ * arrayid_[i] + sizeof(float) * idx ;2194 int offset = scanLen_ * arrayid_[i] + sizeof(float) * idx ; 2656 2195 fseek( fp_, offset, SEEK_CUR ) ; 2657 2196 fread( &v[i], 1, sizeof(float), fp_ ) ; … … 2665 2204 } 2666 2205 2667 int NROFITSDataset::readColumn( vector<double> &v, char *name, int b )2668 {2669 //2670 // Read 0-th column of ARRYTP-dependent 'name' attributes2671 // defined as double array from the FITS Scan Record2672 //2673 int status = readColumn( v, name, b, 0 ) ;2674 2675 return status ;2676 }2677 2678 2206 int NROFITSDataset::readColumn( vector<double> &v, char *name, int b, int idx ) 2679 2207 { … … 2682 2210 // defined as double array from the FITS Scan Record 2683 2211 // 2684 int status = 0 ; 2685 2686 // skip header 2687 fseek( fp_, FITS_HEADER_SIZE, SEEK_SET ) ; 2688 2689 // find offset 2690 int offset = getOffset( name ) ; 2691 if ( offset == -1 ) { 2692 //cerr << "Error, " << name << " is not found in the name list." << endl ; 2693 return -1 ; 2694 } 2695 //cout << "offset for " << name << " is " << offset << " bytes." << endl ; 2696 fseek( fp_, offset, SEEK_CUR ) ; 2212 int status = movePointer( name ) ; 2213 if ( status < 0 ) 2214 return status ; 2697 2215 2698 2216 for ( unsigned int i = 0 ; i < v.size() ; i++ ) { 2699 offset = scanLen_ * arrayid_[i] + sizeof(double) * idx ;2217 int offset = scanLen_ * arrayid_[i] + sizeof(double) * idx ; 2700 2218 fseek( fp_, offset, SEEK_CUR ) ; 2701 2219 fread( &v[i], 1, sizeof(double), fp_ ) ; … … 2742 2260 } 2743 2261 2262 uInt NROFITSDataset::getPolNo( int irow ) 2263 { 2264 char rx[9] ; 2265 readTable( rx, "RX", 8, irow ) ; 2266 rx[8] = '\0' ; 2267 //cout << rx << endl ; 2268 return polNoFromRX( rx ) ; 2269 } 2270 2271 int NROFITSDataset::movePointer( char *name, int idx ) 2272 { 2273 // find offset 2274 int offset = getOffset( name ) ; 2275 if ( offset == -1 ) { 2276 //cerr << "Error, " << name << " is not found in the name list." << endl ; 2277 return -1 ; 2278 } 2279 2280 offset += idx * scanLen_ ; 2281 2282 //cout << "offset for " << name << " is " << offset << " bytes." << endl ; 2283 fseek( fp_, FITS_HEADER_SIZE+offset, SEEK_SET ) ; 2284 2285 return 0 ; 2286 } 2287 2744 2288 // double NROFITSDataset::toLSR( double v, double t, double x, double y ) 2745 2289 // {
Note:
See TracChangeset
for help on using the changeset viewer.
