Ignore:
Timestamp:
03/07/13 18:45:58 (11 years ago)
Author:
Takeshi Nakazato
Message:

New Development: No

JIRA Issue: No

Ready for Test: Yes

Interface Changes: No

What Interface Changed: Please list interface changes

Test Programs: List test programs

Put in Release Notes: Yes/No?

Module(s): Module Names change impacts.

Description: Describe your changes here...

Refactoring NRO filler.


File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/external-alma/atnf/PKSIO/ASTEDataset.cc

    r2781 r2782  
    4141ASTEDataset::ASTEDataset( string name )
    4242  : 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{}
    6744
    6845// destructor
    6946ASTEDataset::~ASTEDataset()
    70 {
    71 }
     47{}
    7248
    7349// data initialization
    7450void ASTEDataset::initialize()
    7551{
    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
    12471    + 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
    14573}
    14674
     
    14876{
    14977  LogIO os( LogOrigin( "ASTEDataset", "fillHeader()", WHERE ) ) ;
     78
     79  int arymax = arrayMax();
    15080
    15181  string str4( 4, ' ' ) ;
     
    521451  //cout << "PA = " << PA << endl ;
    522452  //
    523   for ( int i = 0 ; i < ASTE_ARYMAX ; i++ ) {
     453  for ( int i = 0 ; i < arymax ; i++ ) {
    524454    strcpy( c18, str18.c_str() ) ;
    525455    if ( readHeader( c18, 16 ) == -1 ) {
     
    531461  }
    532462  // 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++ ) {
    536466    if ( readHeader( HPBW[i], sameEndian ) == -1 ) {
    537467      os << LogIO::WARN << "Error while reading data HPBW[" << i << "]." << LogIO::POST ;
     
    540470  }
    541471  // 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++ ) {
    545475    if ( readHeader( EFFA[i], sameEndian ) == -1 ) {
    546476      os << LogIO::WARN << "Error while reading data EFFA[" << i << "]." << LogIO::POST ;
     
    549479  }
    550480  // 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++ ) {
    554484    if ( readHeader( EFFB[i], sameEndian ) == -1 ) {
    555485      os << LogIO::WARN << "Error while reading data EFFB[" << i << "]." << LogIO::POST ;
     
    558488  }
    559489  // 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++ ) {
    563493    if ( readHeader( EFFL[i], sameEndian ) == -1 ) {
    564494      os << LogIO::WARN << "Error while reading data EFFL[" << i << "]." << LogIO::POST ;
     
    567497  }
    568498  // 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++ ) {
    572502    if ( readHeader( EFSS[i], sameEndian ) == -1 ) {
    573503      os << LogIO::WARN << "Error while reading data EFSS[" << i << "]." << LogIO::POST ;
     
    576506  }
    577507  // 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++) {
    581511    if ( readHeader( GAIN[i], sameEndian ) == -1 ) {
    582512      os << LogIO::WARN << "Error while reading data GAIN[" << i << "]." << LogIO::POST ;
     
    585515  }
    586516  // 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++) {
    590520    strcpy( c4, str4.c_str() ) ;
    591521    if ( readHeader( c4, 4 ) == -1 ) {
     
    596526  }
    597527  // 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++) {
    601531    strcpy( c4, str4.c_str() ) ;
    602532    if ( readHeader( c4, 4 ) == -1 ) {
     
    607537  }
    608538  // 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++) {
    612542    if ( readHeader( POLDR[i], sameEndian ) == -1 ) {
    613543      os << LogIO::WARN << "Error while reading data POLDR[" << i << "]." << LogIO::POST ;
     
    616546  }
    617547  // 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++) {
    621551    if ( readHeader( POLAN[i], sameEndian ) == -1 ) {
    622552      os << LogIO::WARN << "Error while reading data POLAN[" << i << "]." << LogIO::POST ;
     
    625555  }
    626556  // 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++) {
    630560    if ( readHeader( DFRQ[i], sameEndian ) == -1 ) {
    631561      os << LogIO::WARN << "Error while reading data DFRQ[" << i << "]." << LogIO::POST ;
     
    634564  }
    635565  // 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++) {
    639569    strcpy( c4, str4.c_str() ) ;
    640570    if ( readHeader( c4, 4 ) == -1 ) {
     
    645575  }
    646576  // 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++) {
    650580    if ( readHeader( REFN[i], sameEndian ) == -1 ) {
    651581      os << LogIO::WARN << "Error while reading data REFN[" << i << "]." << LogIO::POST ;
     
    654584  }
    655585  // 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++) {
    659589    if ( readHeader( IPINT[i], sameEndian ) == -1 ) {
    660590      os << LogIO::WARN << "Error while reading data IPINT[" << i << "]." << LogIO::POST ;
     
    663593  }
    664594  // 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++) {
    668598    if ( readHeader( MULTN[i], sameEndian ) == -1 ) {
    669599      os << LogIO::WARN << "Error while reading data MULTN[" << i << "]." << LogIO::POST ;
     
    672602  }
    673603  // 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++) {
    677607    if ( readHeader( MLTSCF[i], sameEndian ) == -1 ) {
    678608      os << LogIO::WARN << "Error while reading data MLTSCF[" << i << "]." << LogIO::POST ;
     
    681611  }
    682612  // 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++) {
    686616    strcpy( c8, str8.c_str() ) ;
    687617    if ( readHeader( c8, 8 ) == -1 ) {
     
    692622  }
    693623  // 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++) {
    697627    if ( readHeader( BEBW[i], sameEndian ) == -1 ) {
    698628      os << LogIO::WARN << "Error while reading data BEBW[" << i << "]." << LogIO::POST ;
     
    701631  }
    702632  // 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++) {
    706636    if ( readHeader( BERES[i], sameEndian ) == -1 ) {
    707637      os << LogIO::WARN << "Error while reading data BERES[" << i << "]." << LogIO::POST ;
     
    710640  }
    711641  // 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++) {
    715645    if ( readHeader( CHWID[i], sameEndian ) == -1 ) {
    716646      os << LogIO::WARN << "Error while reading data CHWID[" << i << "]." << LogIO::POST ;
     
    719649  }
    720650  // 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++) {
    724654    if ( readHeader( ARRY[i], sameEndian ) == -1 ) {
    725655      os << LogIO::WARN << "Error while reading data ARRY[" << i << "]." << LogIO::POST ;
     
    728658  }
    729659  // 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++) {
    733663    if ( readHeader( NFCAL[i], sameEndian ) == -1 ) {
    734664      os << LogIO::WARN << "Error while reading data NFCAL[" << i << "]." << LogIO::POST ;
     
    737667  }
    738668  // 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++) {
    742672    if ( readHeader( F0CAL[i], sameEndian ) == -1 ) {
    743673      os << LogIO::WARN << "Error while reading data F0CAL[" << i << "]." << LogIO::POST ;
     
    746676  }
    747677  // 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++) {
    751681    for ( int j = 0 ; j < 10 ; j++ ) {
    752682      if ( readHeader( FQCAL[i][j], sameEndian ) == -1 ) {
     
    757687  }
    758688  // 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++) {
    762692    for ( int j = 0 ; j < 10 ; j++ ) {
    763693      if ( readHeader( CHCAL[i][j], sameEndian ) == -1 ) {
     
    768698  }
    769699  // 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++) {
    773703    for ( int j = 0 ; j < 10 ; j++ ) {
    774704      if ( readHeader( CWCAL[i][j], sameEndian ) == -1 ) {
     
    779709  }
    780710  // DEBUG
    781 //   nro_debug_output( "CWCAL", ASTE_ARYMAX, 10, CWCAL ) ;
     711//   nro_debug_output( "CWCAL", arymax, 10, CWCAL ) ;
    782712  //
    783713  if ( readHeader( SCNLEN, sameEndian ) == -1 ) {
     
    821751  //cout << "CDMY1 = " << CDMY1 << endl ;
    822752  //
    823   for ( int i = 0 ; i < ASTE_ARYMAX ; i++ ) {
     753  for ( int i = 0 ; i < arymax ; i++ ) {
    824754    if ( readHeader( DSBFC[i], sameEndian ) == -1 ) {
    825755      os << LogIO::WARN << "Error while reading data DSBFC[" << i << "]." << LogIO::POST ;
     
    828758  }
    829759  // 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  //
    844762
    845763  return 0 ;
Note: See TracChangeset for help on using the changeset viewer.