All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines
Public Member Functions
QGpGuiWave::DispersionProxy Class Reference

Brief description of class still missing. More...

#include <DispersionProxy.h>

Inheritance diagram for QGpGuiWave::DispersionProxy:
QGpGuiWave::ModalProxy SciFigs::CurveBrowserProxy

List of all members.

Public Member Functions

virtual CurveBrowserProxyclone () const
virtual int columnCount () const
virtual QStringList columnFileTypes () const
virtual QString columnName (int col) const
virtual QString columnUnit (int col) const
virtual QVariant columnValue (int sample, int col) const
virtual QVector< int > defaultColumnFileTypes () const
virtual void parse (ColumnTextIterator &it)
virtual QVector< int > savedColumns () const
virtual void setColumnValue (int sample, int col, const QVariant &value)
virtual QString tag () const
virtual int xAxisColumn () const
virtual int xAxisInversedColumn () const
virtual int yAxisColumn () const
virtual int yAxisInversedColumn () const

Detailed Description

Brief description of class still missing.

Full description of class still missing


Member Function Documentation

virtual CurveBrowserProxy* QGpGuiWave::DispersionProxy::clone ( ) const [inline, virtual]

Implements SciFigs::CurveBrowserProxy.

{return new DispersionProxy;}
virtual int QGpGuiWave::DispersionProxy::columnCount ( ) const [inline, virtual]

Implements SciFigs::CurveBrowserProxy.

{return 7;}
QStringList QGpGuiWave::DispersionProxy::columnFileTypes ( ) const [virtual]

Implements SciFigs::CurveBrowserProxy.

References QGpCoreTools::tr(), and TRACE.

{
  TRACE;
  static QStringList types;
  if(types.isEmpty()) {
    types << tr("Frequency (Hz)")             // 1
          << tr("Period (s)")                 // 2
          << tr("Slowness (s/m)")             // 3
          << tr("Velocity (m/s)")             // 4
          << tr("Stddev (s/m)")               // 5
          << tr("Stddev (m/s, approx.)")      // 6
          << tr("Weight");                    // 7
  }
  return types;
}
QString QGpGuiWave::DispersionProxy::columnName ( int  col) const [virtual]

Implements SciFigs::CurveBrowserProxy.

References QGpCoreTools::tr(), and TRACE.

{
  TRACE;
  switch(col) {
    case 0: return tr("Frequency");
    case 1: return tr("Period");
    case 2: return tr("Slowness");
    case 3: return tr("Velocity");
    case 4: return tr("Wave length");
    case 5: return tr("Stddev");
    case 6: return tr("Weight");
    default: return QString::null;
  }
}
QString QGpGuiWave::DispersionProxy::columnUnit ( int  col) const [virtual]

Implements SciFigs::CurveBrowserProxy.

References QGpCoreTools::tr(), and TRACE.

{
  TRACE;
  switch(col) {
    case 0: return tr("Hz");
    case 1: return tr("s");
    case 2:
    case 5: return tr("s/m");
    case 3: return tr("m/s");
    case 4: return tr("m");
    default: return QString::null;
  }
}
QVariant QGpGuiWave::DispersionProxy::columnValue ( int  sample,
int  col 
) const [virtual]

Implements SciFigs::CurveBrowserProxy.

References QGpGuiWave::ModalProxy::curve(), QGpCoreTools::StatisticalValue< numberType >::mean(), QGpCoreTools::StatisticalValue< numberType >::stddev(), TRACE, QGpCoreTools::StatisticalValue< numberType >::weight(), and QGpCoreTools::StatisticalPoint< numberType >::x().

{
  TRACE;
  const FactoryPoint& p=curve()[sample];
  switch(col) {
  case 0: return p.x();
  case 1: return 1.0/p.x();
  case 2: return p.mean();
  case 3: return 1.0/p.mean();
  case 4: return 1.0/(p.x()*p.mean());
  case 5: return p.stddev();
  case 6: return p.weight();
  default: return QVariant();
  }
}

Implements SciFigs::CurveBrowserProxy.

References TRACE.

{
  TRACE;
  QVector<int> types;
  types << 1 << 3 << 5 << 7;
  return types;
}

Implements SciFigs::CurveBrowserProxy.

