OpendTect  6.6
exppcadip.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: Kristofer Tingdahl
8  Date: 07-10-1999
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 PCADip [stepout=4,4] [samplegate=[-4,4]] [fraction=25]
13 
14 PCADip calculates the dip on non-periodic enteties by probing finding
15 the dip, that has the lowest variance.
16 
17 Input:
18 0 Data on which the dip should be calculated.
19 
20 Outputs:
21 0 inlinedip
22 1 crlinedip
23 
24 @$*/
25 
26 #include <attribcalc.h>
27 #include <task.h>
28 #include <position.h>
29 #include <limits.h>
30 #include <seistrc.h>
31 #include <arrayndimpl.h>
32 #include <attribparamimpl.h>
33 
34 mClass(AttribExp) PCADipAttrib : public AttribCalc
35 {
36 public:
38  , "PCADip"
39  , BinIDAttribParameter
40  , stepout
41  , BinIDAttribParameter("stepout"
43  , BinID(4,4)
44  , Interval<int>(0,INT_MAX)
45  ,Interval<int>(0,INT_MAX)
46  )
47  , IntAttribParameter
48  , fraction
49  , IntAttribParameter("fraction"
51  , 25
52  , Interval<int>(0,INT_MAX)
53  )
54  , SampleGateAttribParameter
55  , samplegate
56  , SampleGateAttribParameter("samplegate"
58  , Interval<int>(-4,4)
59  , Interval<int>(-100,100)
60  )
61  , mAttribParamFormHasNoUpdate
62  );
63 
64  PCADipAttrib( Parameters* );
66 
67  bool init();
68 
69  int nrAttribs() const { return 2; }
70  const char* attribName(int val) const
71  {
72  if ( !val ) return "\"In-line dip\"";
73  if ( val == 1 ) return "\"Cross-line dip\"";
74 
75  return 0;
76  }
77 
78  const BinID* reqStepout(int inp,int) const
79  { return inp ? 0 : &stepout; }
80  const Interval<int>* reqExtraSamples(int inp,int) const
81  { return inp ? 0 : &sg; }
82 
83  const Interval<float>* inlDipMargin(int,int) const { return 0; }
84  const Interval<float>* crlDipMargin(int,int) const { return 0; }
85 
87  { return Seis::Dip; }
88 
89  const char* definitionStr() const { return desc; }
90  void setCommonInfo( const AttribProcessCommonInfo& ni )
91  { common = &ni; }
92 
93 protected:
94 
98 
99  float inldist;
100  float crldist;
101 
102  int fraction;
103  const AttribProcessCommonInfo* common;
104 
105  mClass(AttribExp) Task : public AttribCalc::Task
106  {
107  public:
109  {
110  public:
111  Input( const PCADipAttrib& calculator_ )
112  : calculator ( calculator_ )
113  , trcs( 0 ) {}
114 
115  bool set( const BinID&,
117  const TypeSet<int>&,
118  const TypeSet<float*>& );
119 
121  { return new PCADipAttrib::Task::Input(*this); }
122 
126  };
127 
128  Task( const PCADipAttrib& calculator_ )
129  : inldips( 0 )
130  , crldips( 0 )
131  , calculator( calculator_ )
132  { }
133 
134  Task( const Task& );
135  // Not impl. Only to give error if someone uses it
136 
137  void set( float , int , float ,
138  const AttribCalc::Task::Input* ,
139  const TypeSet<float*>& );
140 
141  AttribCalc::Task* clone()const;
142 
143  int getFastestSz() const { return 25; }
144 
145  int nextStep();
146 
147  static float getEigen(int*,int*,int*,int*,int,int,
148  Array2D<int>&,float&);
149 
150  static float getMinEigenVector( const int*, const int*,
151  const int*, const int*, int,
152  int, double&, double&, double&);
153 
155  { return new PCADipAttrib::Task::Input( calculator ); }
156 
157  protected:
158  float* inldips;
159  float* crldips;
160 
162  };
163 
164  friend class PCADipAttrib::Task;
166 };
167 
Seis::Dip
@ Dip
Definition: seistype.h:53
PCADipAttrib::Task::Input::set
bool set(const BinID &, const ObjectSet< AttribProvider > &, const TypeSet< int > &, const TypeSet< float * > &)
PCADipAttrib::fraction
int fraction
Definition: exppcadip.h:102
sKey::Input
FixedString Input()
Definition: keystrs.h:81
PCADipAttrib::Task::Input::clone
AttribCalc::Task::Input * clone() const
Definition: exppcadip.h:120
PCADipAttrib::Task::crldips
float * crldips
Definition: exppcadip.h:159
task.h
PCADipAttrib::nrAttribs
int nrAttribs() const
Definition: exppcadip.h:69
PCADipAttrib::crlDipMargin
const Interval< float > * crlDipMargin(int, int) const
Definition: exppcadip.h:84
ObjectSet
Set of pointers to objects.
Definition: commontypes.h:31
PCADipAttrib::Task
Definition: exppcadip.h:106
PCADipAttrib::inldist
float inldist
Definition: exppcadip.h:99
PCADipAttrib::common
const AttribProcessCommonInfo * common
Definition: exppcadip.h:103
Seis::DataType
DataType
Definition: seistype.h:53
PCADipAttrib::Task::getMinEigenVector
static float getMinEigenVector(const int *, const int *, const int *, const int *, int, int, double &, double &, double &)
PCADipAttrib::setCommonInfo
void setCommonInfo(const AttribProcessCommonInfo &ni)
Definition: exppcadip.h:90
PCADipAttrib
Definition: exppcadip.h:35
PCADipAttrib::attribName
const char * attribName(int val) const
Definition: exppcadip.h:70
PCADipAttrib::Task::inldips
float * inldips
Definition: exppcadip.h:158
arrayndimpl.h
NoDCAttrib::desc
BufferString desc
Definition: expnodc.h:51
PCADipAttrib::Task::Task
Task(const Task &)
PCADipAttrib::inlDipMargin
const Interval< float > * inlDipMargin(int, int) const
Definition: exppcadip.h:83
PCADipAttrib::Task::calculator
const PCADipAttrib & calculator
Definition: exppcadip.h:161
PCADipAttrib::~PCADipAttrib
~PCADipAttrib()
BinID
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:31
PCADipAttrib::sg
Interval< int > sg
Definition: exppcadip.h:96
NoDCAttrib::Task::Input::calculator
const NoDCAttrib & calculator
Definition: expnodc.h:74
PCADipAttrib::Task::Task
Task(const PCADipAttrib &calculator_)
Definition: exppcadip.h:128
mClass
#define mClass(module)
Definition: commondefs.h:181
PCADipAttrib::reqStepout
const BinID * reqStepout(int inp, int) const
Definition: exppcadip.h:78
PCADipAttrib::Task::Input::trcs
Array2DImpl< SeisTrc * > * trcs
Definition: exppcadip.h:123
PCADipAttrib::Task::getInput
AttribCalc::Task::Input * getInput() const
Definition: exppcadip.h:154
PCADipAttrib::Task::Input
Definition: exppcadip.h:109
PCADipAttrib::Task::Input::attribute
int attribute
Definition: exppcadip.h:124
PCADipAttrib::stepout
BinID stepout
Definition: exppcadip.h:97
PCADipAttrib::definitionStr
const char * definitionStr() const
Definition: exppcadip.h:89
PCADipAttrib::dataType
Seis::DataType dataType(int val, const TypeSet< Seis::DataType > &) const
Definition: exppcadip.h:86
position.h
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
PCADipAttrib::crldist
float crldist
Definition: exppcadip.h:100
Array2DImpl< SeisTrc * >
seistrc.h
PCADipAttrib::Task::nextStep
int nextStep()
PCADipAttrib::desc
BufferString desc
Definition: exppcadip.h:95
PCADipAttrib::Task::clone
AttribCalc::Task * clone() const
PCADipAttrib::reqExtraSamples
const Interval< int > * reqExtraSamples(int inp, int) const
Definition: exppcadip.h:80
PCADipAttrib::Task::Input::calculator
const PCADipAttrib & calculator
Definition: exppcadip.h:125
PCADipAttrib::Task::getFastestSz
int getFastestSz() const
Definition: exppcadip.h:143
PCADipAttrib::mAttrib3Param
mAttrib3Param(PCADipAttrib, "PCADip", BinIDAttribParameter, stepout, BinIDAttribParameter("stepout", AttribParameter::Required, BinID(4, 4), Interval< int >(0, INT_MAX), Interval< int >(0, INT_MAX)), IntAttribParameter, fraction, IntAttribParameter("fraction", AttribParameter::Required, 25, Interval< int >(0, INT_MAX)), SampleGateAttribParameter, samplegate, SampleGateAttribParameter("samplegate", AttribParameter::Required, Interval< int >(-4, 4), Interval< int >(-100, 100)), mAttribParamFormHasNoUpdate)
NoDCAttrib::Task::Task
Task(const NoDCAttrib &calculator_)
Definition: expnodc.h:77
Table::Required
@ Required
Definition: tabledef.h:27
PCADipAttrib::Task::set
void set(float, int, float, const AttribCalc::Task::Input *, const TypeSet< float * > &)
PCADipAttrib::Task::getEigen
static float getEigen(int *, int *, int *, int *, int, int, Array2D< int > &, float &)
Interval< int >
PCADipAttrib::PCADipAttrib
PCADipAttrib(Parameters *)
PCADipAttrib::Task::Input::Input
Input(const PCADipAttrib &calculator_)
Definition: exppcadip.h:111
Array2D< int >
PCADipAttrib::init
bool init()
TypeSet< Seis::DataType >

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