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

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