OpendTect-6_4  6.4
prestackprop.h
Go to the documentation of this file.
1 #ifndef prestackprop_h
2 #define prestackprop_h
3 
4 /*+
5 ________________________________________________________________________
6 
7  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
8  Author: A.H. Bril
9  Date: Jan 2008
10  RCS: $Id$
11 ________________________________________________________________________
12 
13 -*/
14 
15 #include "prestackprocessingmod.h"
16 
17 #include "datapack.h"
18 #include "enums.h"
19 #include "ranges.h"
20 #include "stattype.h"
21 
22 class SeisPSReader;
23 
24 namespace PreStack
25 {
26 
27 class Gather;
28 
33 mExpClass(PreStackProcessing) PropCalc
34 {
35 public:
36 
37  enum CalcType { Stats, LLSQ };
39  enum AxisType { Norm, Log, Exp, Sqr, Sqrt, Abs, Sinsq };
41  enum LSQType { A0, Coeff, StdDevA0, StdDevCoeff,
42  CorrCoeff };
44 
45  mExpClass(PreStackProcessing) Setup
46  {
47  public:
48  Setup()
49  : calctype_(LLSQ)
50  , stattype_(Stats::Average)
51  , lsqtype_(A0)
52  , offsaxis_(Norm)
53  , valaxis_(Norm)
54  , offsrg_(0,mUdf(float))
55  , xscaler_(1.f)
56  , anglerg_(0,30)
57  , useangle_(false)
58  , aperture_(0) {}
59 
60  mDefSetupMemb(CalcType,calctype)
61  mDefSetupMemb(Stats::Type,stattype)
62  mDefSetupMemb(LSQType,lsqtype)
63  mDefSetupMemb(AxisType,offsaxis)
64  mDefSetupMemb(AxisType,valaxis)
66  mDefSetupMemb(float,xscaler)
68  mDefSetupMemb(bool,useangle)
69  mDefSetupMemb(int,aperture)
70  };
71  PropCalc(const Setup&);
72  virtual ~PropCalc();
73 
74  Setup& setup() { return setup_; }
75  const Setup& setup() const { return setup_; }
76  const Gather* getGather() const { return gather_; }
77 
78  bool hasAngleData() const { return angledata_; }
79  void setGather(DataPack::ID);
80  void setGather(const PreStack::Gather&);
81  void setAngleData(DataPack::ID);
82  void setAngleData(const PreStack::Gather&);
86  float getVal(int sampnr) const;
87  float getVal(float z) const;
88 
89  static float getVal(const PropCalc::Setup& su,
90  TypeSet<float>& vals,TypeSet<float>& offs);
91 
92 protected:
93 
94  void removeGather();
95 
100 
102 
103 private:
104 
105  void init();
106  bool getAngleFromMainGather() const;
107  void handleNewGather();
108 
109 public:
110 
111  void setAngleValuesInRadians(bool yn);
112 };
113 
114 } // namespace PreStack
115 
116 #endif
#define mExpClass(module)
Definition: commondefs.h:160
FixedString Setup()
Definition: keystrs.h:116
mDeclareEnumUtils(CalcType) enum AxisType
Definition: prestackprop.h:38
PreStack gather.
Definition: prestackgather.h:36
bool init()
CalcType
Definition: prestackprop.h:37
Definition: synthseis.h:36
Calculates &#39;post-stack&#39; properties of a PreStack data store.
Definition: prestackprop.h:33
Definition: file.h:99
Gather * angledata_
Definition: prestackprop.h:99
int ID
Definition: datapack.h:38
unsigned int Abs(unsigned int i)
Definition: math2.h:80
Type
Definition: stattype.h:21
mDeclareEnumUtils(LSQType) class Setup
Definition: prestackprop.h:43
mDeclareEnumUtils(AxisType) enum LSQType
Definition: prestackprop.h:40
Gather * gather_
Definition: prestackprop.h:96
#define mUdf(type)
Use this macro to get the undefined for simple types.
Definition: undefval.h:272
#define mDefSetupMemb(typ, memb)
Definition: commondefs.h:137
bool hasAngleData() const
Definition: prestackprop.h:78
Definition: stattype.h:24
const Setup & setup() const
Definition: prestackprop.h:75
Definition: prestackprop.h:37
int * outermutes_
Definition: prestackprop.h:98
Setup & setup()
Definition: prestackprop.h:74
float Exp(float)
const Gather * getGather() const
Definition: prestackprop.h:76
reads from a prestack seismic data store.
Definition: seispsread.h:34
float Sqrt(float)
int * innermutes_
Definition: prestackprop.h:97
Setup setup_
Definition: prestackprop.h:101

Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B. V. 2019