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

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