OpendTect  6.6
expspectrum.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 TraceSpectrum window=[Box]|Hamming|Hanning|Barlett|Blackman|CosTaper5
13  complex=[Yes]|No
14 
15 Calculates the frequenc spectrum of a trace
16 Input:
17 0 Real data
18 1 Imag data
19 
20 Output:
21 0 Spectrum
22 1 Real part
23 2 Imag part
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 <complex>
33 #include <arrayndimpl.h>
34 #include <fft.h>
35 #include <attribparamimpl.h>
36 
37 #include <arrayndalgo.h>
38 
39 
40 mClass(AttribExp) TraceSpectrumAttrib : public AttribCalc
41 {
42 public:
44  ,"TraceSpectrum"
45  , EnumAttribParameter
46  , window
47  , EnumAttribParameter("window"
48  , ArrayNDWindow::WindowTypeNames
50  , 0
51  )
52  , BoolAttribParameter
53  , complex
54  , BoolAttribParameter("complex"
56  , true
57  )
58  , mAttribParamFormHasNoUpdate
59  );
60 
61  TraceSpectrumAttrib( Parameters* );
63 
64  const Interval<float>* inlDipMargin(int,int) const { return 0; }
65  const Interval<float>* crlDipMargin(int,int) const { return 0; }
66 
67  bool init();
68 
69  int nrAttribs() const { return 3; }
70 
71 
73  { return Seis::UnknowData; }
74  const char* definitionStr() const { return desc; }
75 
76 protected:
78 
80  float inpstep;
81  float df;
82 
83  mClass(AttribExp) Task : public AttribCalc::Task
84  {
85  public:
86  mClass(AttribExp) Input : public AttribCalc::Task::Input
87  {
88  public:
89  Input( const TraceSpectrumAttrib& calculator_ )
90  : calculator ( calculator_ ) {}
91 
92  bool set( const BinID&,
94  const TypeSet<int>&,
95  const TypeSet<float*>& );
96 
98  { return new TraceSpectrumAttrib::Task::Input(*this); }
99 
100  const SeisTrc* realtrc;
101  const SeisTrc* imagtrc;
102 
103  int reattrib;
104  int imattrib;
105 
107  };
108 
109  Task( const TraceSpectrumAttrib& calculator_ )
110  : power( 0 )
111  , realout( 0 )
112  , imagout( 0 )
113  , timedomain( 0 )
114  , freqdomain( 0 )
115  , window( 0 )
116  , calculator( calculator_ )
117  { }
118 
119  Task( const Task& );
120  // Not impl. Only to give error if someone uses it
121 
122  ~Task();
123 
124  void set( float t1_, int nrtimes_, float step_,
125  const AttribCalc::Task::Input* inp,
126  const TypeSet<float*>& outp_)
127  { t1 = t1_; nrtimes = nrtimes_;
128  step = step_; input = inp; power = outp_[0];
129  realout = outp_[1]; imagout = outp_[2]; }
130 
131  AttribCalc::Task* clone() const;
132 
133  int getFastestSz() const { return INT_MAX; }
134 
135  int nextStep();
136 
139 
140  protected:
141  float* power;
142  float* realout;
143  float* imagout;
144 
148 
150  FFT fft;
151 
152  };
153 
156 };
157 
arrayndalgo.h
TraceSpectrumAttrib::inpstep
float inpstep
Definition: expspectrum.h:80
TraceSpectrumAttrib::Task::clone
AttribCalc::Task * clone() const
sKey::Input
FixedString Input()
Definition: keystrs.h:81
task.h
TraceSpectrumAttrib::Task::Input::Input
Input(const TraceSpectrumAttrib &calculator_)
Definition: expspectrum.h:89
TraceSpectrumAttrib::TraceSpectrumAttrib
TraceSpectrumAttrib(Parameters *)
ObjectSet
Set of pointers to objects.
Definition: commontypes.h:31
TraceSpectrumAttrib::Task::nextStep
int nextStep()
TraceSpectrumAttrib::Task::Input
Definition: expspectrum.h:87
Seis::DataType
DataType
Definition: seistype.h:53
Array1DImpl< float_complex >
TraceSpectrumAttrib::nrAttribs
int nrAttribs() const
Definition: expspectrum.h:69
TraceSpectrumAttrib::init
bool init()
TraceSpectrumAttrib::Task::fft
FFT fft
Definition: expspectrum.h:150
ArrayNDWindow::WindowType
WindowType
Definition: arrayndalgo.h:351
TraceSpectrumAttrib::Task::Task
Task(const TraceSpectrumAttrib &calculator_)
Definition: expspectrum.h:109
SeisTrc
Seismic trace.
Definition: seistrc.h:34
TraceSpectrumAttrib::Task::imagout
float * imagout
Definition: expspectrum.h:143
TraceSpectrumAttrib::Task::Input::set
bool set(const BinID &, const ObjectSet< AttribProvider > &, const TypeSet< int > &, const TypeSet< float * > &)
TraceSpectrumAttrib::mAttrib2Param
mAttrib2Param(TraceSpectrumAttrib,"TraceSpectrum", EnumAttribParameter, window, EnumAttribParameter("window", ArrayNDWindow::WindowTypeNames, AttribParameter::Default, 0), BoolAttribParameter, complex, BoolAttribParameter("complex", AttribParameter::Default, true), mAttribParamFormHasNoUpdate)
TraceSpectrumAttrib::crlDipMargin
const Interval< float > * crlDipMargin(int, int) const
Definition: expspectrum.h:65
arrayndimpl.h
TraceSpectrumAttrib::inlDipMargin
const Interval< float > * inlDipMargin(int, int) const
Definition: expspectrum.h:64
TraceSpectrumAttrib::dataType
Seis::DataType dataType(int, const TypeSet< Seis::DataType > &) const
Definition: expspectrum.h:72
TraceSpectrumAttrib::Task
Definition: expspectrum.h:84
TraceSpectrumAttrib::~TraceSpectrumAttrib
~TraceSpectrumAttrib()
BinID
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:31
TraceSpectrumAttrib::Task::Input::imagtrc
const SeisTrc * imagtrc
Definition: expspectrum.h:101
TraceSpectrumAttrib
Definition: expspectrum.h:41
TraceSpectrumAttrib::Task::power
float * power
Definition: expspectrum.h:141
TraceSpectrumAttrib::Task::Task
Task(const Task &)
ArrayNDWindow
Tapers the N-dimentional ArrayND with a windowFunction.
Definition: arrayndalgo.h:349
TraceSpectrumAttrib::definitionStr
const char * definitionStr() const
Definition: expspectrum.h:74
PCADipAttrib::Task::Task
Task(const PCADipAttrib &calculator_)
Definition: exppcadip.h:128
TraceSpectrumAttrib::df
float df
Definition: expspectrum.h:81
mClass
#define mClass(module)
Definition: commondefs.h:181
TraceSpectrumAttrib::Task::Input::realtrc
const SeisTrc * realtrc
Definition: expspectrum.h:100
TraceSpectrumAttrib::Task::Input::calculator
const TraceSpectrumAttrib & calculator
Definition: expspectrum.h:106
TraceSpectrumAttrib::Task::getFastestSz
int getFastestSz() const
Definition: expspectrum.h:133
TraceSpectrumAttrib::Task::window
ArrayNDWindow * window
Definition: expspectrum.h:149
position.h
TraceSpectrumAttrib::Task::set
void set(float t1_, int nrtimes_, float step_, const AttribCalc::Task::Input *inp, const TypeSet< float * > &outp_)
Definition: expspectrum.h:124
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
TraceSpectrumAttrib::Task::~Task
~Task()
seistrc.h
TraceSpectrumAttrib::Task::Input::clone
AttribCalc::Task::Input * clone() const
Definition: expspectrum.h:97
PCADipAttrib::desc
BufferString desc
Definition: exppcadip.h:95
Seis::UnknowData
@ UnknowData
Definition: seistype.h:54
PCADipAttrib::Task::Input::calculator
const PCADipAttrib & calculator
Definition: exppcadip.h:125
TraceSpectrumAttrib::Task::calculator
const TraceSpectrumAttrib & calculator
Definition: expspectrum.h:145
MPE::step_
RowCol step_
Definition: horizontracker.h:140
Interval< float >
TraceSpectrumAttrib::Task::getInput
AttribCalc::Task::Input * getInput() const
Definition: expspectrum.h:137
TraceSpectrumAttrib::Task::timedomain
Array1DImpl< float_complex > * timedomain
Definition: expspectrum.h:146
sKey::Default
FixedString Default()
Definition: keystrs.h:59
TraceSpectrumAttrib::desc
BufferString desc
Definition: expspectrum.h:79
TraceSpectrumAttrib::windowtype
ArrayNDWindow::WindowType windowtype
Definition: expspectrum.h:77
TraceSpectrumAttrib::Task::realout
float * realout
Definition: expspectrum.h:142
TraceSpectrumAttrib::Task::Input::imattrib
int imattrib
Definition: expspectrum.h:104
TypeSet< Seis::DataType >
TraceSpectrumAttrib::Task::Input::reattrib
int reattrib
Definition: expspectrum.h:103
TraceSpectrumAttrib::Task::freqdomain
Array1DImpl< float_complex > * freqdomain
Definition: expspectrum.h:147

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