OpendTect  6.6
expvardip.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 MinVarianceDip size= [resolution=32] [velocity=] [fast=]
13 
14 MinVarianceDip 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 1 Velocity (only if not stated on command-line)
20 
21 Outputs:
22 0 inlinedip
23 1 crlinedip
24 
25 @$*/
26 
27 #include <attribcalc.h>
28 #include <task.h>
29 #include <position.h>
30 #include <limits.h>
31 #include <seistrc.h>
32 #include <arrayndimpl.h>
33 #include <attribparamimpl.h>
34 
35 mClass(AttribExp) MinVarianceDipAttrib : public AttribCalc
36 {
37 public:
39  , "MinVarianceDip"
40  , IntAttribParameter
41  , size
42  , IntAttribParameter( "size"
44  , 7
45  , Interval<int>(0,100)
46  )
47  , IntAttribParameter
48  , resolution
49  , IntAttribParameter( "resolution"
51  , 32
52  , Interval<int>(0,INT_MAX)
53  )
54  , BoolAttribParameter
55  , constantvel
56  , BoolAttribParameter("constantvel"
58  , true
59  )
60  , FloatAttribParameter
61  , velocity
62  , FloatAttribParameter("velocity"
64  , 4000
65  , Interval<float>(0,mUndefValue)
66  )
67  , BoolAttribParameter
68  , fast
69  , BoolAttribParameter("fast"
71  , true
72  )
73  , mAttribParamFormHasUpdate);
74 
75 
76  MinVarianceDipAttrib( Parameters* );
78 
79  bool init();
80 
81  int nrAttribs() const { return 2; }
82  const char* attribName(int val) const
83  {
84  if ( !val ) return "\"In-line dip\"";
85  if ( val == 1 ) return "\"Cross-line dip\"";
86 
87  return 0;
88  }
89 
90  const BinID* reqStepout(int inp,int) const
91  { return inp ? 0 : &stepout; }
92  const Interval<int>* reqExtraSamples(int inp,int) const
93  { return inp ? 0 : &sg; }
94  const Interval<float>* inlDipMargin(int,int) const { return 0; }
95  const Interval<float>* crlDipMargin(int,int) const { return 0; }
96 
97 
99  { return val < 2 ? Seis::Dip : Seis::UnknowData; }
100 
101  const char* definitionStr() const { return desc; }
102  void setCommonInfo( const AttribProcessCommonInfo& ni )
103  { common = &ni; }
104 
105 protected:
106 
110 
111  float inldist;
112  float crldist;
113 
114  int sz;
116  float velocity;
118  bool fast;
119  const AttribProcessCommonInfo* common;
120 
121  mClass(AttribExp) Task : public AttribCalc::Task
122  {
123  public:
125  {
126  public:
127  Input( const MinVarianceDipAttrib& calculator_ )
128  : calculator ( calculator_ )
129  , veltrc( 0 )
130  , trcs( 0 ) {}
131 
132  bool set( const BinID&,
134  const TypeSet<int>&,
135  const TypeSet<float*>& );
136 
138  { return new MinVarianceDipAttrib::Task::Input(*this); }
139 
145  };
146 
147  Task( const MinVarianceDipAttrib& calculator_ )
148  : inldips( 0 )
149  , crldips( 0 )
150  , indata( 0,0,0 )
151  , calculator( calculator_ ) {}
152 
153  Task( const Task& );
154  // Not impl. Only to give error if someone uses it
155 
156  void set( float , int , float ,
157  const AttribCalc::Task::Input* ,
158  const TypeSet<float*>& );
159 
160  AttribCalc::Task* clone() const;
161 
162  int getFastestSz() const { return 25; }
163 
164  int nextStep();
165 
168 
169  protected:
170  float* inldips;
171  float* crldips;
173 
175  };
176 
179 };
180 
Seis::Dip
@ Dip
Definition: seistype.h:53
MinVarianceDipAttrib::stepout
BinID stepout
Definition: expvardip.h:109
MinVarianceDipAttrib::Task::Input::set
bool set(const BinID &, const ObjectSet< AttribProvider > &, const TypeSet< int > &, const TypeSet< float * > &)
sKey::Input
FixedString Input()
Definition: keystrs.h:81
MinVarianceDipAttrib::Task::Input::Input
Input(const MinVarianceDipAttrib &calculator_)
Definition: expvardip.h:127
task.h
MinVarianceDipAttrib::reqStepout
const BinID * reqStepout(int inp, int) const
Definition: expvardip.h:90
MinVarianceDipAttrib::Task::calculator
const MinVarianceDipAttrib & calculator
Definition: expvardip.h:174
ObjectSet
Set of pointers to objects.
Definition: commontypes.h:31
MinVarianceDipAttrib
Definition: expvardip.h:36
Seis::DataType
DataType
Definition: seistype.h:53
MinVarianceDipAttrib::Task::inldips
float * inldips
Definition: expvardip.h:170
MinVarianceDipAttrib::Task::Input::clone
AttribCalc::Task::Input * clone() const
Definition: expvardip.h:137
MinVarianceDipAttrib::MinVarianceDipAttrib
MinVarianceDipAttrib(Parameters *)
TraceSpectrumAttrib::Task::Task
Task(const TraceSpectrumAttrib &calculator_)
Definition: expspectrum.h:109
MinVarianceDipAttrib::attribName
const char * attribName(int val) const
Definition: expvardip.h:82
SeisTrc
Seismic trace.
Definition: seistrc.h:34
MinVarianceDipAttrib::sg
Interval< int > sg
Definition: expvardip.h:108
MinVarianceDipAttrib::nrAttribs
int nrAttribs() const
Definition: expvardip.h:81
Array3DImpl< float >
MinVarianceDipAttrib::Task::set
void set(float, int, float, const AttribCalc::Task::Input *, const TypeSet< float * > &)
MinVarianceDipAttrib::setCommonInfo
void setCommonInfo(const AttribProcessCommonInfo &ni)
Definition: expvardip.h:102
MinVarianceDipAttrib::Task::Input
Definition: expvardip.h:125
MinVarianceDipAttrib::fast
bool fast
Definition: expvardip.h:118
arrayndimpl.h
MinVarianceDipAttrib::sz
int sz
Definition: expvardip.h:114
MinVarianceDipAttrib::Task::Task
Task(const MinVarianceDipAttrib &calculator_)
Definition: expvardip.h:147
MinVarianceDipAttrib::Task::Task
Task(const Task &)
MinVarianceDipAttrib::inldist
float inldist
Definition: expvardip.h:111
MinVarianceDipAttrib::Task
Definition: expvardip.h:122
MinVarianceDipAttrib::Task::Input::veltrc
SeisTrc * veltrc
Definition: expvardip.h:142
BinID
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:31
MinVarianceDipAttrib::init
bool init()
MinVarianceDipAttrib::dataType
Seis::DataType dataType(int val, const TypeSet< Seis::DataType > &) const
Definition: expvardip.h:98
MinVarianceDipAttrib::reqExtraSamples
const Interval< int > * reqExtraSamples(int inp, int) const
Definition: expvardip.h:92
MinVarianceDipAttrib::Task::Input::velattrib
int velattrib
Definition: expvardip.h:143
MinVarianceDipAttrib::resolution
int resolution
Definition: expvardip.h:115
MinVarianceDipAttrib::~MinVarianceDipAttrib
~MinVarianceDipAttrib()
MinVarianceDipAttrib::velocity
float velocity
Definition: expvardip.h:116
mClass
#define mClass(module)
Definition: commondefs.h:181
MinVarianceDipAttrib::constantvel
bool constantvel
Definition: expvardip.h:117
MinVarianceDipAttrib::Task::Input::trcs
Array2DImpl< SeisTrc * > * trcs
Definition: expvardip.h:140
TraceSpectrumAttrib::Task::Input::calculator
const TraceSpectrumAttrib & calculator
Definition: expspectrum.h:106
MinVarianceDipAttrib::Task::indata
Array3DImpl< float > indata
Definition: expvardip.h:172
position.h
MinVarianceDipAttrib::definitionStr
const char * definitionStr() const
Definition: expvardip.h:101
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
MinVarianceDipAttrib::crldist
float crldist
Definition: expvardip.h:112
Array2DImpl< SeisTrc * >
MinVarianceDipAttrib::Task::getInput
AttribCalc::Task::Input * getInput() const
Definition: expvardip.h:166
seistrc.h
MinVarianceDipAttrib::desc
BufferString desc
Definition: expvardip.h:107
MinVarianceDipAttrib::mAttrib5Param
mAttrib5Param(MinVarianceDipAttrib, "MinVarianceDip", IntAttribParameter, size, IntAttribParameter("size", AttribParameter::Required, 7, Interval< int >(0, 100)), IntAttribParameter, resolution, IntAttribParameter("resolution", AttribParameter::Required, 32, Interval< int >(0, INT_MAX)), BoolAttribParameter, constantvel, BoolAttribParameter("constantvel", AttribParameter::Default, true), FloatAttribParameter, velocity, FloatAttribParameter("velocity", AttribParameter::Required, 4000, Interval< float >(0, mUndefValue)), BoolAttribParameter, fast, BoolAttribParameter("fast", AttribParameter::Default, true), mAttribParamFormHasUpdate)
MinVarianceDipAttrib::Task::nextStep
int nextStep()
MinVarianceDipAttrib::Task::Input::dataattrib
int dataattrib
Definition: expvardip.h:141
Seis::UnknowData
@ UnknowData
Definition: seistype.h:54
MinVarianceDipAttrib::Task::Input::calculator
const MinVarianceDipAttrib & calculator
Definition: expvardip.h:144
MinVarianceDipAttrib::Task::crldips
float * crldips
Definition: expvardip.h:171
MinVarianceDipAttrib::common
const AttribProcessCommonInfo * common
Definition: expvardip.h:119
Table::Required
@ Required
Definition: tabledef.h:27
Interval< int >
MinVarianceDipAttrib::inlDipMargin
const Interval< float > * inlDipMargin(int, int) const
Definition: expvardip.h:94
sKey::Default
FixedString Default()
Definition: keystrs.h:59
TraceSpectrumAttrib::desc
BufferString desc
Definition: expspectrum.h:79
MinVarianceDipAttrib::crlDipMargin
const Interval< float > * crlDipMargin(int, int) const
Definition: expvardip.h:95
MinVarianceDipAttrib::Task::clone
AttribCalc::Task * clone() const
MinVarianceDipAttrib::Task::getFastestSz
int getFastestSz() const
Definition: expvardip.h:162
TypeSet< Seis::DataType >

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