OpendTect  6.3
volstatsattrib.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 
16 namespace Attrib
17 {
18 
25 public:
26  static void initDesc(Desc&);
27 
28  static const char* nrvolumesStr() { return "nrvolumes"; }
29  static const char* stepoutStr() { return "stepout"; }
30  static const char* shapeStr() { return "shape"; }
31  static const char* gateStr() { return "gate"; }
32  static const char* absolutegateStr() { return "absolutegate"; }
33  static const char* nrtrcsStr() { return "nrtrcs"; }
34  static const char* steeringStr() { return "steering"; }
35  static const char* shapeTypeStr(int);
36 
37  virtual void prepPriorToBoundsCalc();
38  virtual void initSteering() { stdPrepSteering(stepout_); }
39  bool isSingleTrace() const
40  { return !stepout_.inl() && !stepout_.crl(); }
41 
42 protected:
44 
45  void init();
46  int* outputTypes() const;
47 
48  static void updateDefaults(Desc&);
49 
51  { return true; }
52 
53  virtual bool getInputOutput(int,TypeSet<int>& res) const;
54  virtual bool getInputData(const BinID&,int zintv);
55 
56  virtual bool computeData(const DataHolder&,
57  const BinID& relpos,
58  int z0,int nrsamples,
59  int threadid) const = 0;
60 
61  const BinID* desStepout(int input,int output) const;
62  const Interval<float>* desZMargin( int inp, int ) const;
63  virtual const Interval<float>* reqZMargin(int input,int output) const;
64 
66  int shape_;
70 
72  int dataidx_;
73 
76 };
77 
78 
113 public:
114  static void initClass();
115  VolStats(Desc&);
116 
117  static const char* attribName() { return "VolumeStatistics"; }
118  static const char* allowEdgeEffStr() { return "allowedgeeffects"; }
119  static const char* optstackstepStr() { return "optstackstep"; }
120  static const char* optstackdirStr() { return "optstackdir"; }
121  static const char* optStackDirTypeStr(int);
122 
123  void prepPriorToBoundsCalc();
124  void setRdmPaths( TypeSet<BinID>* truepos,
125  TypeSet<BinID>* snappedpos )
126  { linetruepos_ = truepos
127  ? new TypeSet<BinID>(*truepos)
128  : new TypeSet<BinID>();
129  linepath_ = snappedpos
130  ? new TypeSet<BinID>(*snappedpos)
131  : new TypeSet<BinID>(); }
132 
133 protected:
134  ~VolStats();
135 
136  static Provider* createInstance(Desc&);
137  static void updateDesc(Desc&);
138 
139  virtual bool getInputData(const BinID&,int zintv);
140  virtual bool getInputOutput(int,TypeSet<int>& res) const;
141 
142  virtual bool computeData(const DataHolder&,
143  const BinID& relpos,
144  int z0,int nrsamples,
145  int threadid) const;
146 
147  void getStackPositions(TypeSet<BinID>&) const;
148  void getIdealStackPos(
149  const BinID&,const BinID&,const BinID&,
150  TypeSet< Geom::Point2D<float> >&) const;
151  void reInitPosAndSteerIdxes();
152 
153  const Interval<float>* reqZMargin(int input,int output) const;
154 
155  bool dosteer_;
157 
163 };
164 
165 } // namespace Attrib
#define mExpClass(module)
Definition: commondefs.h:157
bool dosteer_
Definition: volstatsattrib.h:155
int dataidx_
Definition: volstatsattrib.h:72
bool isSingleTrace() const
Definition: volstatsattrib.h:39
static const char * optstackdirStr()
Definition: volstatsattrib.h:120
static const char * stepoutStr()
Definition: volstatsattrib.h:29
int optstackstep_
Definition: volstatsattrib.h:162
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
int minnrtrcs_
Definition: volstatsattrib.h:69
int shape_
Definition: volstatsattrib.h:66
bool init()
static const char * nrvolumesStr()
Definition: volstatsattrib.h:28
FixedString Attributes()
Definition: keystrs.h:38
static const char * allowEdgeEffStr()
Definition: volstatsattrib.h:118
Use VolStats instead.
Definition: volstatsattrib.h:23
static const char * attribName()
Definition: volstatsattrib.h:117
TypeSet< BinID > positions_
Definition: volstatsattrib.h:71
bool allowParallelComputation() const
Definition: volstatsattrib.h:50
ObjectSet< const DataHolder > inputdata_
Definition: volstatsattrib.h:74
void setRdmPaths(TypeSet< BinID > *truepos, TypeSet< BinID > *snappedpos)
For directional attributes.
Definition: volstatsattrib.h:124
TypeSet< BinID > * linetruepos_
Definition: volstatsattrib.h:160
Set of pointers to objects.
Definition: commontypes.h:28
static const char * steeringStr()
Definition: volstatsattrib.h:34
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
const DataHolder * steeringdata_
Definition: volstatsattrib.h:75
Volume Statistics Attribute.
Definition: volstatsattrib.h:111
Interval< float > desgate_
Definition: volstatsattrib.h:68
TypeSet< BinID > * linepath_
Definition: volstatsattrib.h:159
TypeSet< int > steerindexes_
Definition: volstatsattrib.h:158
Holds the attribute data.
Definition: attribdataholder.h:39
bool allowedgeeffects_
Definition: volstatsattrib.h:156
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:28
static const char * nrtrcsStr()
Definition: volstatsattrib.h:33
static const char * optstackstepStr()
Definition: volstatsattrib.h:119
static const char * gateStr()
Definition: volstatsattrib.h:31
Provides the actual output to ...
Definition: attribprovider.h:40
Interval< float > gate_
Definition: volstatsattrib.h:67
virtual void initSteering()
Definition: volstatsattrib.h:38
static const char * shapeStr()
Definition: volstatsattrib.h:30
static const char * absolutegateStr()
Definition: volstatsattrib.h:32
BinID stepout_
Definition: volstatsattrib.h:65
static void initClass()
Semblance Attribute.
Definition: attribdataholder.h:21
int optstackdir_
Definition: volstatsattrib.h:161

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