#include <HRFKLoop.h>
Public Member Functions | |
virtual void | setArray (const ArrayStations &array) |
virtual void | setGrid () |
Protected Member Functions | |
virtual void | getPower (const Point2D &pos, double &beampower, double &semblance) |
virtual void | initGridValues () |
void HRFKLoopTask::getPower | ( | const Point2D & | pos, |
double & | beampower, | ||
double & | semblance | ||
) | [protected, virtual] |
Reimplemented from FKLoopTask.
References FKLoopTask::_currentComponent, FKLoopTask::_grid, FKLoopTask::_nStations2, FKLoopTask::_process, ArrayCore::FrequencyBand::center(), ArrayCore::ArrayProcess::frequency(), ArrayCore::FKGridSearch::function(), TRACE, ArrayCore::FK::value(), ArrayCore::FrequencyBand::width(), QGpCoreTools::Point2D::x(), and QGpCoreTools::Point2D::y().
{ TRACE; const FK * fk=_grid[_currentComponent]->function(); beampower=fk->value(pos.x(), pos.y()); semblance=beampower; // Normalizations by number of stations or band width const FrequencyBand& fb=_process->frequency(); double freqBandWidth= fb.width(); if(freqBandWidth > 0.0) beampower=10.0 * log10(beampower/(0.5 * freqBandWidth * _nStations2) ); else beampower=10.0 * log10(beampower/(fb.center() * _nStations2) ); }
void HRFKLoopTask::initGridValues | ( | ) | [protected, virtual] |
Reimplemented from FKLoopTask.
References FKLoopTask::_currentComponent, FKLoopTask::_grid, FKLoopTask::_process, ArrayCore::HRFK::crossCorrelationMatrix(), ArrayCore::HRFKParameters::damping(), ArrayCore::FKGridSearch::function(), ArrayCore::HRFK::initOperator(), ArrayCore::FKArrayProcess::parameters(), and TRACE.
{ TRACE; const HRFKParameters * param=static_cast<const HRFKParameters *>(_process->parameters()); HRFK * fk=static_cast<HRFK *>(_grid[_currentComponent]->function()); fk->initOperator(fk->crossCorrelationMatrix(_currentComponent), param->damping()); }
void HRFKLoopTask::setArray | ( | const ArrayStations & | array | ) | [virtual] |
Reimplemented from FKLoopTask.
References FKLoopTask::_process, ArrayCore::ArrayProcess::setTimeRangeList(), and TRACE.
Referenced by HRFKLoop::newTask().
{ TRACE; _process=new HRFKArrayProcess(array); _process->setTimeRangeList(new TimeWindowList); }
void HRFKLoopTask::setGrid | ( | ) | [virtual] |
Reimplemented from FKLoopTask.
References FKLoopTask::_grid, FKLoopTask::_loop, FKLoopTask::_process, ArrayCore::FKArrayProcess::function(), ArrayCore::FKGridSearch::function(), FKLoop::hasComponent(), ArrayCore::FKParameters::maximumSlowness(), ArrayCore::FKParameters::maximumWaveNumber(), ArrayCore::FKParameters::minimumWaveNumber(), ArrayCore::FKArrayProcess::parameters(), ArrayCore::FKGridSearch::setFunction(), ArrayCore::FKGridSearch::setGrid(), ArrayCore::FK::setMaximumSlowness(), and TRACE.
Referenced by HRFKLoop::newTask().
{ TRACE; for(int iComp=0; iComp<3; iComp++) { if(_loop->hasComponent(iComp)) { _grid[iComp]=new HRFKGridSearch; _grid[iComp]->setFunction(static_cast<HRFK *>(_process->function(iComp))); const FKParameters * param=_process->parameters(); _grid[iComp]->setGrid(param->minimumWaveNumber(), param->maximumWaveNumber()); _grid[iComp]->function()->setMaximumSlowness(param->maximumSlowness()); } } }