Public Member Functions
SpectrumStation Class Reference

Brief description of class still missing. More...

#include <SpectrumStation.h>

Inheritance diagram for SpectrumStation:
MonoStation::AbstractStation

List of all members.

Public Member Functions

virtual QString name () const
virtual QString name (int) const
virtual void save (int, QDir outputDir, bool askIndividualFileName)
 SpectrumStation (StationSignals *sig)
virtual void start (AbstractToolParameters &param)
virtual void start (const TimeRangeList &twList, AbstractToolParameters &param)

Detailed Description

Brief description of class still missing.

Full description of class still missing


Constructor & Destructor Documentation

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

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

Member Function Documentation

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

Implements MonoStation::AbstractStation.

References name().

Referenced by name().

{return name();}
void SpectrumStation::save ( int  ,
QDir  outputDir,
bool  askIndividualFileName 
) [virtual]

Implements MonoStation::AbstractStation.

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

{
  TRACE;
  Signal * sig=_signals->originalSignals()->firstValidSignal();
  ASSERT(sig);
  QString fileName;
  if(askIndividualFileName) {
    fileName=Message::getSaveFileName(tr("Saving spectrum results"), tr("Spectrum file (*.spec)"));
  } else if(sig->name().isEmpty()) {
    if(Message::warning(MSG_ID, tr("Saving spectrum results"),
                        tr("Spectrum of %1 at (%2): empty station name, please provide a file name to export results")
                        .arg(Signal::componentLetter(sig->component()))
                        .arg(_signals->originalSignals()->coordinates().toString(0, 'f')),
                        Message::ok(), Message::cancel(), true)==Message::Answer1) {
      return;
    }
    fileName=Message::getSaveFileName(tr("Saving spectrum results"), tr("Spectrum file (*.spec)"));
  } else {
    fileName=outputDir.absoluteFilePath(sig->name()+"_"+Signal::componentLetter(sig->component())+".spec");
  }
  _results[0]->save(fileName, _log);
}
void SpectrumStation::start ( AbstractToolParameters param) [virtual]

Implements MonoStation::AbstractStation.

References MonoStation::AbstractStation::_results, MonoStation::AbstractStation::_signals, MonoStation::AbstractStation::_windowsChanged, GeopsyCore::StationSignals::deltaT(), GeopsyCore::geopsyCore, hvPrefs, GeopsyCore::TimeRange::lengthSamples(), GeopsyCore::StationProcessSignals::originalSignals(), GeopsyCore::StationProcessSignals::processed(), MonoStation::AbstractToolParameters::sampling(), GeopsyCore::StationProcessSignals::setProcessed(), GeopsyCore::GeopsyCoreEngine::setProgressMaximum(), GeopsyCore::GeopsyCoreEngine::setProgressValue(), GeopsyHVPrefs::spectrumVisibleLayers(), TRACE, MonoStation::AbstractStation::windowAt(), and MonoStation::AbstractStation::windowCount().

Referenced by start().

{
  TRACE;
  // Reset results to allow re-computation
  _results[0]->setWindows(windowCount(), 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
  int n=windowCount();
  geopsyCore->setProgressMaximum(n-1);
  double wsum=0;
  double deltaT=_signals->originalSignals()->deltaT();
  for(int i=0; i<n; i++) {
    const TimeRange& r=windowAt(i);
    wsum += r.lengthSamples(deltaT);
    geopsyCore->setProgressValue(i);
    _signals->setProcessed(r, &param);
    _results[0]->setWindow(i, _signals->processed(0));
    _results[0]->setWindowColor(i,windowAt(i).color());
  }
  wsum*=deltaT/n;
  _results[0]->setT10Layer(wsum);
  _results[0]->setAverageLayer();
  _results[0]->setPeakLayer();
  _results[0]->setVisibleLayers(hvPrefs.spectrumVisibleLayers());
  _windowsChanged=false;
}
void SpectrumStation::start ( const TimeRangeList twList,
AbstractToolParameters param 
) [virtual]

Implements MonoStation::AbstractStation.

References MonoStation::AbstractStation::_results, MonoStation::AbstractStation::_signals, GeopsyCore::TimeRangeList::at(), GeopsyCore::TimeRangeList::count(), GeopsyCore::StationProcessSignals::processed(), GeopsyCore::StationProcessSignals::setProcessed(), start(), and TRACE.

{
  TRACE;
  int oldNofWindows=_results[0]->windowCount();
  if(oldNofWindows==0) {
    start(param);
  } else {
    int n=twList.count();
    _results[0]->addWindows(n);
    for(int i=0; i<n; i++ ) {
      _signals->setProcessed(twList.at(i), &param);
      _results[0]->setWindow(oldNofWindows+i, _signals->processed(0));
    }
  }
  _results[0]->setAverageLayer();
}

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