Brief description of class still missing. More...
#include <LinearFKActiveArrayStations.h>
Public Member Functions | |
bool | addSignals (SubSignalPool *subPool) |
void | addTimeWindow (TimeRangeParameters &p) |
void | beginPreprocess (int winIndex, double smoothingFactor) |
void | clearTimeWindows () |
void | endPreprocess () |
bool | isSelected (int stationIndex) const |
bool | lockSamples () |
QString | name () |
void | normalize (const NormalizationParameters &p) |
double | propagationAzimuth () |
int | selectedCount () const |
void | selectStations (double minDist, double maxDist) |
void | setRelativeCoordinates () |
const QList< FKStationSignals * > | stations () const |
void | taper (const TimeRangeParameters &range, const TaperParameters ¶m) |
TimeWindowList * | timeWindows () |
void | unlockSamples () |
~LinearFKActiveArrayStations () |
Brief description of class still missing.
Full description of class still missing
{ qDeleteAll(_stations); }
bool LinearFKActiveArrayStations::addSignals | ( | SubSignalPool * | subPool | ) |
References GeopsyCore::StationList::hasAllComponents(), ArrayCore::ArrayStations::hasCompatibleStations(), QGpCoreTools::log(), MSG_ID, and QGpCoreTools::tr().
Referenced by ToolLinearFKActive::addArray().
{ QString log; if( !ArrayStations::addSignals(subPool, &log) || !hasAllComponents(&log) || !hasCompatibleStations(&log)) { Message::warning(MSG_ID, tr("Checking stations"), log, Message::cancel()); return false; } for(iterator it=begin(); it!= end(); it++ ) { _stations.append(new LinearFKActiveStationSignals(*it)); } return true; }
void LinearFKActiveArrayStations::beginPreprocess | ( | int | winIndex, |
double | smoothingFactor | ||
) |
References GeopsyGui::TimeWindowList::at(), LinearFKActiveStationSignals::beginPreprocess(), ArrayCore::FKStationSignals::isSelected(), and TRACE.
{ TRACE; const TimeRange& tw=_timeWindows.at(winIndex); for(QList<LinearFKActiveStationSignals *>::iterator it=_stations.begin(); it!= _stations.end(); it++ ) { LinearFKActiveStationSignals * s=*it; if(s->isSelected()) s->beginPreprocess(tw, smoothingFactor); } }
void LinearFKActiveArrayStations::clearTimeWindows | ( | ) | [inline] |
References GeopsyCore::TimeRangeList::clear().
{_timeWindows.clear();}
References LinearFKActiveStationSignals::endPreprocess(), ArrayCore::FKStationSignals::isSelected(), and TRACE.
{ TRACE; for(QList<LinearFKActiveStationSignals *>::iterator it=_stations.begin(); it!= _stations.end(); it++ ) { LinearFKActiveStationSignals * s=static_cast<LinearFKActiveStationSignals *>(*it); if(s->isSelected()) s->endPreprocess(); } }
bool LinearFKActiveArrayStations::isSelected | ( | int | stationIndex | ) | const |
{
return _stations.at(stationIndex)->isSelected();
}
lock process signals for all stations of the array. If successful, you must call UNLOCK_SAMPLES.
References QGpCoreTools::endl(), ArrayCore::FKStationSignals::isSelected(), GeopsyCore::StationProcessSignals::lockSamples(), QGpCoreTools::tr(), and TRACE.
{ TRACE; LinearFKActiveStationSignals * stat; int n=count(); for(int i=0; i<n; i++ ) { stat=_stations.at(i); if(stat->isSelected() && !stat->lockSamples()) { for(i--;i>=0;i--) _stations.at(i)->unlockSamples(); App::stream() << tr("cannot allocate all signals, increase memory buffer size\n") << endl; return false; } } return true; }
QString LinearFKActiveArrayStations::name | ( | ) |
void LinearFKActiveArrayStations::normalize | ( | const NormalizationParameters & | p | ) |
References ArrayCore::FKStationSignals::isSelected(), LinearFKActiveStationSignals::normalize(), and TRACE.
{ TRACE; for(QList<LinearFKActiveStationSignals *>::iterator it=_stations.begin(); it!= _stations.end(); it++ ) { LinearFKActiveStationSignals * s=*it; if(s->isSelected()) s->normalize(p); } }
int LinearFKActiveArrayStations::selectedCount | ( | ) | const |
void LinearFKActiveArrayStations::selectStations | ( | double | minDist, |
double | maxDist | ||
) |
Get array central point The center is usefull to use relative coordinates and hence to avoid big number computations
Reimplemented from ArrayCore::ArrayStations.
References ArrayCore::ArrayStations::relativeCoordinates(), and TRACE.
Referenced by ToolLinearFKActive::addArray().
{ TRACE; ArrayStations::setRelativeCoordinates(); for(int i=0; i<_stations.count(); i++ ) { _stations.at(i)->setRelativeCoordinates(relativeCoordinates(i)); } }
const QList< FKStationSignals * > LinearFKActiveArrayStations::stations | ( | ) | const |
{ QList<FKStationSignals *> s; for(QList<LinearFKActiveStationSignals *>::const_iterator it=_stations.begin(); it!=_stations.end(); it++) { s.append(static_cast<FKStationSignals *>(*it)); } return s; }
void LinearFKActiveArrayStations::taper | ( | const TimeRangeParameters & | range, |
const TaperParameters & | param | ||
) |
References ArrayCore::FKStationSignals::isSelected(), LinearFKActiveStationSignals::taper(), and TRACE.
{ TRACE; for(QList<LinearFKActiveStationSignals *>::iterator it=_stations.begin(); it!= _stations.end(); it++ ) { LinearFKActiveStationSignals * s=*it; if(s->isSelected()) s->taper(range, param); } }
TimeWindowList* LinearFKActiveArrayStations::timeWindows | ( | ) | [inline] |
{return &_timeWindows;}
Can be called only after a successful LOCK_SAMPLES.
References ArrayCore::FKStationSignals::isSelected(), TRACE, and GeopsyCore::StationProcessSignals::unlockSamples().
{ TRACE; for(QList<LinearFKActiveStationSignals *>::iterator it=_stations.begin();it!=_stations.end();++it) { LinearFKActiveStationSignals * stat=*it; if(stat->isSelected()) stat->unlockSamples(); } }