OpendTect-6_4  6.4
attribstorprovider.h
Go to the documentation of this file.
1 #ifndef attribstorprovider_h
2 #define attribstorprovider_h
3 
4 /*+
5 ________________________________________________________________________
6 
7  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
8  Author: Kristofer Tingdahl
9  Date: 07-10-1999
10  RCS: $Id$
11 ________________________________________________________________________
12 
13 -*/
14 
15 #include "attributeenginemod.h"
16 #include "attribprovider.h"
17 #include "bindatadesc.h"
18 #include "datapack.h"
19 
20 class BufferStringSet;
22 class SeisMSCProvider;
23 class SeisTrc;
24 
25 namespace PosInfo{ class LineSet2DData; }
26 
27 namespace Attrib
28 {
29 
30 class DataHolder;
31 
36 mExpClass(AttributeEngine) StorageProvider : public Provider
38 public:
39 
40  static void initClass();
41  static const char* attribName() { return "Storage"; }
42  static const char* keyStr() { return "id"; }
43 
44  int moveToNextTrace(BinID startpos=BinID(-1,-1),
45  bool firstcheck=false);
46  bool getPossibleVolume(int outp,TrcKeyZSampling&);
47  BinID getStepoutStep() const;
48  void updateStorageReqs(bool all=true);
49  void adjust2DLineStoredVolume();
50  Pos::GeomID getGeomID() const;
51 
52  void fillDataPackWithTrc(RegularSeisDataPack*) const;
53  bool needStoredInput() const { return true; }
54  virtual void getCompNames(BufferStringSet&) const;
55  virtual float getDistBetwTrcs(bool,const char* linenm =0) const;
56  virtual bool compDistBetwTrcsStats(bool force=false);
57  BinID getElementStepoutStoredSpecial() const;
58 
59 protected:
60 
62  ~StorageProvider();
63 
64  static Provider* createInstance(Desc&);
65  static void updateDesc(Desc&);
66  static void updateDescAndGetCompNms(Desc&,BufferStringSet*);
67 
68  bool getLine2DStoredVolume();
69  bool checkInpAndParsAtStart();
70  bool allowParallelComputation() const { return false; }
71 
72  //From disc
73  SeisMSCProvider* getMSCProvider(bool&) const;
74  bool initMSCProvider();
75  bool setMSCProvSelData();
76 
77  //From memory (in Attrib::DataPacks)
78  SeisTrc* getTrcFromPack(const BinID&,int) const;
79  DataPack::FullID getDPID() const;
80 
81  void setReqBufStepout(const BinID&,bool wait=false);
82  void setDesBufStepout(const BinID&,bool wait=false);
83  bool computeData(const DataHolder& output,
84  const BinID& relpos,
85  int t0,int nrsamples,int threadid) const;
86 
87  bool fillDataHolderWithTrc(const SeisTrc*,
88  const DataHolder&) const;
89  bool getZStepStoredData(float& step) const
90  { step = storedvolume_.zsamp_.step; return true; }
91  bool getZ0StoredData(float& z0) const
92  { z0 = storedvolume_.zsamp_.start; return true; }
93 
94  BinDataDesc getOutputFormat(int output) const;
95 
96  bool checkDesiredTrcRgOK(StepInterval<int>,
98  bool checkDesiredVolumeOK();
99  void checkClassType(const SeisTrc*,BoolTypeSet&) const;
100  bool setTableSelData();
101  bool set2DRangeSelData();
102 
103  void registerNewPosInfo(SeisTrc*,const BinID&,bool,bool&);
104  bool useInterTrcDist() const;
105  //to counter impossibility to create a virtual function
106 
111  bool isondisc_;
114 
115  enum Status { Nada, StorageOpened, Ready } status_;
116 };
117 
118 }; // namespace Attrib
119 
120 #endif
#define mExpClass(module)
Definition: commondefs.h:160
bool allowParallelComputation() const
Definition: attribstorprovider.h:70
bool getZ0StoredData(float &z0) const
Definition: attribstorprovider.h:91
#define mODTextTranslationClass(clss)
Definition: uistring.h:38
Definition: i_layout.h:35
SeisDataPack for 2D and 3D seismic data.
Definition: seisdatapack.h:28
Set of BufferString objects.
Definition: bufstringset.h:28
bool isondisc_
Definition: attribstorprovider.h:111
Definition: attribstorprovider.h:115
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:89
static mODTextTranslationClass(StorageProvider) public const char * attribName()
Definition: attribstorprovider.h:41
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:35
PosInfo::LineSet2DData * ls2ddata_
Definition: attribstorprovider.h:113
BinID stepoutstep_
Definition: attribstorprovider.h:109
Status
Definition: attribstorprovider.h:115
bool needStoredInput() const
Definition: attribstorprovider.h:53
TrcKeyZSampling storedvolume_
Definition: attribstorprovider.h:110
Position info for a set of 2D lines.
Definition: linesetposinfo.h:26
Index_Type GeomID
Definition: commontypes.h:52
bool useintertrcdist_
Definition: attribstorprovider.h:112
Position info, often segmented.
Definition: posinfo.h:40
Holds the attribute data.
Definition: attribdataholder.h:43
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:30
Seismic trace.
Definition: seistrc.h:34
TypeSet< BinDataDesc > datachar_
Definition: attribstorprovider.h:107
Reads seismic data into buffers providing a Moving Virtual Subcube of seismic data.
Definition: seiscubeprov.h:56
Provides the actual output to ...
Definition: attribprovider.h:44
static const char * keyStr()
Definition: attribstorprovider.h:42
Description of binary data.
Definition: bindatadesc.h:43
Attribute storage provider.
Definition: attribstorprovider.h:36
Compound key consisting of ints.
Definition: multiid.h:25
static void initClass()
Semblance Attribute.
Definition: attribdataholder.h:25
SeisMSCProvider * mscprov_
Definition: attribstorprovider.h:108
bool getZStepStoredData(float &step) const
Definition: attribstorprovider.h:89

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