OpendTect  6.3
attribstorprovider.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 "attributeenginemod.h"
14 #include "attribprovider.h"
15 #include "bindatadesc.h"
16 #include "datapack.h"
17 
18 class BufferStringSet;
20 class SeisTrc;
21 namespace Seis { class MSCProvider; }
22 
23 namespace PosInfo{ class LineSet2DData; }
24 
25 namespace Attrib
26 {
27 
28 class DataHolder;
29 
34 mExpClass(AttributeEngine) StorageProvider : public Provider
36 public:
37 
38  static void initClass();
39  static const char* attribName() { return "Storage"; }
40  static const char* keyStr() { return "id"; }
41 
42  int moveToNextTrace(BinID startpos=BinID(-1,-1),
43  bool firstcheck=false);
44  bool getPossibleVolume(int outp,TrcKeyZSampling&);
45  BinID getStepoutStep() const;
46  void updateStorageReqs(bool all=true);
47  void adjust2DLineStoredVolume();
48  Pos::GeomID getGeomID() const;
49 
50  void fillDataPackWithTrc(RegularSeisDataPack*) const;
51  bool needStoredInput() const { return true; }
52  virtual void getCompNames(BufferStringSet&) const;
53  virtual float getDistBetwTrcs(bool,const char* linenm =0) const;
54  virtual bool compDistBetwTrcsStats(bool force=false);
55 
56 protected:
57 
59  ~StorageProvider();
60 
61  static Provider* createInstance(Desc&);
62  static void updateDesc(Desc&);
63  static void updateDescAndGetCompNms(Desc&,BufferStringSet*);
64 
65  bool getLine2DStoredVolume();
66  bool checkInpAndParsAtStart();
67  bool allowParallelComputation() const { return false; }
68 
69  //From disc
70  Seis::MSCProvider* getMSCProvider(bool&) const;
71  bool initMSCProvider();
72  bool setMSCProvSelData();
73 
74  //From memory (in Attrib::DataPacks)
75  SeisTrc* getTrcFromPack(const BinID&,int) const;
76  DataPack::FullID getDPID() const;
77 
78  void setReqBufStepout(const BinID&,bool wait=false);
79  void setDesBufStepout(const BinID&,bool wait=false);
80  bool computeData(const DataHolder& output,
81  const BinID& relpos,
82  int t0,int nrsamples,int threadid) const;
83 
84  bool fillDataHolderWithTrc(const SeisTrc*,
85  const DataHolder&) const;
86  bool getZStepStoredData(float& step) const
87  { step = storedvolume_.zsamp_.step; return true; }
88  bool getZ0StoredData(float& z0) const
89  { z0 = storedvolume_.zsamp_.start; return true; }
90 
91  BinDataDesc getOutputFormat(int output) const;
92 
93  bool checkDesiredTrcRgOK(StepInterval<int>,
95  bool checkDesiredVolumeOK();
96  void checkClassType(const SeisTrc*,BoolTypeSet&) const;
97  bool setTableSelData();
98  bool set2DRangeSelData();
99 
100  void registerNewPosInfo(SeisTrc*,const BinID&,bool,bool&);
101  bool useInterTrcDist() const;
102 
107  bool isondisc_;
110 
111  enum Status { None, StorageOpened, Ready } status_;
112 };
113 
114 }; // namespace Attrib
Seis::MSCProvider * mscprov_
Definition: attribstorprovider.h:104
#define mExpClass(module)
Definition: commondefs.h:157
Seismics.
Definition: segydirectdef.h:20
bool allowParallelComputation() const
Definition: attribstorprovider.h:67
Definition: datapack.h:43
bool getZ0StoredData(float &z0) const
Definition: attribstorprovider.h:88
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
Reads seismic data into buffers providing a Moving Virtual Subcube of seismic data.
Definition: seismscprov.h:55
Definition: i_layout.h:33
VolumeDataPack for 2D and 3D seismic data.
Definition: seisdatapack.h:42
Set of BufferString objects.
Definition: bufstringset.h:25
bool isondisc_
Definition: attribstorprovider.h:107
FixedString None()
Definition: keystrs.h:90
Definition: attribstorprovider.h:111
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
static mODTextTranslationClass(StorageProvider) public const char * attribName()
Definition: attribstorprovider.h:39
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:32
PosInfo::LineSet2DData * ls2ddata_
Definition: attribstorprovider.h:109
BinID stepoutstep_
Definition: attribstorprovider.h:105
Status
Definition: attribstorprovider.h:111
bool needStoredInput() const
Definition: attribstorprovider.h:51
TrcKeyZSampling storedvolume_
Definition: attribstorprovider.h:106
Position info for a set of 2D lines.
Definition: linesetposinfo.h:24
Index_Type GeomID
Definition: commontypes.h:48
bool useintertrcdist_
Definition: attribstorprovider.h:108
Position info, often segmented.
Definition: posinfo.h:38
Holds the attribute data.
Definition: attribdataholder.h:39
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:28
Seismic trace.
Definition: seistrc.h:31
TypeSet< BinDataDesc > datachar_
Definition: attribstorprovider.h:103
Provides the actual output to ...
Definition: attribprovider.h:40
static const char * keyStr()
Definition: attribstorprovider.h:40
Description of binary data.
Definition: bindatadesc.h:41
Attribute storage provider.
Definition: attribstorprovider.h:34
static void initClass()
Semblance Attribute.
Definition: attribdataholder.h:21
bool getZStepStoredData(float &step) const
Definition: attribstorprovider.h:86

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