OpendTect-6_4  6.4
seisdatapack.h
Go to the documentation of this file.
1 #ifndef seisdatapack_h
2 #define seisdatapack_h
3 
4 /*+
5 ________________________________________________________________________
6 
7  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
8  Author: Mahant Mothey
9  Date: February 2015
10  RCS: $Id: seisdatapack.h 38554 2015-03-18 09:20:03Z mahant.mothey@dgbes.com $
11 ________________________________________________________________________
12 
13 -*/
14 
15 #include "seismod.h"
16 
17 #include "datapackbase.h"
18 #include "trckeyzsampling.h"
19 #include "seisinfo.h"
20 
21 class BinIDValueSet;
22 namespace PosInfo { class CubeData; }
23 
29 {
30 public:
31  RegularSeisDataPack(const char* cat,
32  const BinDataDesc* bdd=0);
34 
35  RegularSeisDataPack* clone() const;
36  RegularSeisDataPack* getSimilar() const;
37  bool copyFrom(const RegularSeisDataPack&);
38 
39  void setSampling( const TrcKeyZSampling& tkzs )
40  { sampling_ = tkzs; }
41  const TrcKeyZSampling& sampling() const
42  { return sampling_; }
43 
44  void setTrcsSampling(PosInfo::CubeData*);
46  const PosInfo::CubeData* getTrcsSampling() const;
48  bool is2D() const;
49 
50  bool addComponent(const char* nm);
51  bool addComponentNoInit(const char* nm);
52 
53  int nrTrcs() const
54  { return (int)sampling_.hsamp_.totalNr(); }
55  TrcKey getTrcKey(int globaltrcidx) const;
56  int getGlobalIdx(const TrcKey&) const;
57 
58  virtual void dumpInfo(IOPar&) const;
59 
61  { return sampling_.zsamp_; }
62 
63  static DataPack::ID createDataPackForZSlice(const BinIDValueSet*,
64  const TrcKeyZSampling&,
65  const ZDomain::Info&,
66  const BufferStringSet& nms=0);
73 protected:
74 
77 };
78 
79 
85 {
86 public:
87  RandomSeisDataPack(const char* cat,
88  const BinDataDesc* bdd=0);
89 
90  bool is2D() const { return false; }
91  int nrTrcs() const { return path_.size(); }
92  TrcKey getTrcKey(int trcidx) const;
93  int getGlobalIdx(const TrcKey&) const;
94 
95  const StepInterval<float>& getZRange() const { return zsamp_; }
96  void setZRange( const StepInterval<float>& zrg )
97  { zsamp_ = zrg; }
98 
99  void setPath( const TrcKeyPath& path )
100  { path_ = path; }
101  const TrcKeyPath& getPath() const { return path_; }
102 
103  bool addComponent(const char* nm);
104 
105  static DataPack::ID createDataPackFrom(const RegularSeisDataPack&,
106  const TrcKeyPath& path,
107  const Interval<float>& zrg);
108 
109 protected:
110 
113 
114 public:
115  static DataPack::ID createDataPackFrom(const RegularSeisDataPack&,
116  int rdmlineid,
117  const Interval<float>& zrg);
118 
119  static DataPack::ID createDataPackFrom(const RegularSeisDataPack&,
120  int rdmlineid,
121  const Interval<float>& zrg,
122  const BufferStringSet* nms);
123 
124  static DataPack::ID createDataPackFrom(const RegularSeisDataPack&,
125  const TrcKeyPath& path,
126  const Interval<float>& zrg,
127  const BufferStringSet* nms);
128 
129  TrcKeyPath& getPath() { return path_; }
130 };
131 
132 
138 {
139 public:
140  ~SeisFlatDataPack();
141 
142  int nrTrcs() const
143  { return source_.nrTrcs(); }
144  TrcKey getTrcKey( int trcidx ) const
145  { return source_.getTrcKey(trcidx); }
147  { return source_; }
148  bool is2D() const
149  { return source_.is2D(); }
150 
151  virtual bool isVertical() const = 0;
152  virtual const TrcKeyPath& getPath() const = 0;
156  const StepInterval<float>& getZRange() const { return zsamp_; }
157 
158  bool dimValuesInInt(const char* keystr) const;
159  void getAltDim0Keys(BufferStringSet&) const;
160  double getAltDim0Value(int ikey,int i0) const;
161  void getAuxInfo(int i0,int i1,IOPar&) const;
162 
163  const Scaler* getScaler() const
164  { return source_.getScaler(); }
165  const ZDomain::Info& zDomain() const
166  { return source_.zDomain(); }
167  float nrKBytes() const;
168  int getRandomLineID() const;
169 
170 protected:
171 
172  SeisFlatDataPack(const SeisDataPack&,int comp);
173 
174  virtual void setSourceData() = 0;
175  virtual void setTrcInfoFlds() = 0;
176  void setPosData();
182  int comp_;
184 
186  int rdlid_;
187 };
188 
189 
195 {
196 public:
198  int component);
199 
200  bool isVertical() const
201  { return dir_ != TrcKeyZSampling::Z; }
202  const TrcKeyPath& getPath() const { return path_; }
203  float getPosDistance(bool dim0,float trcfidx) const;
204 
205  const TrcKeyZSampling& sampling() const { return sampling_; }
206  Coord3 getCoord(int i0,int i1) const;
207 
208  const char* dimName(bool dim0) const;
209 
210 protected:
211 
212  void setSourceDataFromMultiCubes();
213  void setSourceData();
214  void setTrcInfoFlds();
215 
221 };
222 
223 
229 {
230 public:
232  int component);
233 
234  bool isVertical() const { return true; }
235  const TrcKeyPath& getPath() const { return path_; }
236  Coord3 getCoord(int i0,int i1) const;
237  float getPosDistance(bool dim0,float trcfidx) const;
238 
239  const char* dimName( bool dim0 ) const
240  { return dim0 ? "Distance" : "Z"; }
241 
242 protected:
243 
244  void setSourceData();
245  void setRegularizedPosData();
249  void setTrcInfoFlds();
251 };
252 
253 #endif
#define mExpClass(module)
Definition: commondefs.h:160
void setPath(const TrcKeyPath &path)
Definition: seisdatapack.h:99
Summary for a Seismic object.
Definition: segydirectdef.h:23
const ZDomain::Info & zDomain() const
Definition: seisdatapack.h:165
const TrcKeyZSampling & sampling() const
Definition: seisdatapack.h:41
int nrTrcs() const
Definition: seisdatapack.h:142
const Scaler * getScaler() const
Definition: seisdatapack.h:163
const StepInterval< float > & getZRange() const
Definition: seisdatapack.h:60
DataPack for volume data. Should be renamed to VolumeDataPack later.
Definition: datapackbase.h:200
const TrcKeyZSampling & sampling_
Definition: seisdatapack.h:217
TrcKey getTrcKey(int trcidx) const
Definition: seisdatapack.h:144
void setZRange(const StepInterval< float > &zrg)
Definition: seisdatapack.h:96
const char * dimName(bool dim0) const
Definition: seisdatapack.h:239
SeisDataPack for 2D and 3D seismic data.
Definition: seisdatapack.h:28
Definition: trckeyzsampling.h:43
StepInterval< float > zsamp_
Definition: seisdatapack.h:112
const SeisDataPack & source_
Definition: seisdatapack.h:181
Set of BufferString objects.
Definition: bufstringset.h:28
Base class for RegularFlatDataPack and RandomFlatDataPack.
Definition: seisdatapack.h:137
int ID
Definition: datapack.h:38
bool is2D() const
Definition: seisdatapack.h:148
const TrcKeyPath & getPath() const
Definition: seisdatapack.h:235
SeisDataPack for random lines.
Definition: seisdatapack.h:84
void setSampling(const TrcKeyZSampling &tkzs)
Definition: seisdatapack.h:39
bool isVertical() const
Definition: seisdatapack.h:234
const TrcKeyPath & path_
Definition: seisdatapack.h:250
FlatDataPack for 2D and 3D seismic data.
Definition: seisdatapack.h:194
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:47
const TrcKeyZSampling & sampling() const
Definition: seisdatapack.h:205
bool usemulticomps_
Definition: seisdatapack.h:219
const StepInterval< float > & getZRange() const
Definition: seisdatapack.h:95
PosInfo::CubeData * rgldpckposinfo_
Definition: seisdatapack.h:76
const TrcKeyPath & getPath() const
Definition: seisdatapack.h:101
FlatDataPack for random lines.
Definition: seisdatapack.h:228
const TrcKeyPath & getPath() const
Definition: seisdatapack.h:202
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:35
int rdlid_
Definition: seisdatapack.h:186
Dir
Definition: trckeyzsampling.h:43
TrcKeyPath path_
Definition: seisdatapack.h:216
Scaling of floating point numbers.
Definition: scaler.h:33
const SeisDataPack & getSourceDataPack() const
Definition: seisdatapack.h:146
int nrTrcs() const
Definition: seisdatapack.h:91
A cartesian coordinate in 3D space.
Definition: coord.h:72
bool isVertical(OD::Orientation orient)
Definition: oduicommon.h:88
int comp_
Definition: seisdatapack.h:182
bool isVertical() const
Definition: seisdatapack.h:200
Position info, often segmented.
Definition: posinfo.h:40
bool is2D(const PicksType &picks)
Definition: pickset.h:142
TrcKeyPath path_
Definition: seisdatapack.h:111
bool is2D() const
Definition: seisdatapack.h:90
bool hassingletrace_
Definition: seisdatapack.h:220
A Pos::IdxPairValueSet with BinIDs.
Definition: binidvalset.h:23
DataPack for flat data.
Definition: datapackbase.h:64
TrcKeyZSampling sampling_
Definition: seisdatapack.h:75
Represents a unique trace position in one of the surveys that OpendTect is managing.
Definition: trckey.h:28
const StepInterval< float > & getZRange() const
Definition: seisdatapack.h:156
Description of binary data.
Definition: bindatadesc.h:43
Position info for an entire 3D cube. The LineData&#39;s are not sorted.
Definition: posinfo.h:95
TypeSet< SeisTrcInfo::Fld > tiflds_
Definition: seisdatapack.h:185
TrcKeyZSampling::Dir dir_
Definition: seisdatapack.h:218
int nrTrcs() const
Definition: seisdatapack.h:53
Information of z-domain.
Definition: zdomain.h:91
const StepInterval< float > & zsamp_
Definition: seisdatapack.h:183
TrcKeyPath & getPath()
Definition: seisdatapack.h:129

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