Line data Source code
1 : #include <casacore/casa/BasicSL/String.h> 2 : #include <casacore/casa/Arrays/Array.h> 3 : #include <casacore/casa/Arrays/ArrayMath.h> 4 : #include <casacore/casa/Arrays/Array.h> 5 : #include <casacore/lattices/Lattices/ArrayLattice.h> 6 : #include <casacore/lattices/Lattices/PagedArray.h> 7 : #include <casacore/lattices/LEL/LatticeExpr.h> 8 : #include <casacore/lattices/LEL/LatticeExprNode.h> 9 : #include <casacore/casa/OS/File.h> 10 : #include <casacore/casa/Exceptions/Error.h> 11 : #include <casacore/casa/BasicSL/String.h> 12 : #include <casacore/casa/Utilities/Assert.h> 13 : #include <msvis/MSVis/VisSet.h> 14 : #include <msvis/MSVis/VisSetUtil.h> 15 : #include <msvis/MSVis/VisibilityIterator.h> 16 : #include <msvis/MSVis/VisBuffer.h> 17 : #include <sstream> 18 : #include <casacore/casa/Logging/LogMessage.h> 19 : #include <casacore/casa/Logging/LogIO.h> 20 : #include <casacore/casa/Logging/LogSink.h> 21 : #include <casacore/ms/MeasurementSets/MeasurementSet.h> 22 : #include <casacore/ms/MeasurementSets/MSColumns.h> 23 : #include <synthesis/MeasurementComponents/ReadMSAlgorithm.h> 24 : #include <casacore/casa/OS/Time.h> 25 : 26 : using namespace casacore; 27 : namespace casa { //# NAMESPACE CASA - BEGIN 28 : 29 0 : ReadMSAlgorithm::ReadMSAlgorithm() : /*msid(0),*/ myName("Test Parallel Read") 30 : { 31 : 32 0 : }; 33 0 : ReadMSAlgorithm::~ReadMSAlgorithm(){ 34 : 35 0 : }; 36 : 37 0 : void ReadMSAlgorithm::get(){ 38 : 39 0 : applicator.get(msName); 40 : 41 0 : }; 42 : 43 0 : void ReadMSAlgorithm::put(){ 44 : 45 0 : applicator.put(status); 46 : 47 0 : }; 48 : 49 0 : String& ReadMSAlgorithm::name(){ 50 : 51 0 : return myName; 52 : }; 53 : 54 0 : void ReadMSAlgorithm::task(){ 55 : 56 0 : status = 0; 57 0 : Time starttime; 58 : 59 : //if(msid==0) 60 : // msName="3C273XC1.ms"; 61 : 62 0 : cout <<" In task() " << endl; 63 : 64 : try{ 65 0 : MeasurementSet ms(msName, TableLock(TableLock::UserNoReadLocking), Table::Update); 66 : /*MeasurementSet ms(msName, Table::Old); 67 : Block<int> sort(4); 68 : sort[0] = MS::FIELD_ID; 69 : sort[1] = MS::ARRAY_ID; 70 : sort[2] = MS::DATA_DESC_ID 71 : sort[3] = MS::TIME; */ 72 0 : Block<Int> sort(0); 73 0 : Matrix<Int> noselection; 74 : 75 : 76 0 : Double interval=10.0; 77 : // ms.lock(); 78 0 : VisSet vs(ms, sort, noselection, interval); 79 : 80 0 : if(vs.numberAnt()) 81 0 : status = 1; 82 0 : ROVisIter& vi(vs.iter()); 83 0 : VisBuffer vb(vi); 84 : 85 0 : vi.origin(); 86 : 87 : //UNUSED: Int nchunk=0; 88 : 89 0 : for (vi.originChunks();vi.moreChunks();vi.nextChunk()) { 90 0 : for (vi.origin();vi.more();vi++) { 91 0 : Int nRow=vb.nRow(); 92 0 : Int nChan=vb.nChannel(); 93 0 : for (Int row=0; row<nRow; row++) { 94 0 : for (Int chn=0; chn<nChan; chn++) { 95 0 : if(!vb.flag()(chn,row)) { 96 : //UNUSED: Float f=vb.frequency()(chn)/C::c; 97 : //UNUSED: Float u=vb.uvw()(row)(0)*f; 98 : //UNUSED: Float v=vb.uvw()(row)(1)*f; 99 : //UNUSED: Float w=vb.uvw()(row)(2)*f; 100 : //UNUSED: Double wt=vb.imagingWeight()(chn,row); 101 : } 102 : } 103 : } 104 : } 105 : 106 : } 107 : /*for (vi.originChunks(); vi.moreChunks(); vi.nextChunk()){ 108 : // cout << "Chunk No " << nchunk++ << " Nchannel " << "Oh" << endl; 109 : 110 : 111 : }*/ 112 : // ms.unlock(); 113 : 114 0 : cout << "Doing a dummy uvw/weight read" << endl; 115 : 116 : 117 0 : }catch (AipsError x) { 118 0 : cout << "Exceptionally yours: " << x.getMesg() << endl; 119 : } 120 : 121 0 : cout << "seconds elapsed since start: " << starttime.age () << endl; 122 0 : }; 123 : 124 : 125 : 126 : 127 : 128 : } //# NAMESPACE CASA - END 129 :