Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef SIGNALREADER_H
00028 #define SIGNALREADER_H
00029
00030 #include <QVector>
00031
00032 #include <QGpCoreTools.h>
00033
00034 class Wavelet
00035 {
00036 public:
00037 Wavelet() {amplitude=1.0; frequency=1.0; phase=0.0;}
00038
00039 double amplitude;
00040 double frequency;
00041 double phase;
00042 };
00043
00044 class SignalReader : public ArgumentStdinReader
00045 {
00046 TRANSLATIONS("SignalReader");
00047 public:
00048 SignalReader();
00049 ~SignalReader();
00050
00051 bool setOptions(int& argc, char ** argv);
00052 void exec();
00053 protected:
00054 virtual bool parse(QTextStream& s);
00055 private:
00056 bool addWavelet(const QString& buf, double propagationDelay);
00057 static double misfit(double ampPhi[]);
00058
00059 int _nSamples;
00060
00061 double _deltaT;
00062 double * _samples;
00063 double _timeLength;
00064 QVector<double> _velocities;
00065 QVector<double> _azimuths;
00066 Point2D _stationCoord;
00067
00068 QVector<Wavelet> _wavelets;
00069 bool _square;
00070 };
00071
00072 #endif // SIGNALREADER_H