Changeset 1525


Ignore:
Timestamp:
03/13/09 11:55:57 (16 years ago)
Author:
Malte Marquarding
Message:

Tagged 2.3.0 release

Location:
tags/asap2.3.0
Files:
4 edited
3 copied

Legend:

Unmodified
Added
Removed
  • tags/asap2.3.0/apps/test.cpp

    r1407 r1525  
    1010
    1111int main() {
    12   const string fname = "/Users/mar637/data/test.asap";
    13   //const string fname = "test/data/tid-t002.rpf";
    14   //STFillerWrapper stf(fname);
    15   //cout << "reading ..." << endl;
    16   //stf.read();
    17  
    18   casa::CountedPtr<Scantable>  st(new Scantable(fname, casa::Table::Plain));
     12  const string fname0 = "/tmp/ASAP_problem/c082812231.rpf";
     13  ScantableWrapper stw0(0);
     14  STFillerWrapper stf0(stw0);
     15  cout << "reading ..." << endl;
     16  stf0.open(fname0);
     17  stf0.read();
     18  stf0.close();
     19
    1920  STMath stm;
     21  vector<bool> msk;
     22  vector<casa::CountedPtr<Scantable> > l0;
     23  l0.push_back(stw0.getCP());
     24  casa::CountedPtr<Scantable> av0 = stm.average(l0,msk, "NONE", "SCAN");
     25
     26  const string fname1 = "/tmp/ASAP_problem/c082880100.rpf";
     27  ScantableWrapper stw1(0);
     28  STFillerWrapper stf1(stw1);
     29  cout << "reading ..." << endl;
     30  stf1.open(fname1);
     31  stf1.read();
     32  stf1.close();
     33  vector<casa::CountedPtr<Scantable> > l1;
     34  l1.push_back(stw1.getCP());
     35  casa::CountedPtr<Scantable> av1 = stm.average(l1,msk, "NONE", "SCAN");
     36
    2037  vector<casa::CountedPtr<Scantable> > on;
    21   on.push_back(st);
    22   cout << "averaging..." << endl;
    23   casa::CountedPtr<Scantable> avst = stm.average(on);
    24   /*
    25   cout << "quotient" << endl;
    26   casa::CountedPtr<Scantable> quot = stm.autoQuotient(avst);
    27   cout << quot->summary() << endl;
    28   */
     38  on.push_back(av0);
     39  on.push_back(av1);
     40 
     41  casa::CountedPtr<Scantable> avst = stm.merge(on);
     42  //avst->makePersistent("t.asap");
    2943  return 0;
    3044
  • tags/asap2.3.0/src/Scantable.cpp

    r1507 r1525  
    4949#include <measures/Measures/MCDirection.h>
    5050//
     51#include <measures/Measures/MCRadialVelocity.h>
     52#include <measures/Measures/MCDoppler.h>
    5153#include <measures/Measures/MDirection.h>
    5254#include <measures/Measures/MFrequency.h>
     
    912914  if ( Unit(us) == Unit("Hz") ) {
    913915    for ( int i=0; i < nchan; ++i) {
    914       Double world;
    915       spc.toWorld(world, pixel[i]);
    916       stlout.push_back(double(world));
     916      Double worldi;
     917      spc.toWorld(worldi, pixel[i]);
     918      stlout.push_back(double(worldi));
    917919    }
    918920  } else if ( Unit(us) == Unit("km/s") ) {
    919     Vector<Double> world;
    920     spc.pixelToVelocity(world, pixel);
    921     world.tovector(stlout);
     921   
     922    MeasFrame frame(mp,md,me);
     923    MRadialVelocity::Types refin, refout;
     924    MFrequency::Types refinfreq = freqTable_.getFrame(true);
     925    MRadialVelocity::getType(refin, freqTable_.getFrameString(true));
     926    MRadialVelocity::getType(refout, freqTable_.getFrameString(false));
     927    SpectralCoordinate spc1 =
     928      freqTable_.getSpectralCoordinate(mfreqidCol_(whichrow));
     929   
     930    MRadialVelocity::Ref rin(refin, frame);
     931    MRadialVelocity::Ref rout(refout, frame);
     932    MRadialVelocity::Convert cnv(rin, rout);
     933    Vector<Double> worlds(2); 
     934    Double deltav;
     935    for ( int i=0; i < nchan; ++i) {     
     936     
     937      Double worldi;
     938      if (i == 0) {
     939        for (uInt k = 0; k<2;++k) {
     940          spc1.toWorld(worlds[i+k], pixel[i+k]);
     941          MDoppler mdop =                               \
     942            MFrequency(Quantity(worlds[i+k], "Hz"),
     943                       refinfreq).toDoppler(Quantity(rf, "Hz"));
     944          MRadialVelocity mrv = MRadialVelocity::fromDoppler(mdop, refin);
     945          MRadialVelocity mrvo =  cnv(mrv);
     946          //worlds[i+k] = cnv(mrv).get(us).getValue();
     947         
     948            MDoppler mdopo = MDoppler::Convert(mrvo.toDoppler(),
     949            MDoppler::RADIO)();
     950            MFrequency mf = MFrequency::fromDoppler(mdopo,
     951            MVFrequency(Quantity(rf, "Hz")));
     952            worlds[i+k] = mf.get("GHz").getValue();
     953       
     954        }
     955      }     
     956      deltav = worlds[1]-worlds[0];
     957      worldi = worlds[0] + Double(i)*deltav;
     958      stlout.push_back(double(worldi));
     959    }
     960    cout << worlds[0] << " + " << deltav <<  "+" << spc1.increment() << endl;
    922961  }
    923962  return stlout;
  • tags/asap2.3.0/src/ScantableWrapper.h

    r1430 r1525  
    120120    { return table_->getParAngle(whichrow); }
    121121
     122  std::vector<double> getAntennaPosition() const
     123    {   
     124      std::vector<double> stlout;
     125      casa::Vector<casa::Double> vec = 
     126        table_->getAntennaPosition().getAngle().getValue();
     127      vec.tovector(stlout);
     128      return stlout;
     129    }
    122130
    123131  void setSpectrum(std::vector<float> spectrum, int whichrow=0)
  • tags/asap2.3.0/src/python_Scantable.cpp

    r1440 r1525  
    124124    .def("_setsourcetype", &ScantableWrapper::setSourceType)
    125125    .def("_getdirectionvec", &ScantableWrapper::getDirectionVector)
     126    .def("_getantennapos",  &ScantableWrapper::getAntennaPosition)
    126127  ;
    127128};
Note: See TracChangeset for help on using the changeset viewer.