Changeset 2593 for trunk/src/STGrid.cpp
- Timestamp:
- 07/09/12 16:54:10 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/STGrid.cpp
r2478 r2593 1185 1185 } 1186 1186 1187 void STGrid::table( Table &tab, uInt i ) 1188 { 1189 if ( i >= 0 && i < nfile_ ) 1190 tab = Table( infileList_[i] ) ; 1191 } 1192 1187 1193 void STGrid::selectData() 1188 1194 { … … 1191 1197 tableList_.resize( nfile_ ) ; 1192 1198 if ( ifno_ == -1 ) { 1193 Table taborg( infileList_[0] ) ; 1199 //Table taborg( infileList_[0] ) ; 1200 Table taborg ; 1201 table( taborg, 0 ) ; 1194 1202 ROScalarColumn<uInt> ifnoCol( taborg, "IFNO" ) ; 1195 1203 ifno_ = ifnoCol( 0 ) ; … … 1198 1206 } 1199 1207 for ( uInt i = 0 ; i < nfile_ ; i++ ) { 1200 Table taborg( infileList_[i] ) ; 1208 //Table taborg( infileList_[i] ) ; 1209 Table taborg ; 1210 table( taborg, i ) ; 1201 1211 TableExprNode node ; 1202 1212 if ( ifno != -1 || isMultiIF( taborg ) ) { … … 1639 1649 Table tab ; 1640 1650 prepareTable( tab, outfile_ ) ; 1651 fillTable( tab ) ; 1652 1653 t1 = mathutil::gettimeofday_sec() ; 1654 os << LogIO::DEBUGGING << "saveData: elapsed time is " << t1-t0 << " sec." << LogIO::POST ; 1655 1656 return outfile_ ; 1657 } 1658 1659 void STGrid::prepareTable( Table &tab, String &name ) 1660 { 1661 Table t( infileList_[0], Table::Old ) ; 1662 t.deepCopy( name, Table::New, False, t.endianFormat(), True ) ; 1663 tab = Table( name, Table::Update ) ; 1664 // 2012/02/13 TN 1665 // explicitly copy subtables since no rows including subtables are 1666 // copied by Table::deepCopy with noRows=True 1667 TableCopy::copySubTables( tab, t ) ; 1668 } 1669 1670 void STGrid::fillTable( Table &tab ) 1671 { 1641 1672 IPosition dshape = data_.shape() ; 1642 1673 Int nrow = nx_ * ny_ * npol_ ; … … 1687 1718 data_.freeStorage( data_p, bdata ) ; 1688 1719 1689 t1 = mathutil::gettimeofday_sec() ;1690 os << LogIO::DEBUGGING << "saveData: elapsed time is " << t1-t0 << " sec." << LogIO::POST ;1691 1692 1720 fillMainColumns( tab ) ; 1693 1694 return outfile_ ;1695 }1696 1697 void STGrid::prepareTable( Table &tab, String &name )1698 {1699 Table t( infileList_[0], Table::Old ) ;1700 t.deepCopy( name, Table::New, False, t.endianFormat(), True ) ;1701 tab = Table( name, Table::Update ) ;1702 // 2012/02/13 TN1703 // explicitly copy subtables since no rows including subtables are1704 // copied by Table::deepCopy with noRows=True1705 TableCopy::copySubTables( tab, t ) ;1706 1721 } 1707 1722 … … 1779 1794 } 1780 1795 1781 } 1796 // STGrid2 1797 STGrid2::STGrid2() 1798 : STGrid() 1799 { 1800 } 1801 1802 STGrid2::STGrid2( const ScantableWrapper &s ) 1803 : STGrid() 1804 { 1805 setScantable( s ) ; 1806 } 1807 1808 STGrid2::STGrid2( const vector<ScantableWrapper> &v ) 1809 : STGrid() 1810 { 1811 setScantableList( v ) ; 1812 } 1813 1814 void STGrid2::setScantable( const ScantableWrapper &s ) 1815 { 1816 nfile_ = 1 ; 1817 dataList_.resize( nfile_ ) ; 1818 dataList_[0] = s ; 1819 infileList_.resize( nfile_ ) ; 1820 infileList_[0] = s.getCP()->table().tableName() ; 1821 } 1822 1823 void STGrid2::setScantableList( const vector<ScantableWrapper> &v ) 1824 { 1825 nfile_ = v.size() ; 1826 dataList_.resize( nfile_ ) ; 1827 infileList_.resize( nfile_ ) ; 1828 for ( uInt i = 0 ; i < nfile_ ; i++ ) { 1829 dataList_[i] = v[i] ; 1830 infileList_[i] = v[i].getCP()->table().tableName() ; 1831 } 1832 } 1833 1834 ScantableWrapper STGrid2::getResultAsScantable() 1835 { 1836 CountedPtr<Scantable> s = new Scantable( Table::Plain ) ; 1837 s->setHeader( dataList_[0].getCP()->getHeader() ) ; 1838 Table tout, tin ; 1839 String subt[] = { "FREQUENCIES", "FOCUS", "WEATHER", 1840 "TCAL", "MOLECULES", "HISTORY", "FIT" } ; 1841 for ( uInt i = 0 ; i < 7 ; i++ ) { 1842 tout = s->table().rwKeywordSet().asTable(subt[i]) ; 1843 tin = dataList_[0].getCP()->table().rwKeywordSet().asTable(subt[i]) ; 1844 TableCopy::copyRows( tout, tin ) ; 1845 } 1846 fillTable( s->table() ) ; 1847 ScantableWrapper sw( s ) ; 1848 return sw ; 1849 } 1850 1851 void STGrid2::table( Table &tab, uInt i ) 1852 { 1853 if ( i < nfile_ ) 1854 tab = dataList_[i].getCP()->table() ; 1855 } 1856 1857 }
Note: See TracChangeset
for help on using the changeset viewer.