OpendTect  6.3
scalingattrib.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: N. Hemstra
8  Date: December 2004
9 ________________________________________________________________________
10 
11 -*/
12 
13 
14 #include "attributesmod.h"
15 #include "attribprovider.h"
16 
17 namespace Attrib
18 {
19 
37 {
38 public:
39  static void initClass();
40  Scaling(Desc&);
41  static const char* attribName() { return "Scaling"; }
42  static const char* scalingTypeStr() { return "scalingtype"; }
43  static const char* powervalStr() { return "powerval"; }
44  static const char* gateStr() { return "timegate"; }
45  static const char* factorStr() { return "scalefactor"; }
46  static const char* widthStr() { return "width"; }
47  static const char* mutefractionStr() { return "mutefraction"; }
48  static const char* statsTypeStr() { return "statstype"; }
49  static const char* sqrangeStr() { return "sqrange"; }
50  static const char* squntouchedStr() { return "squntouched"; }
51  static const char* statsTypeNamesStr(int type);
52  static const char* scalingTypeNamesStr(int type);
53 
54 protected:
55  ~Scaling() {}
56  static Provider* createInstance(Desc&);
57  static void updateDesc(Desc&);
58 
59  bool allowParallelComputation() const;
60 
61  bool getInputOutput(int input,TypeSet<int>& res) const;
62  bool getInputData(const BinID&,int zintv);
63  bool computeData(const DataHolder&,const BinID& relpos,
64  int z0,int nrsamples,int threadid) const;
65 
66  void getSampleGates(const TypeSet<Interval<float> >& oldtgs,
67  TypeSet< Interval<int> >& newsampgates,
68  int z0,int nrsamples) const;
69  void scaleSqueeze(const DataHolder&, int, int) const;
70  void scaleZN(const DataHolder&, int, int) const;
71  void scaleAGC(const DataHolder&,int z0,int nrsamples) const;
72  void scaleGain(const DataHolder&,int z0,int nrsamples) const;
73  void getScaleFactorsFromStats(
74  const TypeSet<Interval<int> >& gates,
75  TypeSet<float>& factors,int) const;
76  void getTrendsFromStats(
77  const TypeSet<Interval<int> >& gates,int);
78  const Interval<int>* desZSampMargin( int inp, int ) const;
79 
82  float powerval_;
86  int dataidx_;
88 
89  // for Squeeze
92 
93  // for AGC
94  float width_;
97 
98  //for trend removal ( trend of aX+b type )
99  struct Trend
100  {
101  Trend( float a, float b )
102  : a_( a )
103  , b_( b ) {};
104 
105  float valueAtX( float x ) const { return a_ * x + b_; }
106  bool operator==( Trend t ) const
107  { return t.a_==a_
108  && t.b_==b_; }
109 
110  float a_;
111  float b_;
112  };
113 
115 };
116 
117 }; // namespace Attrib
#define mExpClass(module)
Definition: commondefs.h:157
Interval< int > desgate_
Definition: scalingattrib.h:87
static const char * widthStr()
Definition: scalingattrib.h:46
Interval< float > squrg_
Definition: scalingattrib.h:91
float width_
Definition: scalingattrib.h:94
float a_
Definition: scalingattrib.h:110
float valueAtX(float x) const
Definition: scalingattrib.h:105
FixedString Attributes()
Definition: keystrs.h:38
Interval< float > window_
Definition: scalingattrib.h:95
Scaling Attribute Calculates the squared sum of the gate&#39;s samples divided by the number of samples i...
Definition: scalingattrib.h:36
const DataHolder * inputdata_
Definition: scalingattrib.h:85
float powerval_
Definition: scalingattrib.h:82
static const char * powervalStr()
Definition: scalingattrib.h:43
Interval< float > sqrg_
Definition: scalingattrib.h:90
static const char * gateStr()
Definition: scalingattrib.h:44
static const char * statsTypeStr()
Definition: scalingattrib.h:48
static const char * squntouchedStr()
Definition: scalingattrib.h:50
Trend(float a, float b)
Definition: scalingattrib.h:101
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
TypeSet< Trend > trends_
Definition: scalingattrib.h:114
TypeSet< Interval< float > > gates_
Definition: scalingattrib.h:83
TypeSet< float > factors_
Definition: scalingattrib.h:84
int dataidx_
Definition: scalingattrib.h:86
Holds the attribute data.
Definition: attribdataholder.h:39
static const char * sqrangeStr()
Definition: scalingattrib.h:49
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:28
int scalingtype_
Definition: scalingattrib.h:80
static const char * attribName()
Definition: scalingattrib.h:41
~Scaling()
Definition: scalingattrib.h:55
Provides the actual output to ...
Definition: attribprovider.h:40
int statstype_
Definition: scalingattrib.h:81
Definition: scalingattrib.h:99
float b_
Definition: scalingattrib.h:111
static const char * scalingTypeStr()
Definition: scalingattrib.h:42
static const char * mutefractionStr()
Definition: scalingattrib.h:47
bool operator==(Trend t) const
Definition: scalingattrib.h:106
float mutefraction_
Definition: scalingattrib.h:96
static const char * factorStr()
Definition: scalingattrib.h:45
static void initClass()
Semblance Attribute.
Definition: attribdataholder.h:21

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