GPLIB++
RFVelCalc.h
Go to the documentation of this file.
1 #ifndef RFVELCALC_H_
2 #define RFVELCALC_H_
3 #include "RecCalc.h"
4 #include "SeismicDataComp.h"
5 #include <string>
6 
7 namespace gplib
8  {
9  /** \addtogroup seistools Seismic data analysis and modeling */
10  /* @{ */
11 
12  //! This class implements the method to calculate absolute S-Wave velocities from Receiver function data as described by Sevnningsen and Jacobsen, GJI 2007
13  class RFVelCalc
14  {
15  private:
16  RecCalc RFCalculator;
17  ttsdata Velocities;
18  ttsdata Periods;
19  //! The core estimation routine, take radial and vertical receiver functions
20  void AbsVelCalc(const double slowness, const SeismicDataComp &RadRec,
21  const SeismicDataComp &VerRec, ttsdata &AppVel);
22  public:
23  //! return the vector of apparent velocities
24  const ttsdata &GetVelocities()
25  {
26  return Velocities;
27  }
28  //! Calculate absolute velocities from the radial and vertical components of the seismogram
29  void CalcRFVel(const double slowness, const SeismicDataComp &RadComp,
30  const SeismicDataComp &VerComp, ttsdata &AppVel);
31  //!Calculate absolute velocities from the radial receiver function and the vertical component of the seismogram
32  void CalcRFVelFromRec(const double slowness, const SeismicDataComp &RRec,
33  const SeismicDataComp &VerComp, ttsdata &AppVel);
34  //! Write the velocity estiamtes and corresponding periods into an ascii file
35  void WriteVelocities(const std::string filename);
36  //! The constructor takes three parameters for the receiver function estimation
37  /*! The constructor takes three parameters for the receiver function estimation
38  * @param mysigma The width of the gaussian filter used in calculating the receiver function
39  * @param myc The waterlevel, only relevant if spectral division is used for RF calculation
40  * @param themethod Do we want to calculate the RF with spectral division of iterative deconvolution
41  * @return
42  */
43  RFVelCalc(const double mysigma, const double myc,
44  const RecCalc::trfmethod themethod = RecCalc::specdiv);
45  RFVelCalc& operator=(const RFVelCalc& source);
46  RFVelCalc(const RFVelCalc &Old);
47  virtual ~RFVelCalc();
48  };
49  /* @} */
50  }
51 #endif /*RFVELCALC_H_*/
trfmethod
There are several ways to calculate receiver functions.
Definition: RecCalc.h:18
This class is used to calculate receiver functions from seismic data.
Definition: RecCalc.h:14
void WriteVelocities(const std::string filename)
Write the velocity estiamtes and corresponding periods into an ascii file.
Definition: RFVelCalc.cpp:107
RFVelCalc(const double mysigma, const double myc, const RecCalc::trfmethod themethod=RecCalc::specdiv)
The constructor takes three parameters for the receiver function estimation.
Definition: RFVelCalc.cpp:11
This class implements the method to calculate absolute S-Wave velocities from Receiver function data ...
Definition: RFVelCalc.h:13
void CalcRFVel(const double slowness, const SeismicDataComp &RadComp, const SeismicDataComp &VerComp, ttsdata &AppVel)
Calculate absolute velocities from the radial and vertical components of the seismogram.
Definition: RFVelCalc.cpp:97
RFVelCalc & operator=(const RFVelCalc &source)
Definition: RFVelCalc.cpp:34
const ttsdata & GetVelocities()
return the vector of apparent velocities
Definition: RFVelCalc.h:24
void CalcRFVelFromRec(const double slowness, const SeismicDataComp &RRec, const SeismicDataComp &VerComp, ttsdata &AppVel)
Calculate absolute velocities from the radial receiver function and the vertical component of the sei...
Definition: RFVelCalc.cpp:88
virtual ~RFVelCalc()
Definition: RFVelCalc.cpp:23