OpendTect  6.6
expwavelet1d.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 Wavelet1D minwaveletlen= maxwaveletlen= wavelet=
13 
14 Wavelet1D calculates attributes from the scale-spectrum created by the 1D
15 wavelet transform of the trace.
16 
17 minwaveletlen and maxwaveletlen can be:
18 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048 or 4196
19 
20 wavelet can be:
21 "Haar", "Daubechies 4", "Daubechies 6", "Daubechies 8", "Daubechies 10",
22 "Daubechies 12", "Daubechies 14", "Daubechies 16", "Daubechies 18",
23 "Daubechies 20", "Beylkin", "Coiflet 1", "Coiflet 2", "Coiflet 3",
24 "Coiflet 4", "Coiflet 5", "Symmlet 4", "Symmlet 5", "Symmlet 6",
25 "Symmlet 7", "Symmlet 8", "Symmlet 9", "Symmlet 10" or "Vaidyanathan"
26 
27 Output
28 
29 0 - Average scale
30 1 - Average scale squared
31 2 - Max scale
32 3 - Average scale amplitude
33 4 - Max scale amplitude
34 5 - Average scale amplitude squared
35 6 - Spectral Area Below Max Scale
36 7 - Spectral Area Above Max Scale
37 8 - Scale Std Dev
38 
39 
40 @$*/
41 
42 #include "attribcalc.h"
43 #include "enums.h"
44 #include "attribparamimpl.h"
45 #include "wavelettrans.h"
46 
47 class SeisTrc;
48 
49 mClass(AttribExp) Wavelet1DAttrib : public AttribCalc
50 {
51 public:
53  , "Wavelet1D"
54  , EnumAttribParameter
55  , minwaveletlen
56  , EnumAttribParameter("minwaveletlen"
57  , Wavelet1DAttrib::WaveletLenNames
59  , 0
60  )
61  , EnumAttribParameter
62  , maxwaveletlen
63  , EnumAttribParameter("maxwaveletlen"
64  , Wavelet1DAttrib::WaveletLenNames
66  , 4
67  )
68  , EnumAttribParameter
69  , wavelet
70  , EnumAttribParameter("wavelet"
71  , WaveletTransform::WaveletTypeNames
73  , 0
74  )
75  , mAttribParamFormHasNoUpdate
76  );
77 
78  enum WaveletLen { s2, s4, s8, s16, s32, s64, s128,
79  s256, s512, s1024, s2048, s4196 };
81 
82  Wavelet1DAttrib( Parameters* );
83 
85 
86  const Interval<int>* desExtraSamples( int, int ) const { return &dsg; }
87  const Interval<float>* inlDipMargin(int,int) const { return 0; }
88  const Interval<float>* crlDipMargin(int,int) const { return 0; }
89 
90  int nrAttribs() const { return 9; }
91 
92 
94  { return Seis::UnknowData; }
95 
96  const char* definitionStr() const { return desc; }
97 
98 protected:
99 
102  int scalelen;
103 
105 
108 
109  mClass(AttribExp) Task : public AttribCalc::Task
110  {
111  public:
113  {
114  public:
115  Input( const Wavelet1DAttrib& calculator_ )
116  : calculator ( calculator_ ) {}
117 
118  bool set( const BinID&,
120  const TypeSet<int>&,
121  const TypeSet<float*>& );
122 
124  { return new Wavelet1DAttrib::Task::Input(*this); }
125 
126  const SeisTrc* trc;
127  int attrib;
128 
130  };
131 
132  Task( const Wavelet1DAttrib& calculator_ )
133  : outp( 9, 0 )
134  , calculator( calculator_ ) {}
135 
136  Task( const Task& );
137  // Not impl. Only to give error if someone uses it
138 
139  void set( float t1_, int nrtimes_, float step_,
140  const AttribCalc::Task::Input* inp,
141  const TypeSet<float*>& outp_)
142  { t1 = t1_; nrtimes = nrtimes_;
143  step = step_; input = inp; outp = outp_; }
144 
145  AttribCalc::Task* clone() const;
146 
147  int getFastestSz() const { return 25; }
148 
149  int nextStep();
150 
152  { return new Wavelet1DAttrib::Task::Input( calculator ); }
153 
154  protected:
155 
158 
159  };
160 
161  friend class Wavelet1DAttrib::Task;
163 };
164 
sKey::Input
FixedString Input()
Definition: keystrs.h:81
Wavelet1DAttrib::Task::Task
Task(const Wavelet1DAttrib &calculator_)
Definition: expwavelet1d.h:132
Wavelet1DAttrib::Task::Input::trc
const SeisTrc * trc
Definition: expwavelet1d.h:126
ObjectSet
Set of pointers to objects.
Definition: commontypes.h:31
Seis::DataType
DataType
Definition: seistype.h:53
Wavelet1DAttrib::s512
@ s512
Definition: expwavelet1d.h:79
Wavelet1DAttrib::mAttrib3Param
mAttrib3Param(Wavelet1DAttrib, "Wavelet1D", EnumAttribParameter, minwaveletlen, EnumAttribParameter("minwaveletlen", Wavelet1DAttrib::WaveletLenNames, AttribParameter::Default, 0), EnumAttribParameter, maxwaveletlen, EnumAttribParameter("maxwaveletlen", Wavelet1DAttrib::WaveletLenNames, AttribParameter::Default, 4), EnumAttribParameter, wavelet, EnumAttribParameter("wavelet", WaveletTransform::WaveletTypeNames, AttribParameter::Default, 0), mAttribParamFormHasNoUpdate)
Wavelet1DAttrib::Task::Input::set
bool set(const BinID &, const ObjectSet< AttribProvider > &, const TypeSet< int > &, const TypeSet< float * > &)
SeisTrc
Seismic trace.
Definition: seistrc.h:34
Wavelet1DAttrib::Task::Input::clone
AttribCalc::Task::Input * clone() const
Definition: expwavelet1d.h:123
Wavelet1DAttrib::Task::Input::attrib
int attrib
Definition: expwavelet1d.h:127
Wavelet1DAttrib::Task::outp
TypeSet< float * > outp
Definition: expwavelet1d.h:156
Wavelet1DAttrib::DeclareEnumUtils
DeclareEnumUtils(WaveletLen)
Wavelet1DAttrib::inlDipMargin
const Interval< float > * inlDipMargin(int, int) const
Definition: expwavelet1d.h:87
Wavelet1DAttrib::Wavelet1DAttrib
Wavelet1DAttrib(Parameters *)
Wavelet1DAttrib::dataType
Seis::DataType dataType(int, const TypeSet< Seis::DataType > &) const
Definition: expwavelet1d.h:93
BinID
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:31
Wavelet1DAttrib::Task::Input::calculator
const Wavelet1DAttrib & calculator
Definition: expwavelet1d.h:129
Wavelet1DAttrib::Task::Input::Input
Input(const Wavelet1DAttrib &calculator_)
Definition: expwavelet1d.h:115
Wavelet1DAttrib::Task::getInput
AttribCalc::Task::Input * getInput() const
Definition: expwavelet1d.h:151
Wavelet1DAttrib::Task::Task
Task(const Task &)
Wavelet1DAttrib::Task::nextStep
int nextStep()
mClass
#define mClass(module)
Definition: commondefs.h:181
Wavelet1DAttrib::desc
BufferString desc
Definition: expwavelet1d.h:107
Wavelet1DAttrib::Task::clone
AttribCalc::Task * clone() const
Wavelet1DAttrib::Task::set
void set(float t1_, int nrtimes_, float step_, const AttribCalc::Task::Input *inp, const TypeSet< float * > &outp_)
Definition: expwavelet1d.h:139
Wavelet1DAttrib::Task::calculator
const Wavelet1DAttrib & calculator
Definition: expwavelet1d.h:157
Wavelet1DAttrib::scalelen
int scalelen
Definition: expwavelet1d.h:102
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
Wavelet1DAttrib::crlDipMargin
const Interval< float > * crlDipMargin(int, int) const
Definition: expwavelet1d.h:88
Wavelet1DAttrib::WaveletLen
WaveletLen
Definition: expwavelet1d.h:78
Wavelet1DAttrib::Task
Definition: expwavelet1d.h:110
enums.h
Wavelet1DAttrib::maxwaveletlen
WaveletLen maxwaveletlen
Definition: expwavelet1d.h:101
Wavelet1DAttrib::Task::getFastestSz
int getFastestSz() const
Definition: expwavelet1d.h:147
Wavelet1DAttrib::minwaveletlen
WaveletLen minwaveletlen
Definition: expwavelet1d.h:100
Wavelet1DAttrib::~Wavelet1DAttrib
~Wavelet1DAttrib()
Seis::UnknowData
@ UnknowData
Definition: seistype.h:54
Wavelet1DAttrib::wavelet
WaveletTransform::WaveletType wavelet
Definition: expwavelet1d.h:104
Wavelet1DAttrib::definitionStr
const char * definitionStr() const
Definition: expwavelet1d.h:96
wavelettrans.h
MPE::step_
RowCol step_
Definition: horizontracker.h:140
Wavelet1DAttrib::desExtraSamples
const Interval< int > * desExtraSamples(int, int) const
Definition: expwavelet1d.h:86
WaveletTransform::WaveletType
WaveletType
Definition: wavelettrans.h:34
Interval< int >
sKey::Default
FixedString Default()
Definition: keystrs.h:59
Wavelet1DAttrib
Definition: expwavelet1d.h:50
Wavelet1DAttrib::Task::Input
Definition: expwavelet1d.h:113
Wavelet1DAttrib::dsg
Interval< int > dsg
Definition: expwavelet1d.h:106
Wavelet1DAttrib::nrAttribs
int nrAttribs() const
Definition: expwavelet1d.h:90
TypeSet< Seis::DataType >

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