OpendTect  6.3
prestackattrib.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: B.Bril & H.Huck
8  Date: 14-01-2008
9 ________________________________________________________________________
10 
11 -*/
12 
13 
14 #include "attributesmod.h"
15 #include "attribprovider.h"
16 #include "prestackprop.h"
17 #include "dbkey.h"
18 #include "datapack.h"
19 #include "prestackgather.h"
20 
21 class Gather;
22 class SeisPSReader;
23 class IOObj;
24 
25 namespace PreStack { class ProcessManager; class AngleComputer; }
26 
27 namespace Attrib
28 {
29 
52 public:
53 
54  static void initClass();
55 
56  PSAttrib(Desc&);
57 
58  static const char* attribName() { return "PreStack"; }
59  static const char* offStartStr() { return "offstart"; }
60  static const char* offStopStr() { return "offstop"; }
61  static const char* preProcessStr() { return "preprocessor"; }
62  static const char* calctypeStr() { return "calctype"; }
63  static const char* stattypeStr() { return "stattype"; }
64  static const char* lsqtypeStr() { return "lsqtype"; }
65  static const char* offsaxisStr() { return "offsaxis"; }
66  static const char* valaxisStr() { return "valaxis"; }
67  static const char* componentStr() { return "comp"; }
68  static const char* apertureStr() { return "aperture"; }
69  static const char* velocityIDStr() { return "velocityid"; }
70  static const char* useangleStr() { return "useangle"; }
71  static const char* angleStartStr() { return "anglestart"; }
72  static const char* angleStopStr() { return "anglestop"; }
73  static const char* rayTracerParamStr() { return "raytracerparam"; }
74  static const char* gathertypeStr() { return "gathertype"; }
75  static const char* xaxisunitStr() { return "xaxisunit"; }
76  static const char* angleDPIDStr() { return "angleid"; }
77 
78  enum GatherType { Off, Ang };
80  enum XaxisUnit { Deg, Rad };
81  mDeclareEnumUtils(XaxisUnit)
82 
83  const PreStack::PropCalc::Setup& setup() const { return setup_; }
84  const DBKey& psID() const { return psid_; }
85  const DBKey& preProcID() const { return preprocid_; }
86  const DBKey& velocityID() const
87  { return velocityid_; }
88 
89  void updateCSIfNeeded(TrcKeyZSampling&) const;
90  void setAngleComp(PreStack::AngleComputer*);
91  void setAngleData(DataPack::ID);
92 
93 protected:
94 
95  ~PSAttrib();
96  static Provider* createInstance(Desc&);
97  static void updateDesc(Desc&);
98 
99  bool allowParallelComputation() const { return true;}
100  bool getInputOutput(int input,TypeSet<int>& res) const;
101  bool getInputData(const BinID&, int idx);
102  bool getAngleInputData();
103  bool computeData(const DataHolder&,const BinID& relpos,
104  int t0,int nrsamples,int threadid) const;
105  void prepPriorToBoundsCalc();
106  void setSmootheningPar();
107  float getXscaler(bool isoffset, bool isindegrees) const;
108 
109  RefMan<Gather> getPreProcessed(const BinID& relbid);
110  bool getGatherData(const BinID& bid,
111  RefMan<Gather>& gather,
112  RefMan<Gather>& anggleg);
113 
123 
125  int dataidx_;
128 
130 };
131 
132 }; // namespace Attrib
#define mExpClass(module)
Definition: commondefs.h:157
DBKey preprocid_
Definition: prestackattrib.h:124
static const char * componentStr()
Definition: prestackattrib.h:67
static const char * useangleStr()
Definition: prestackattrib.h:70
static const char * valaxisStr()
Definition: prestackattrib.h:66
FixedString Setup()
Definition: keystrs.h:113
Definition: ioobj.h:57
Definition: angles.h:25
static const char * xaxisunitStr()
Definition: prestackattrib.h:75
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
PreStack gather.
Definition: prestackgather.h:28
Definition: prestackagc.h:18
FixedString Attributes()
Definition: keystrs.h:38
mDeclareEnumUtils(GatherType) enum XaxisUnit
Definition: prestackattrib.h:79
static const char * offStartStr()
Definition: prestackattrib.h:59
Calculates &#39;post-stack&#39; properties of a PreStack data store.
Definition: prestackprop.h:30
const DataHolder * inputdata_
Definition: prestackattrib.h:126
int dataidx_
Definition: prestackattrib.h:125
#define mDeclareEnumUtils(enm)
Some utilities surrounding the often needed enum <-> string table.
Definition: enums.h:188
static const char * apertureStr()
Definition: prestackattrib.h:68
IOObj * psioobj_
Definition: prestackattrib.h:115
PreStack::PropCalc * propcalc_
Definition: prestackattrib.h:119
static const char * gathertypeStr()
Definition: prestackattrib.h:74
static const char * preProcessStr()
Definition: prestackattrib.h:61
static const char * angleStartStr()
Definition: prestackattrib.h:71
static const char * attribName()
Definition: prestackattrib.h:58
PreStack::PropCalc::Setup setup_
Definition: prestackattrib.h:120
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
RefObjectSet< Gather > gatherset_
Definition: prestackattrib.h:129
int component_
Definition: prestackattrib.h:117
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:32
"Prestack Attribute"
Definition: prestackattrib.h:50
PreStack::ProcessManager * preprocessor_
Definition: prestackattrib.h:118
static const char * offStopStr()
Definition: prestackattrib.h:60
static const char * stattypeStr()
Definition: prestackattrib.h:63
PreStack::AngleComputer * anglecomp_
Definition: prestackattrib.h:121
Holds the attribute data.
Definition: attribdataholder.h:39
bool allowParallelComputation() const
Definition: prestackattrib.h:99
static const char * velocityIDStr()
Definition: prestackattrib.h:69
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:28
GatherType
Definition: prestackattrib.h:78
static const char * angleDPIDStr()
Definition: prestackattrib.h:76
SeisPSReader * psrdr_
Definition: prestackattrib.h:116
DBKey psid_
Definition: prestackattrib.h:114
static const char * offsaxisStr()
Definition: prestackattrib.h:65
Provides the actual output to ...
Definition: attribprovider.h:40
static const char * lsqtypeStr()
Definition: prestackattrib.h:64
Full key to any object in the OpendTect data store.
Definition: dbkey.h:36
Definition: groupedid.h:41
Definition: angles.h:25
static const char * calctypeStr()
Definition: prestackattrib.h:62
reads from a prestack seismic data store.
Definition: seispsread.h:33
static const char * rayTracerParamStr()
Definition: prestackattrib.h:73
Orgainizes a number of PreStack::Processors into a chain which can be processed.
Definition: prestackprocessor.h:136
Computes angles for Gather.
Definition: prestackanglecomputer.h:38
DataPack::ID anglegsdpid_
Definition: prestackattrib.h:122
DBKey velocityid_
Definition: prestackattrib.h:127
static const char * angleStopStr()
Definition: prestackattrib.h:72
static void initClass()
Semblance Attribute.
Definition: attribdataholder.h:21
Definition: prestackattrib.h:78

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