UNIVERS  15.3
UNIVERS base processing software API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
rws_selector.hpp
1 /* rws_selector.hpp */
2 /* $Id: rws_selector.hpp 21267 2011-11-23 15:19:39Z guser1 $ */
3 #ifndef __rws_selector_hpp
4 #define __rws_selector_hpp
5 
6 #ifdef GE_BUILD
7 #include <rws_sim.hpp>
8 #else
9 #include <s2proc/rws_sim.hpp>
10 #endif
11 
13 namespace RWSel
14 {
15  class Selector
16  {
17  public:
18 
20  struct Parameters
21  {
22  bool weight_sel_apply; //26.02.12
23 
28  float Tb;
37  bool fPolFil;
45  bool fk_fil_apply; // 26.02.12
46  int fkfil_type;
47  Trace::TimeT fk_vel1, fk_vel2;
49  bool agc_apply;
51  size_t fk_slope_width;
52  size_t fk_slope_curv;
53  };
54 
55  struct MedFilter // 14.02.12
56  {
57  //int fMedFil;
58  double *spFilOp;
59  int ideg;
60  int cntTr2;
61  int cntSp;
62  };
63 
64  struct TimeSelWinPar // 18.02.12
65  {
70  };
71 
72  Selector(const Parameters &params);
73 
74  void FKfil(WaveField &iwf) const;
75 
76  void FKfilMute(WaveField &iwf, double tavg, std::vector<double> &ts,
77  double tleft, double tright, size_t ihb, size_t ihe) const;
78 
80  WaveField getWave(const WaveField &iwf) const;
81 
82  protected:
83 
86 
87  void Apply2DFFT(double **sp2Dm, int dir, int n1, int n2) const;
88 
89  //void FKFilWeights(double **weFil, int n1, int n2, float Dt, float dh,
90  // float df, float dk) const; // 28.02.12
91  void FKFilWeights(double **weFil, int n1, int n2,
92  float df, float dk) const; // 09.03.12
93  // 09.03.12
94  //void GetWeightPar(int fdim, int kdim, int js1, int js2, int jds, int *jb1,
95  void GetWeightPar(int fdim, int kdim, int js1, int js2, int *jb1,
96  int *je1, int *jb2, int *je2, int *lw1, int *lw2, int dir) const;
97 
98  float DownCos(int j,int je1,int lw1) const;
99  float UpCos(int j,int je2,int lw2) const;
100 
101  //void get_wave_form(const WaveField &iwf, Trace &wform) const; 12.02.12
102  void get_wave_form(const WaveField &iwf, Trace &wform,
103  int ibw, int iew) const;
104 
105  Trace::AmplT get_ampl_coeff(const Trace &tr, const Trace &wform,
106  Trace::TimeT win_b, Trace::TimeT win_e) const;
107 
108  bool smooth_ampls(S2Corr::DVector &ampls, int pdeg) const;
109 
110  int get_smooth_poly_order(size_t n, float smth_order) const;
111 
112  void get_slide_base_ids(const WaveField &iwf, size_t slide_base_traces_num, size_t id,
113  size_t &trb_id, size_t &tre_id) const;
114 
115  void GetTimeSelWinPar(const WaveField &iwf, TimeSelWinPar &tswinPar) const;
116 
117  int WeightSelTrWin(Trace &wform, TimeSelWinPar &tswinPar) const;
118 
119  int ConvTrSpOpTr(Trace &wform, MedFilter &medFil) const;
120  };
121 
122 };
123 
124 #endif /* rws_selector.hpp */
Trace::TimeT defect_ampls_part
Definition: rws_selector.hpp:39
float AmplT
Definition: trace.hpp:21
Trace::TimeT agc_gate_size
Definition: rws_selector.hpp:50
bool fk_fil_apply
Definition: rws_selector.hpp:45
size_t fk_slope_curv
Definition: rws_selector.hpp:52
Trace::TimeT winsel_b
Definition: rws_selector.hpp:34
bool fPolFil
Definition: rws_selector.hpp:37
float TimeT
Definition: trace.hpp:22
int fkfil_type
Definition: rws_selector.hpp:46
Trace::TimeT winsel_e
Definition: rws_selector.hpp:35
bool apply_smoothing
Definition: rws_selector.hpp:42
size_t time_base_shift_samples_num
Definition: rws_selector.hpp:25
bool win_sel_apply
Definition: rws_selector.hpp:33
size_t time_base_samples_num
Definition: rws_selector.hpp:24
bool weight_sel_apply
Definition: rws_selector.hpp:22
Definition: rws_selector.hpp:20
int iLeftSlope_e
Definition: rws_selector.hpp:67
std::vector< Trace::AmplT > DVector
Definition: s2_corr.hpp:20
Definition: wave_field.hpp:13
Definition: trace.hpp:14
Parameters m_params
Definition: rws_selector.hpp:85
int iLeftSlope_b
Definition: rws_selector.hpp:66
Trace::TimeT fk_vel2
Definition: rws_selector.hpp:47
Trace::TimeT ampl_smothing_order
Definition: rws_selector.hpp:43
size_t fk_slope_width
Definition: rws_selector.hpp:51
Trace::TimeT ampl_est_win_b
Definition: rws_selector.hpp:30
int iRightSlope_e
Definition: rws_selector.hpp:69
Trace::TimeT reject_level
Definition: rws_selector.hpp:48
int iRightSlope_b
Definition: rws_selector.hpp:68
Definition: rws_selector.hpp:15
WaveField getWave(const WaveField &iwf) const
float Tb
Definition: rws_selector.hpp:28
bool agc_apply
Definition: rws_selector.hpp:49
Definition: rws_selector.hpp:64
Trace::TimeT ampl_est_win_e
Definition: rws_selector.hpp:31
size_t slide_base_traces_num
Definition: rws_selector.hpp:26
Definition: rws_selector.hpp:55
Trace::TimeT energy_filter_rigidity
Definition: rws_selector.hpp:40