OpendTect  6.3
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 ________________________________________________________________________
10 
11 -*/
12 
13 #include "attributesmod.h"
14 #include "attribprovider.h"
15 #include "bufstringset.h"
16 #include "fourier.h"
17 #include "mathfunc.h"
18 #include "valseries.h"
19 #include "valseriesinterpol.h"
20 
21 #include <complex>
22 
23 
24 class ArrayNDWindow;
25 template<class T> class Array1DImpl;
26 class FFTFilter;
27 
28 namespace Attrib
29 {
30 
31 class DataHolder;
32 
67 {
68 public:
69  static void initClass();
70  Frequency(Desc&);
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 
80  void prepPriorToBoundsCalc();
81 
82 protected:
83  ~Frequency();
84  static Provider* createInstance(Desc&);
85  static void updateDesc(Desc&);
86  static void updateDefaults(Desc&);
87 
88  bool checkInpAndParsAtStart();
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 
106  //smoothspectrum_==true
108  //else
111  int fftsz_;
115 
117  float variable_;
118 
121  int realidx_;
122  int imagidx_;
123 
125 
127 
129  {
130  public:
131  FreqFunc(const ValueSeries<float>& func, int sz)
132  : func_( func )
133  , sz_(sz) {}
134 
135  virtual float getValue( float x ) const
136  {
137  ValueSeriesInterpolator<float> interp(sz_);
138  return interp.value(func_,x);
139  }
140  virtual float getValue( const float* p ) const
141  { return getValue(*p); }
142 
143  protected:
144 
146  int sz_;
147 
148  };
149 };
150 
151 }; // namespace Attrib
#define mExpClass(module)
Definition: commondefs.h:157
Does Fourier Transforms of any size.
Definition: fourier.h:28
Interval< int > samplegate_
Definition: frequencyattrib.h:101
bool normalize_
Definition: frequencyattrib.h:116
Definition: seistype.h:52
static const char * dumptofileStr()
Definition: frequencyattrib.h:77
int fftsz_
Definition: frequencyattrib.h:111
Tapers the N-dimentional ArrayND with a windowFunction.
Definition: arrayndalgo.h:870
BufferString windowtype_
Definition: frequencyattrib.h:103
FFTFilter * fftfilter_
Definition: frequencyattrib.h:107
int realidx_
Definition: frequencyattrib.h:121
FixedString Attributes()
Definition: keystrs.h:38
Mathematical function.
Definition: mathfunc.h:59
static const char * smoothspectrumStr()
Definition: frequencyattrib.h:78
static const char * gateStr()
Definition: frequencyattrib.h:73
const ValueSeries< float > & func_
Definition: frequencyattrib.h:145
Fourier::CC * fft_
Definition: frequencyattrib.h:112
bool fftisinit_
Definition: frequencyattrib.h:110
Set of BufferString objects.
Definition: bufstringset.h:25
T value(const ValueSeries< T > &, T pos) const
Definition: valseriesinterpol.h:59
static const char * attribName()
Definition: frequencyattrib.h:72
const DataHolder * imdata_
Definition: frequencyattrib.h:120
Array1DImpl< float_complex > * signal_
Definition: frequencyattrib.h:126
int sz_
Definition: frequencyattrib.h:146
static const char * windowStr()
Definition: frequencyattrib.h:75
int imagidx_
Definition: frequencyattrib.h:122
Frequency Attribute.
Definition: frequencyattrib.h:66
Description of an attribute in an Attrib::DescSet. Each attribute has a name (e.g. "Similarity"), a user reference (e.g. "My similarity"), and at least one output. In addition, it may have parameters and inputs. If it has multiple outputs, only one of the outputs are selected.
Definition: attribdesc.h:87
bool allowParallelComputation() const
Definition: frequencyattrib.h:89
Array1DImpl< float_complex > * timedomain_
Definition: frequencyattrib.h:113
static const char * paramvalStr()
Definition: frequencyattrib.h:76
bool dumptofile_
Definition: frequencyattrib.h:102
virtual float getValue(const float *p) const
Definition: frequencyattrib.h:140
ArrayNDWindow * window_
Definition: frequencyattrib.h:109
static const char * normalizeStr()
Definition: frequencyattrib.h:74
Definition: frequencyattrib.h:128
Holds the attribute data.
Definition: attribdataholder.h:39
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:28
Classical FFT filter, use set to set up data step, min and max frequency and type of the filter (minf...
Definition: fftfilter.h:30
FreqFunc(const ValueSeries< float > &func, int sz)
Definition: frequencyattrib.h:131
Provides the actual output to ...
Definition: attribprovider.h:40
bool smoothspectrum_
Definition: frequencyattrib.h:104
Implementation of Array1D.
Definition: arrayndimpl.h:51
virtual float getValue(float x) const
Definition: frequencyattrib.h:135
Interval< float > gate_
Definition: frequencyattrib.h:100
BufferStringSet dumpset_
Definition: frequencyattrib.h:124
Array1DImpl< float_complex > * freqdomain_
Definition: frequencyattrib.h:114
static void initClass()
Semblance Attribute.
Definition: attribdataholder.h:21
float variable_
Definition: frequencyattrib.h:117
const DataHolder * redata_
Definition: frequencyattrib.h:119

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