OpendTect  6.6
valseriestracker.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: A.H.Bril
8  Date: Dec 2006
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "algomod.h"
15 #include "valseriesevent.h"
16 
17 template <class T> class ValueSeries;
18 
19 
26 {
27 public:
29  virtual ~ValSeriesTracker() {}
30  virtual const char* type() = 0;
31 
32  virtual bool isOK() const;
35  virtual void setSource(const ValueSeries<float>*,int sz,float depth);
36  virtual void setTarget(const ValueSeries<float>*,int sz,
37  float initialdepth);
38 
39  virtual bool track() = 0;
42  virtual float targetValue() const { return targetvalue_; }
43  virtual float targetDepth() const { return targetdepth_; }
44  virtual float quality() const { return 1; }
45 
46  virtual void fillPar(IOPar& par) const {}
47  virtual bool usePar(const IOPar& par) { return true; }
48 
49 protected:
50 
52  float sourcedepth_;
55  float targetdepth_;
57  float targetvalue_;
58 };
59 
60 
66 {
67 public:
69 
70  const char* type() { return sType(); }
71  static const char* sType() { return "EventTracker"; }
72 
73  enum CompareMethod { None, SeedTrace, AdjacentParent };
75 
76  void setCompareMethod(CompareMethod);
78 
79  static const char** sEventNames();
80  static const VSEvent::Type* cEventTypes();
82 
83  virtual bool isOK() const;
84 
85  void setSeed(const ValueSeries<float>*,int sz,
86  float depth);
87 
88  void setRangeStep(float step) { rangestep_ = step; }
89  float getRangeStep() const { return rangestep_; }
91  //<!Is divided by rangestep to get nrof samples
117  bool snap(const Interval<float>& amplrg);
118  bool snap(float threshold);
124  void useSimilarity(bool yn);
125  bool usesSimilarity() const;
128 
129  void setUseAbsThreshold(bool abs);
137  bool useAbsThreshold() const;
138 
139  void setAmplitudeThreshold(float th);
141  float amplitudeThreshold() const;
142 
145 
146  void setAllowedVariance(float v);
148  float allowedVariance() const;
149 
152 
155  void setSimilarityThreshold(float th);
156  float similarityThreshold() const;
157 
158  void setSnapToEvent(bool);
159  bool snapToEvent() const;
160 
161  bool track();
162  float quality() const { return quality_; }
163 
164  void fillPar(IOPar& par) const;
165  bool usePar(const IOPar& par);
166 
167 protected:
168 
171  const Interval<float>&,float,float&,bool&,float&) const;
174  const Interval<float>& zrg,
175  const Interval<float>& amplrg,float& avgampl,
176  bool& hasloopskips,float& troughampl) const;
177  bool findMaxSimilarity(int nrtests,int step,int nrgracetests,
178  float& res,float& maxsim,
179  bool& flatstart) const;
180  bool isTargetValueAllowed() const;
181 
187  float allowedvar_;
191  float rangestep_;
196  bool dosnap_;
197  float quality_;
199 
201  float seeddepth_;
203 
204  static const char* sKeyPermittedRange();
205  static const char* sKeyValueThreshold();
206  static const char* sKeyValueThresholds();
207  static const char* sKeyAllowedVariance();
208  static const char* sKeyAllowedVariances();
209  static const char* sKeyUseAbsThreshold();
210  static const char* sKeySimWindow();
211  static const char* sKeySimThreshold();
212  static const char* sKeyNormSimi();
213  static const char* sKeyTrackByValue();
214  static const char* sKeyTrackEvent();
215  static const char* sKeyCompareMethod();
216  static const char* sKeyAttribID();
217  static const char* sKeySnapToEvent();
218  static const char* sKeyAllowSignChg();
219 
220 };
221 
ValueSeries
Interface to a series of values.
Definition: odmemory.h:16
EventTracker::allowedvar_
float allowedvar_
Definition: valseriestracker.h:187
EventTracker::CompareMethod
CompareMethod
Definition: valseriestracker.h:73
EventTracker::setAmplitudeThresholds
void setAmplitudeThresholds(const TypeSet< float > &)
EventTracker::sKeySnapToEvent
static const char * sKeySnapToEvent()
EventTracker::sEventNames
static const char ** sEventNames()
EventTracker::cEventTypes
static const VSEvent::Type * cEventTypes()
EventTracker::findMaxSimilarity
bool findMaxSimilarity(int nrtests, int step, int nrgracetests, float &res, float &maxsim, bool &flatstart) const
EventTracker::sKeyCompareMethod
static const char * sKeyCompareMethod()
ValSeriesTracker::usePar
virtual bool usePar(const IOPar &par)
Definition: valseriestracker.h:47
EventTracker::evtype_
VSEvent::Type evtype_
Definition: valseriestracker.h:182
ValSeriesTracker::targetsize_
int targetsize_
Definition: valseriestracker.h:56
ValueSeriesEvFinder
Event finder in gate.
Definition: valseriesevent.h:65
EventTracker::sKeyValueThresholds
static const char * sKeyValueThresholds()
ValSeriesTracker::sourcedepth_
float sourcedepth_
Definition: valseriestracker.h:52
ValSeriesTracker::setTarget
virtual void setTarget(const ValueSeries< float > *, int sz, float initialdepth)
EventTracker::setAllowedVariances
void setAllowedVariances(const TypeSet< float > &avs)
EventTracker::sKeyAllowedVariance
static const char * sKeyAllowedVariance()
EventTracker::similaritythreshold_
float similaritythreshold_
Definition: valseriestracker.h:192
EventTracker::snapToEvent
bool snapToEvent() const
EventTracker::snap
bool snap(float threshold)
EventTracker::mDeclareEnumUtils
mDeclareEnumUtils(CompareMethod) void setCompareMethod(CompareMethod)
EventTracker::sKeySimWindow
static const char * sKeySimWindow()
ValSeriesTracker::targetvs_
const ValueSeries< float > * targetvs_
Definition: valseriestracker.h:54
EventTracker::setSeed
void setSeed(const ValueSeries< float > *, int sz, float depth)
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
valseriesevent.h
EventTracker::normalizesSimilarityValues
bool normalizesSimilarityValues() const
EventTracker::ampthreshold_
float ampthreshold_
Definition: valseriestracker.h:185
ValSeriesTracker::type
virtual const char * type()=0
EventTracker::snap
bool snap(const Interval< float > &amplrg)
EventTracker::usesSimilarity
bool usesSimilarity() const
EventTracker::usesimilarity_
bool usesimilarity_
Definition: valseriestracker.h:193
EventTracker::fillPar
void fillPar(IOPar &par) const
ValueSeriesEvent
Event in value series.
Definition: valseriesevent.h:40
ValSeriesTracker::fillPar
virtual void fillPar(IOPar &par) const
Definition: valseriestracker.h:46
EventTracker::sKeyTrackByValue
static const char * sKeyTrackByValue()
EventTracker::sKeyAllowedVariances
static const char * sKeyAllowedVariances()
EventTracker::similarityThreshold
float similarityThreshold() const
EventTracker::amplitudeThreshold
float amplitudeThreshold() const
EventTracker::SeedTrace
@ SeedTrace
Definition: valseriestracker.h:73
ValSeriesTracker::sourcevs_
const ValueSeries< float > * sourcevs_
Definition: valseriestracker.h:51
EventTracker::similarityWindow
const Interval< float > & similarityWindow() const
EventTracker::type
const char * type()
Definition: valseriestracker.h:70
EventTracker::usePar
bool usePar(const IOPar &par)
EventTracker::normalizeSimilarityValues
void normalizeSimilarityValues(bool yn)
ValSeriesTracker::track
virtual bool track()=0
EventTracker::isOK
virtual bool isOK() const
EventTracker::sType
static const char * sType()
Definition: valseriestracker.h:71
EventTracker::sKeyTrackEvent
static const char * sKeyTrackEvent()
EventTracker::allowAmplitudeSignChange
void allowAmplitudeSignChange(bool)
EventTracker::ampthresholds_
TypeSet< float > ampthresholds_
Definition: valseriestracker.h:186
EventTracker::setPermittedRange
void setPermittedRange(const Interval< float > &rg)
EventTracker::setTrackEvent
void setTrackEvent(VSEvent::Type ev)
EventTracker::track
bool track()
EventTracker::setSimilarityWindow
void setSimilarityWindow(const Interval< float > &rg)
EventTracker::seedsize_
int seedsize_
Definition: valseriestracker.h:202
ValSeriesTracker::targetvalue_
float targetvalue_
Definition: valseriestracker.h:57
EventTracker::useabsthreshold_
bool useabsthreshold_
Definition: valseriestracker.h:189
EventTracker::allowamplsignchg_
bool allowamplsignchg_
Definition: valseriestracker.h:198
EventTracker::setUseAbsThreshold
void setUseAbsThreshold(bool abs)
EventTracker::sKeyUseAbsThreshold
static const char * sKeyUseAbsThreshold()
EventTracker::compareampl_
float compareampl_
Definition: valseriestracker.h:195
EventTracker::allowedVariance
float allowedVariance() const
EventTracker::normalizesimi_
bool normalizesimi_
Definition: valseriestracker.h:194
VSEvent::Type
Type
Definition: valseriesevent.h:25
EventTracker::sKeyPermittedRange
static const char * sKeyPermittedRange()
EventTracker::getAmplitudeThresholds
TypeSet< float > & getAmplitudeThresholds()
EventTracker::EventTracker
EventTracker()
EventTracker::setSimilarityThreshold
void setSimilarityThreshold(float th)
EventTracker::findExtreme
ValueSeriesEvent< float, float > findExtreme(const ValueSeriesEvFinder< float, float > &, const Interval< float > &zrg, const Interval< float > &amplrg, float &avgampl, bool &hasloopskips, float &troughampl) const
EventTracker::seedvs_
const ValueSeries< float > * seedvs_
Definition: valseriestracker.h:200
EventTracker
Tracker that tracks Min/Max & Zero crossings between valueseries.
Definition: valseriestracker.h:66
EventTracker::findExtreme
ValueSeriesEvent< float, float > findExtreme(const ValueSeriesEvFinder< float, float > &, const Interval< float > &, float, float &, bool &, float &) const
EventTracker::quality_
float quality_
Definition: valseriestracker.h:197
EventTracker::quality
float quality() const
Definition: valseriestracker.h:162
EventTracker::getEventTypeIdx
static int getEventTypeIdx(VSEvent::Type)
EventTracker::isAmplitudeSignChangeAllowed
bool isAmplitudeSignChangeAllowed() const
Network::None
@ None
Definition: networkcommon.h:33
EventTracker::sKeyAttribID
static const char * sKeyAttribID()
EventTracker::isTargetValueAllowed
bool isTargetValueAllowed() const
ValSeriesTracker
Base class for a tracker that tracks something (e.g. min, max, a certain value)++ from one ValueSerie...
Definition: valseriestracker.h:26
EventTracker::setSnapToEvent
void setSnapToEvent(bool)
ValSeriesTracker::setSource
virtual void setSource(const ValueSeries< float > *, int sz, float depth)
EventTracker::rangestep_
float rangestep_
Definition: valseriestracker.h:191
ValSeriesTracker::targetdepth_
float targetdepth_
Definition: valseriestracker.h:55
EventTracker::setRangeStep
void setRangeStep(float step)
Definition: valseriestracker.h:88
EventTracker::setAmplitudeThreshold
void setAmplitudeThreshold(float th)
Must be set if using absolute threshold.
EventTracker::permrange_
Interval< float > permrange_
Definition: valseriestracker.h:183
EventTracker::getRangeStep
float getRangeStep() const
Definition: valseriestracker.h:89
EventTracker::sKeyAllowSignChg
static const char * sKeyAllowSignChg()
ValSeriesTracker::targetDepth
virtual float targetDepth() const
Definition: valseriestracker.h:43
EventTracker::allowedvars_
TypeSet< float > allowedvars_
Definition: valseriestracker.h:188
ValSeriesTracker::quality
virtual float quality() const
Definition: valseriestracker.h:44
ValSeriesTracker::~ValSeriesTracker
virtual ~ValSeriesTracker()
Definition: valseriestracker.h:29
ValSeriesTracker::targetValue
virtual float targetValue() const
Definition: valseriestracker.h:42
EventTracker::setAllowedVariance
void setAllowedVariance(float v)
Only used if not using absolute threshold.
EventTracker::getCompareMethod
CompareMethod getCompareMethod() const
EventTracker::dosnap_
bool dosnap_
Definition: valseriestracker.h:196
Interval< float >
EventTracker::getAllowedVariances
TypeSet< float > & getAllowedVariances()
EventTracker::sKeyNormSimi
static const char * sKeyNormSimi()
ValSeriesTracker::isOK
virtual bool isOK() const
ValSeriesTracker::sourcesize_
int sourcesize_
Definition: valseriestracker.h:53
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
EventTracker::similaritywin_
Interval< float > similaritywin_
Definition: valseriestracker.h:190
EventTracker::seeddepth_
float seeddepth_
Definition: valseriestracker.h:201
ValSeriesTracker::ValSeriesTracker
ValSeriesTracker()
EventTracker::permittedRange
const Interval< float > & permittedRange() const
EventTracker::useSimilarity
void useSimilarity(bool yn)
EventTracker::trackEvent
VSEvent::Type trackEvent() const
EventTracker::useAbsThreshold
bool useAbsThreshold() const
EventTracker::sKeySimThreshold
static const char * sKeySimThreshold()
EventTracker::comparemethod_
CompareMethod comparemethod_
Definition: valseriestracker.h:184
TypeSet< float >
EventTracker::sKeyValueThreshold
static const char * sKeyValueThreshold()

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