Public Types | Public Member Functions
StructureStation Class Reference

Brief description of class still missing. More...

#include <StructureStation.h>

Inheritance diagram for StructureStation:
MonoStation::AbstractStation

List of all members.

Public Types

enum  Transform { AddChannels, SubChannels }

Public Member Functions

virtual QString name () const
virtual QString name (int resultIndex) const
virtual void save (int resultIndex, QDir outputDir, bool askIndividualFileName)
void setTransform (Transform t)
virtual void start (AbstractToolParameters &param)
virtual void start (const TimeRangeList &twList, AbstractToolParameters &param)
 StructureStation (StructureStationSignals *sig)

Detailed Description

Brief description of class still missing.

Full description of class still missing


Member Enumeration Documentation

Enumerator:
AddChannels 
SubChannels 

Constructor & Destructor Documentation

Description of constructor still missing

References MonoStation::AbstractStation::_results, MonoStation::AbstractStation::changeColors(), GeopsyCore::StationSignals::coordinates(), GeopsyCore::StationSignals::nameComponent(), and TRACE.

  : AbstractStation(new StructureStationProcessSignals(sig))
{
  TRACE;
  _results.resize(4);
  for(int i=0; i<4; i++ ) {
    _results[i]=new StationResults;
    _results[i]->setStationName(sig->nameComponent());
    _results[i]->setCoordinates(sig->coordinates());
    connect(_results[i], SIGNAL(colorsToChange( const QVector<int>*, const QColor& )),
            this, SLOT(changeColors( const QVector<int>*, const QColor& )) );
  }
}

Member Function Documentation

virtual QString StructureStation::name ( ) const [inline, virtual]
QString StructureStation::name ( int  resultIndex) const [virtual]

Implements MonoStation::AbstractStation.

References AddChannels, name(), SubChannels, and TRACE.

{
  TRACE;
  QString transformName;
  switch(_transform) {
  case AddChannels: transformName="(c2+c1)/2"; break;
  case SubChannels: transformName="(c2-c1)"; break;
  }
  switch(resultIndex) {
  case 0: return (name()+": %1/c1").arg(transformName);
  case 1: return (name()+": %1/c2").arg(transformName);
  case 2: return name()+": c2/c1)";
  default: return (name()+": %1").arg(transformName);
  }
}
void StructureStation::save ( int  resultIndex,
QDir  outputDir,
bool  askIndividualFileName 
) [virtual]

Implements MonoStation::AbstractStation.

References MonoStation::AbstractStation::_log, MonoStation::AbstractStation::_results, MonoStation::AbstractStation::_signals, fileName, GeopsyCore::StationSignals::firstValidSignal(), GeopsyCore::Signal::id(), MSG_ID, GeopsyCore::StationSignals::name(), GeopsyCore::StationProcessSignals::originalSignals(), QGpCoreTools::tr(), and TRACE.

{
  TRACE;
  QString fileName=_signals->originalSignals()->name();
  if(askIndividualFileName) {
    fileName=Message::getSaveFileName(tr("Saving structure results"), tr("Structure file (*.struct)"));
  } else if(fileName.isEmpty()) {
    if(Message::warning(MSG_ID, tr("Saving structure results"),
                        tr("Signal (ID %1): empty station name, please provide a file name to export results")
                        .arg(_signals->originalSignals()->firstValidSignal()->id()),
                        Message::ok(), Message::cancel(), true)==Message::Answer1) {
      return;
    }
    fileName=Message::getSaveFileName(tr("Saving structure results"), tr("Structure file (*.struct)"));
  } else {
    fileName=outputDir.absoluteFilePath(fileName+"_"+tag(resultIndex)+".struct");
  }
  _results[resultIndex]->save(outputDir.absoluteFilePath(fileName+"_"+tag(resultIndex)+".struct"), _log);
}

Referenced by ToolStructure::initStations().

{_transform=t;}
void StructureStation::start ( AbstractToolParameters param) [virtual]

Implements MonoStation::AbstractStation.

References MonoStation::AbstractStation::_results, MonoStation::AbstractStation::_signals, MonoStation::AbstractStation::_windowsChanged, GeopsyCore::geopsyCore, GeopsyCore::TimeRange::lengthSeconds(), MonoStation::AbstractToolParameters::sampling(), GeopsyCore::StationProcessSignals::setProcessed(), GeopsyCore::GeopsyCoreEngine::setProgressMaximum(), GeopsyCore::GeopsyCoreEngine::setProgressValue(), structureRatiosPrefs, TRACE, StructureRatiosPrefs::visibleLayers(), MonoStation::AbstractStation::windowAt(), and MonoStation::AbstractStation::windowCount().

{
  TRACE;
  // Reset results to allow re-computation
  int n=windowCount();
  for(int ir=0; ir<4; ir++) {
    _results[ir]->setWindows(n, param.sampling());
  }
  // For each time window, create a signal for z, n and e, get fft and smooth it
  // Then add smoothed spectra to the HV sheet
  geopsyCore->setProgressMaximum(n-1);
  double wsum=0.0;
  for(int i=0;i<n;i++ ) {
    const TimeRange& r=windowAt(i);
    wsum += r.lengthSeconds();
    geopsyCore->setProgressValue(i);
    _signals->setProcessed(r, &param);
    for(int ir=0; ir<4; ir++) {
      ratio(ir, i, r);
      _results[ir]->setWindowColor(i, windowAt(i).color());
    }
  }
  wsum/=n;
  for(int ir=0; ir<4; ir++) {
    _results[ir]->setT10Layer(wsum);
    _results[ir]->setAverageLayer();
    _results[ir]->setPeakLayer();
    _results[ir]->setVisibleLayers(structureRatiosPrefs.visibleLayers());
  }
  _windowsChanged=false;
}
void StructureStation::start ( const TimeRangeList twList,
AbstractToolParameters param 
) [virtual]

Implements MonoStation::AbstractStation.

References QGpCoreTools::endl(), and TRACE.

{
  TRACE;
  App::stream() << "Not yet impleted" << endl;
}

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