OpendTect  6.3
similarityattrib.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 "valseries.h"
16 #include "valseriesinterpol.h"
17 #include "mathfunc.h"
18 
19 namespace Attrib
20 {
21 
64 {
65 public:
66  static void initClass();
67  Similarity(Desc&);
68 
69  static const char* attribName() { return "Similarity"; }
70  static const char* gateStr() { return "gate"; }
71  static const char* pos0Str() { return "pos0"; }
72  static const char* pos1Str() { return "pos1"; }
73  static const char* stepoutStr() { return "stepout"; }
74  static const char* steeringStr() { return "steering"; }
75  static const char* browsedipStr() { return "browsedip"; }
76  static const char* normalizeStr() { return "normalize"; }
77  static const char* extensionStr() { return "extension"; }
78  static const char* maxdipStr() { return "maxdip"; }
79  static const char* ddipStr() { return "ddip"; }
80  static const char* extensionTypeStr(int);
81  void initSteering() { stdPrepSteering(stepout_); }
82 
83  void prepPriorToBoundsCalc();
84 
85 protected:
87  static Provider* createInstance(Desc&);
88  static void updateDesc(Desc&);
89  static void updateDefaults(Desc&);
90 
92  { return true; }
93 
94  bool getInputOutput(int inp,TypeSet<int>& res) const;
95  bool getInputData(const BinID&,int zintv);
96  bool computeData(const DataHolder&,
97  const BinID& relpos,
98  int z0,int nrsamples,
99  int threadid) const;
100 
101  const BinID* reqStepout(int input,int output) const;
102  const Interval<float>* reqZMargin(int input,int output) const;
103  const Interval<float>* desZMargin(int input,int output) const;
104  bool getTrcPos();
105 
112  float maxdip_;
113  float ddip_;
114 
116 
118  bool dosteer_;
121  int dataidx_;
125 
126  float distinl_;
127  float distcrl_;
128 
131 
133  {
134  public:
135  SimiFunc(const ValueSeries<float>& func, int sz)
136  : func_( func )
137  , sz_(sz)
138  {}
139 
140  virtual float getValue( float x ) const
141  {
142  ValueSeriesInterpolator<float> interp(sz_);
143  //We can afford using extrapolation with polyReg1DWithUdf because even if
144  //extrapolation is needed,position will always be close to v0;
145  //it is only supposed to be used for extraz compensation
146  //in case needinterp==true, DO NOT REMOVE checks on s0&s1 in .cc file!
147  if ( (-1<x && x<0) || (sz_<x && x<sz_+1) )
148  interp.extrapol_ = true;
149  return interp.value(func_,x);
150  }
151  virtual float getValue( const float* p ) const
152  { return getValue(*p); }
153 
154  protected:
156  int sz_;
157  };
158 
159 };
160 
161 } // namespace Attrib
#define mExpClass(module)
Definition: commondefs.h:157
static const char * pos1Str()
Definition: similarityattrib.h:72
Similarity Attribute
Definition: similarityattrib.h:63
static const char * gateStr()
Definition: similarityattrib.h:70
const DataHolder * steeringdata_
Definition: similarityattrib.h:130
Definition: similarityattrib.h:132
bool donormalize_
Definition: similarityattrib.h:120
static const char * stepoutStr()
Definition: similarityattrib.h:73
static const char * attribName()
Definition: similarityattrib.h:69
virtual float getValue(const float *p) const
Definition: similarityattrib.h:151
Interval< float > desgate_
Definition: similarityattrib.h:115
FixedString Attributes()
Definition: keystrs.h:38
int dataidx_
Definition: similarityattrib.h:121
Mathematical function.
Definition: mathfunc.h:59
ObjectSet< const DataHolder > inputdata_
Definition: similarityattrib.h:129
bool dobrowsedip_
Definition: similarityattrib.h:117
T value(const ValueSeries< T > &, T pos) const
Definition: valseriesinterpol.h:59
Interval< float > gate_
Definition: similarityattrib.h:109
void initSteering()
Definition: similarityattrib.h:81
Set of pointers to objects.
Definition: commontypes.h:28
~Similarity()
Definition: similarityattrib.h:86
float distinl_
Definition: similarityattrib.h:126
TypeSet< int > pos1s_
Definition: similarityattrib.h:124
bool dosteer_
Definition: similarityattrib.h:118
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< int > steerindexes_
Definition: similarityattrib.h:119
static const char * extensionStr()
Definition: similarityattrib.h:77
virtual float getValue(float x) const
Definition: similarityattrib.h:140
float ddip_
Definition: similarityattrib.h:113
BinID pos1_
Definition: similarityattrib.h:107
int extension_
Definition: similarityattrib.h:110
bool extrapol_
Definition: valseriesinterpol.h:43
SimiFunc(const ValueSeries< float > &func, int sz)
Definition: similarityattrib.h:135
int sz_
Definition: similarityattrib.h:156
static const char * normalizeStr()
Definition: similarityattrib.h:76
static const char * browsedipStr()
Definition: similarityattrib.h:75
float maxdip_
Definition: similarityattrib.h:112
Holds the attribute data.
Definition: attribdataholder.h:39
static const char * maxdipStr()
Definition: similarityattrib.h:78
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:28
static const char * pos0Str()
Definition: similarityattrib.h:71
const ValueSeries< float > & func_
Definition: similarityattrib.h:155
float distcrl_
Definition: similarityattrib.h:127
Provides the actual output to ...
Definition: attribprovider.h:40
bool allowParallelComputation() const
Definition: similarityattrib.h:91
int imdataidx_
Definition: similarityattrib.h:122
static const char * ddipStr()
Definition: similarityattrib.h:79
TypeSet< int > pos0s_
Definition: similarityattrib.h:123
BinID pos0_
Definition: similarityattrib.h:106
TypeSet< BinID > trcpos_
Definition: similarityattrib.h:111
BinID stepout_
Definition: similarityattrib.h:108
static void initClass()
static const char * steeringStr()
Definition: similarityattrib.h:74
Semblance Attribute.
Definition: attribdataholder.h:21

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