References QGpCoreTools::Curve< pointType >::append(), QGpCoreTools::ColumnTextIterator::atEnd(), QGpCoreTools::ColumnTextIterator::atSectionEnd(), QGpCoreWave::ModalCurve::clear(), QGpCoreTools::ColumnTextParser::columnCount(), QGpCoreTools::ColumnTextIterator::currentRow(), QGpGuiWave::ModalProxy::curve(), QGpCoreTools::Curve< pointType >::isEmpty(), QGpCoreTools::StatisticalValue< numberType >::mean(), QGpCoreTools::ColumnTextIterator::nextRow(), QGpCoreTools::ColumnTextIterator::parser(), QGpCoreTools::StatisticalValue< numberType >::setMean(), QGpCoreTools::StatisticalValue< numberType >::setStddev(), QGpCoreTools::StatisticalValue< numberType >::setWeight(), QGpCoreTools::StatisticalPoint< numberType >::setX(), QGpCoreTools::StatisticalValue< numberType >::stddev(), QGpCoreTools::ColumnTextParser::text(), TRACE, and QGpCoreTools::ColumnTextParser::type().

{
  TRACE;
  const ColumnTextParser * parser=it.parser();
  int nColumns=parser->columnCount();
  ModalCurve& c=curve();
  c.clear();
  while(!it.atEnd() && c.isEmpty()) {
    while(!it.atSectionEnd()) {
      FactoryPoint p;
      bool approxStdDev=false;
      for(int iCol=0;iCol<nColumns;iCol++) {
        switch(parser->type(iCol)) {
        case 1:
          p.setX(parser->text(it.currentRow(), iCol).toDouble());
          break;
        case 2:
          p.setX(1.0/parser->text(it.currentRow(), iCol).toDouble());
          break;
        case 3:
          p.setMean(parser->text(it.currentRow(), iCol).toDouble());
          break;
        case 4:
          p.setMean(1.0/parser->text(it.currentRow(), iCol).toDouble());
          break;
        case 5:
          p.setStddev(parser->text(it.currentRow(), iCol).toDouble());
          approxStdDev=false;
          break;
        case 6:
          p.setStddev(parser->text(it.currentRow(), iCol).toDouble());
          approxStdDev=true;
          break;
        case 7:
          p.setWeight(parser->text(it.currentRow(), iCol).toDouble());
          break;
       default:
          break;
        }
      }
      if(approxStdDev) {
        // Arithmetic average of the superior and inferior deviation in slowness domain.
        double v=1.0/p.mean();
        p.setStddev(p.stddev()/(v*v - p.stddev()*p.stddev()) );
      }
      c.append(p);
      it.nextRow();
    }
  }
}

Implements SciFigs::CurveBrowserProxy.

References TRACE.

{
  TRACE;
  QVector<int> l;
  l << 0 << 2 << 5 << 6;
  return l;
}
void QGpGuiWave::DispersionProxy::setColumnValue ( int  sample,
int  col,
const QVariant &  value 
) [virtual]

Implements SciFigs::CurveBrowserProxy.

References QGpGuiWave::ModalProxy::curve(), QGpCoreTools::StatisticalValue< numberType >::setMean(), QGpCoreTools::StatisticalValue< numberType >::setStddev(), QGpCoreTools::StatisticalValue< numberType >::setWeight(), QGpCoreTools::StatisticalPoint< numberType >::setX(), TRACE, and QGpCoreTools::StatisticalPoint< numberType >::x().

{
  TRACE;
  FactoryPoint& p=curve()[sample];
  switch(col) {
  case 0: p.setX(value.toDouble()); break;
  case 1: p.setX(1.0/value.toDouble()); break;
  case 2: p.setMean(value.toDouble()); break;
  case 3: p.setMean(1.0/value.toDouble()); break;
  case 4: p.setMean(1.0/(value.toDouble()*p.x()) ); break;
  case 5: p.setStddev(value.toDouble()); break;
  case 6: p.setWeight(value.toDouble()); break;
  default: break;
  }
}
virtual QString QGpGuiWave::DispersionProxy::tag ( ) const [inline, virtual]

Implements SciFigs::CurveBrowserProxy.

{return "DispersionProxy";}
virtual int QGpGuiWave::DispersionProxy::xAxisColumn ( ) const [inline, virtual]

Implements SciFigs::CurveBrowserProxy.

{return 0;}
virtual int QGpGuiWave::DispersionProxy::xAxisInversedColumn ( ) const [inline, virtual]

Implements SciFigs::CurveBrowserProxy.

{return 1;}
virtual int QGpGuiWave::DispersionProxy::yAxisColumn ( ) const [inline, virtual]

Implements SciFigs::CurveBrowserProxy.

{return 2;}
virtual int QGpGuiWave::DispersionProxy::yAxisInversedColumn ( ) const [inline, virtual]

Implements SciFigs::CurveBrowserProxy.

{return 3;}

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines