#include <SPACStationSignals.h>
Public Member Functions | |
| virtual void | setProcessed (const TimeRange &tw, AbstractParameters *param) |
| SPACStationSignals (const StationSignals *originalSignals) | |
| double | verticalPower () const |
| ArrayCore::SPACStationSignals::SPACStationSignals | ( | const StationSignals * | originalSignals | ) |
: StationProcessSignals(originalSignals) { _verticalPower=0.0; }
| void ArrayCore::SPACStationSignals::setProcessed | ( | const TimeRange & | tw, |
| AbstractParameters * | param | ||
| ) | [virtual] |
Cut and filter time window at frequency f for all components
Implements GeopsyCore::StationProcessSignals.
References GeopsyCore::FilterParameters::convolutionWindow(), GeopsyCore::StationProcessSignals::copyOriginalSignal(), GeopsyCore::DoubleSignal::filter(), ArrayCore::ArrayProcess::frequency(), ArrayCore::FrequencyBand::highLimit(), ArrayCore::FrequencyBand::lowLimit(), GeopsyCore::StationProcessSignals::nComponents(), GeopsyCore::StationProcessSignals::processed(), GeopsyCore::TaperParameters::setAlpha(), GeopsyCore::FilterParameters::setBand(), GeopsyCore::FilterParameters::setMaximumFrequency(), GeopsyCore::FilterParameters::setMethod(), GeopsyCore::FilterParameters::setMinimumFrequency(), GeopsyCore::TaperParameters::setWindow(), GeopsyCore::DoubleSignal::subtractValue(), and GeopsyCore::DoubleSignal::taper().
{
ArrayProcess& arrayParam=*static_cast<ArrayProcess *>(param);
int nComp=nComponents();
for(int iComp=0; iComp < nComp; iComp++) {
copyOriginalSignal(iComp, tw);
DoubleSignal& s=*processed(iComp);
// Remove offset for this window
s.subtractValue();
// Set a 10% taper in time domain
TaperParameters param;
param.setWindow(TaperParameters::Tukey);
param.setAlpha(0.2);
s.taper(param);
// Filter at frequency f with a band width of 10%
FilterParameters fparam;
fparam.setMinimumFrequency(arrayParam.frequency().lowLimit());
fparam.setMaximumFrequency(arrayParam.frequency().highLimit());
fparam.setMethod(FilterParameters::Convolution);
fparam.setBand(FilterParameters::BandPass);
fparam.convolutionWindow().setWindow(TaperParameters::Tukey);
fparam.convolutionWindow().setAlpha(0.2);
s.filter(fparam);
// TODO: process in frequency domain
// For vertical spac only
}
setVerticalPower();
}
| double ArrayCore::SPACStationSignals::verticalPower | ( | ) | const [inline] |
{return _verticalPower;}