RFVelCalc.h

Go to the documentation of this file.
00001 #ifndef RFVELCALC_H_
00002 #define RFVELCALC_H_
00003 #include "RecCalc.h"
00004 #include "SeismicDataComp.h"
00005 #include <string>
00006 
00007 namespace gplib
00008   {
00009     /** \addtogroup seistools Seismic data analysis and modeling */
00010     /* @{ */
00011 
00012     //! This class implements the method to calculate absolute S-Wave velocities from Receiver function data as described by Sevnningsen and Jacobsen, GJI 2007
00013     class RFVelCalc
00014       {
00015     private:
00016       RecCalc RFCalculator;
00017       ttsdata Velocities;
00018       ttsdata Periods;
00019       //! The core estimation routine, take radial and vertical receiver functions
00020       void AbsVelCalc(const double slowness, const SeismicDataComp &RadRec,
00021           const SeismicDataComp &VerRec, ttsdata &AppVel);
00022     public:
00023       //! return the vector of apparent velocities
00024       const ttsdata &GetVelocities()
00025         {
00026           return Velocities;
00027         }
00028       //! Calculate absolute velocities from the radial and vertical components of the seismogram
00029       void CalcRFVel(const double slowness, const SeismicDataComp &RadComp,
00030           const SeismicDataComp &VerComp, ttsdata &AppVel);
00031       //!Calculate absolute velocities from the radial receiver function and the vertical component of the seismogram
00032       void CalcRFVelFromRec(const double slowness, const SeismicDataComp &RRec,
00033           const SeismicDataComp &VerComp, ttsdata &AppVel);
00034       //! Write the velocity estiamtes and corresponding periods into an ascii file
00035       void WriteVelocities(const std::string filename);
00036       //!  The constructor takes three parameters for the receiver function estimation
00037       /*!  The constructor takes three parameters for the receiver function estimation
00038        * @param mysigma The width of the gaussian filter used in calculating the receiver function
00039        * @param myc The waterlevel, only relevant if spectral division is used for RF calculation
00040        * @param themethod Do we want to calculate the RF with spectral division of iterative deconvolution
00041        * @return
00042        */
00043       RFVelCalc(const double mysigma, const double myc,
00044           const RecCalc::trfmethod themethod = RecCalc::specdiv);
00045       RFVelCalc& operator=(const RFVelCalc& source);
00046       RFVelCalc(const RFVelCalc &Old);
00047       virtual ~RFVelCalc();
00048       };
00049   /* @} */
00050   }
00051 #endif /*RFVELCALC_H_*/

Generated on Tue May 4 16:52:15 2010 for GPLIB++ by  doxygen 1.5.8