OpendTect  6.6
frequencyattrib.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 -*/
13 
14 #include "attributesmod.h"
15 #include "attribprovider.h"
16 #include "bufstringset.h"
17 #include "fourier.h"
18 #include "mathfunc.h"
19 #include "valseries.h"
20 #include "valseriesinterpol.h"
21 
22 #include <complex>
23 
24 
25 class ArrayNDWindow;
26 template<class T> class Array1DImpl;
27 
28 namespace Attrib
29 {
30 
31 class DataHolder;
32 
67 {
68 public:
69  static void initClass();
71 
72  static const char* attribName() { return "Frequency"; }
73  static const char* gateStr() { return "gate"; }
74  static const char* normalizeStr() { return "normalize"; }
75  static const char* windowStr() { return "window"; }
76  static const char* paramvalStr() { return "paramval"; }
77  static const char* dumptofileStr() { return "dumptofile"; }
78  static const char* smoothspectrumStr() { return "smoothspect";}
79 
81 
82 protected:
85  static void updateDesc(Desc&);
86  static void updateDefaults(Desc&);
87 
90  { return false; }
91  bool getInputOutput(int input,
92  TypeSet<int>& res) const;
93  bool getInputData(const BinID&,int idx);
94  bool computeData(const DataHolder&,const BinID& rel,
95  int z0,int nrsamples,
96  int threadid) const;
97 
98  const Interval<float>* reqZMargin(int input,int output) const;
99 
105  float df_;
106 
108  float variable_;
109 
112  int realidx_;
113  int imagidx_;
115 
118  int fftsz_;
120 
124 
126  {
127  public:
128  FreqFunc(const ValueSeries<float>& func, int sz)
129  : func_( func )
130  , sz_(sz) {}
131 
132  virtual float getValue( float x ) const
133  {
134  ValueSeriesInterpolator<float> interp(sz_);
135  return interp.value(func_,x);
136  }
137  virtual float getValue( const float* p ) const
138  { return getValue(*p); }
139 
140  protected:
141 
143  int sz_;
144 
145  };
146 };
147 
148 }; // namespace Attrib
149 
ValueSeries< float >
Attrib::Frequency::normalizeStr
static const char * normalizeStr()
Definition: frequencyattrib.h:74
Attrib::Frequency::allowParallelComputation
bool allowParallelComputation() const
Definition: frequencyattrib.h:89
Attrib::Frequency::normalize_
bool normalize_
Definition: frequencyattrib.h:107
Attrib::Frequency::fft_
Fourier::CC * fft_
Definition: frequencyattrib.h:119
Attrib::Frequency::FreqFunc::sz_
int sz_
Definition: frequencyattrib.h:143
Attrib::Frequency::FreqFunc::func_
const ValueSeries< float > & func_
Definition: frequencyattrib.h:142
Attrib::Frequency::dumpset_
BufferStringSet dumpset_
Definition: frequencyattrib.h:116
Attrib::Frequency::checkInpAndParsAtStart
bool checkInpAndParsAtStart()
fourier.h
Attrib::Provider
Provides the actual output to ...
Definition: attribprovider.h:44
Attrib::Frequency::smoothspectrumStr
static const char * smoothspectrumStr()
Definition: frequencyattrib.h:78
Fourier::CC
Does Fourier Transforms of any size.
Definition: fourier.h:30
Attrib::Frequency::window_
ArrayNDWindow * window_
Definition: frequencyattrib.h:103
Attrib::Frequency::initClass
static void initClass()
Attrib::Frequency::FreqFunc::getValue
virtual float getValue(float x) const
Definition: frequencyattrib.h:132
BufferStringSet
Set of BufferString objects.
Definition: bufstringset.h:26
Array1DImpl
Implementation of Array1D.
Definition: arrayndimpl.h:52
valseries.h
Attrib::Frequency::timedomain_
Array1DImpl< float_complex > * timedomain_
Definition: frequencyattrib.h:122
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
Attrib::Frequency::samplegate_
Interval< int > samplegate_
Definition: frequencyattrib.h:101
Attrib::Frequency::windowStr
static const char * windowStr()
Definition: frequencyattrib.h:75
Attrib::DataHolder
Holds the attribute data.
Definition: attribdataholder.h:43
Attrib::Frequency::gateStr
static const char * gateStr()
Definition: frequencyattrib.h:73
Attrib::Frequency::getInputData
bool getInputData(const BinID &, int idx)
Attrib::Frequency::reqZMargin
const Interval< float > * reqZMargin(int input, int output) const
Attrib::Frequency::prepPriorToBoundsCalc
void prepPriorToBoundsCalc()
Attrib::Frequency::windowtype_
BufferString windowtype_
Definition: frequencyattrib.h:104
MathFunction< float, float >
BinID
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:31
Attrib::Frequency::imdata_
const DataHolder * imdata_
Definition: frequencyattrib.h:111
Attrib::Frequency::~Frequency
~Frequency()
Attrib::Frequency::attribName
static const char * attribName()
Definition: frequencyattrib.h:72
Attrib::Frequency::computeData
bool computeData(const DataHolder &, const BinID &rel, int z0, int nrsamples, int threadid) const
Attrib::Frequency::smoothspectrum_
bool smoothspectrum_
Definition: frequencyattrib.h:114
Attrib::Frequency::realidx_
int realidx_
Definition: frequencyattrib.h:112
ArrayNDWindow
Tapers the N-dimentional ArrayND with a windowFunction.
Definition: arrayndalgo.h:349
Attrib::Frequency::updateDefaults
static void updateDefaults(Desc &)
Attrib::Frequency::getInputOutput
bool getInputOutput(int input, TypeSet< int > &res) const
Attrib::Frequency::fftsz_
int fftsz_
Definition: frequencyattrib.h:118
Attrib::Frequency::dumptofileStr
static const char * dumptofileStr()
Definition: frequencyattrib.h:77
ValueSeriesInterpolator< float >
mathfunc.h
Attrib::Frequency::FreqFunc
Definition: frequencyattrib.h:126
Attrib::Frequency::createInstance
static Provider * createInstance(Desc &)
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
Attrib::Frequency::dumptofile_
bool dumptofile_
Definition: frequencyattrib.h:102
bufstringset.h
Attrib::Frequency::df_
float df_
Definition: frequencyattrib.h:105
attribprovider.h
Attrib::Frequency::paramvalStr
static const char * paramvalStr()
Definition: frequencyattrib.h:76
valseriesinterpol.h
Attrib::Frequency::redata_
const DataHolder * redata_
Definition: frequencyattrib.h:110
Attrib::Frequency::Frequency
Frequency(Desc &)
Attrib::Frequency::updateDesc
static void updateDesc(Desc &)
Seis::Frequency
@ Frequency
Definition: seistype.h:53
Attrib::Frequency::freqdomain_
Array1DImpl< float_complex > * freqdomain_
Definition: frequencyattrib.h:123
ValueSeriesInterpolator::value
T value(const ValueSeries< T > &, T pos) const
Definition: valseriesinterpol.h:59
Attrib::Frequency::FreqFunc::getValue
virtual float getValue(const float *p) const
Definition: frequencyattrib.h:137
Attrib::Frequency::gate_
Interval< float > gate_
Definition: frequencyattrib.h:100
sKey::Attributes
FixedString Attributes()
Definition: keystrs.h:39
Attrib::Frequency::variable_
float variable_
Definition: frequencyattrib.h:108
Attrib::Frequency::signal_
Array1DImpl< float_complex > * signal_
Definition: frequencyattrib.h:121
Attrib
Semblance Attribute.
Definition: attribdataholder.h:25
Interval< float >
Attrib::Desc
Description of an attribute in an Attrib::DescSet. Each attribute has a name (e.g....
Definition: attribdesc.h:89
Attrib::Frequency::fftisinit_
bool fftisinit_
Definition: frequencyattrib.h:117
TypeSet< int >
Attrib::Frequency::FreqFunc::FreqFunc
FreqFunc(const ValueSeries< float > &func, int sz)
Definition: frequencyattrib.h:128
Attrib::Frequency::imagidx_
int imagidx_
Definition: frequencyattrib.h:113

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