OpendTect-6_4  6.4
dippca.h
Go to the documentation of this file.
1 #ifndef dippca_h
2 #define dippca_h
3 
4 /*+
5 ________________________________________________________________________
6 
7  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
8  Author: Bo Zhang/Y.Liu
9  Date: June 2012
10  RCS: $Id$
11 ________________________________________________________________________
12 
13 
14 -*/
15 
16 #include "algomod.h"
17 #include "algomod.h"
18 #include "enums.h"
19 #include "factory.h"
20 #include "odmemory.h"
21 
22 template <class T> class Array2D;
23 template <class T> class Array3D;
24 
25 class Dip2DCalculator;
26 class Dip3DCalculator;
27 class TaskRunner;
28 
29 
41 {
42 public:
43 
44  virtual ~DipPCA() {}
45 
46  mStruct(Algo) Setup
47  { Setup();
48  Setup& operator=(const Setup&);
49 
50  float threshold_;
51  bool isabove_; //Flt value is above threshold or not
52  int boxlength_;
53  int boxwidth_;
54  int boxheight_;
55  StepInterval<int> thetarg_; //dip angle in positive degree
56  StepInterval<int> alpharg_; //azimuth angle in positive degree
57  };
58 
59  void setSetup(Setup nsetup) { setup_ = nsetup; }
60  virtual bool compute(TaskRunner* tr=0) { return true; }
61 
62 protected:
63 
65 };
66 
67 
72 mExpClass(Algo) Dip2D : public DipPCA
73 {
74 public:
75  Dip2D(const Array2D<float>& input,
76  float xdist,float ydist);
77  ~Dip2D();
78 
79  bool compute(TaskRunner* tr=0);
80 
81  enum Output { Dip=0, Dilation=1, Thinning=2 };
82  const Array2D<float>* get(Output) const;
83 
84 protected:
85 
86  friend class Dip2DCalculator;
87  bool fillGap();
88 
89 
91 
92  Array2D<float>* dip_; //The fault dip
94  //The fault dip after perform dilation to dip
96  //The fault dip after thining to dilation
97 
98  const int xsz_;
99  const int ysz_;
100  const float xdist_;
101  const float ydist_;
102 };
103 
104 
109 mExpClass(Algo) Dip3D : public DipPCA
110 {
111 public:
112  Dip3D(const Array3D<float>& input,
113  float xdist,float ydist,float zdist);
114  ~Dip3D();
115 
116  bool compute(TaskRunner* tr=0);
117 
118  enum Output { AbsDip=0, InlDip=1, CrlDip=2, Azimuth=3 };
119  const Array3D<float>* get(Output) const;
120 
121 protected:
122 
123  friend class Dip3DCalculator;
125 
130 
131  const int xsz_;
132  const int ysz_;
133  const int zsz_;
134  const float xdist_;
135  const float ydist_;
136  const float zdist_;
137 };
138 
139 #endif
#define mExpClass(module)
Definition: commondefs.h:160
const int zsz_
Definition: dippca.h:133
FixedString Setup()
Definition: keystrs.h:116
const Array3D< float > & input_
Definition: dippca.h:124
const int xsz_
Definition: dippca.h:131
const Array2D< float > & input_
Definition: dippca.h:90
#define mStruct(module)
Definition: commondefs.h:165
Output
Definition: dippca.h:81
To calculate Dip/Azimuth for 3D datasets using the method of PCA.
Definition: dippca.h:109
Definition: seistype.h:54
const int ysz_
Definition: dippca.h:132
Array2D< float > * dip_
Definition: dippca.h:92
Array3D< float > * absdip_
Definition: dippca.h:126
Array2D ( Subclass of ArrayND ) is a two dimensional array.
Definition: arraynd.h:131
const float ydist_
Definition: dippca.h:135
Class that can execute a task.
Definition: task.h:169
virtual ~DipPCA()
Definition: dippca.h:44
Array2D< float > * dthinner_
Definition: dippca.h:95
const float xdist_
Definition: dippca.h:134
Base class to calculate Dip/Azimuth using the method of PCA.
Definition: dippca.h:40
Setup setup_
Definition: dippca.h:64
Array3D< float > * inldip_
Definition: dippca.h:127
FixedString Output()
Definition: keystrs.h:97
Array3D< float > * crldip_
Definition: dippca.h:128
const float zdist_
Definition: dippca.h:136
const float ydist_
Definition: dippca.h:101
Array2D< float > * dilation_
Definition: dippca.h:93
To calculate Dip/Azimuth for 2D datasets using the method of PCA.
Definition: dippca.h:72
Output
Definition: dippca.h:118
virtual bool compute(TaskRunner *tr=0)
Definition: dippca.h:60
const int ysz_
Definition: dippca.h:99
const float xdist_
Definition: dippca.h:100
Array3D ( Subclass of ArrayND ) is a three dimensional array.
Definition: arraynd.h:153
Array3D< float > * azimuth_
Definition: dippca.h:129
Definition: seistype.h:55
void setSetup(Setup nsetup)
Definition: dippca.h:59
const int xsz_
Definition: dippca.h:98

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