OpendTect  6.3
seisdatapack.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: Mahant Mothey
8  Date: February 2015
9  RCS: $Id: seisdatapack.h 38554 2015-03-18 09:20:03Z mahant.mothey@dgbes.com $
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "seisinfo.h"
15 #include "datapackbase.h"
16 #include "posinfo.h"
17 #include "trckeyzsampling.h"
18 
19 class BinIDValueSet;
20 
21 
25 {
26 public:
27 
29 
30  void fillTrace(const TrcKey&,SeisTrc&) const;
31 
32 protected:
33 
34  SeisVolumeDataPack(const char* cat,const BinDataDesc*);
36 
37 };
38 
39 
43 {
44 public:
45  RegularSeisDataPack(const char* cat,
46  const BinDataDesc* bdd=0);
48 
49  bool is2D() const;
50 
51  virtual RegularSeisDataPack* getSimilar() const;
52  bool copyFrom(const RegularSeisDataPack&);
53 
54  void setSampling( const TrcKeyZSampling& tkzs )
55  { sampling_ = tkzs; }
56  const TrcKeyZSampling& sampling() const
57  { return sampling_; }
58 
59  void setTrcsSampling(PosInfo::CubeData*);
61  const PosInfo::CubeData* trcsSampling() const;
63  void getTrcPositions(PosInfo::CubeData&) const;
64 
65  bool addComponent(const char* nm);
66 
67  int nrTrcs() const
68  { return (int)sampling_.hsamp_.totalNr(); }
69  TrcKey getTrcKey(int globaltrcidx) const;
70  int getGlobalIdx(const TrcKey&) const;
71 
73  { return sampling_.zsamp_; }
74 
75  static DataPack::ID createDataPackForZSlice(const BinIDValueSet*,
76  const TrcKeyZSampling&,
77  const ZDomain::Info&,
78  const BufferStringSet& nms=0);
85 protected:
86 
88 
91 
92  virtual void doDumpInfo(IOPar&) const;
93 
94 };
95 
96 
100 {
101 public:
102  RandomSeisDataPack(const char* cat,
103  const BinDataDesc* bdd=0);
105  virtual RandomSeisDataPack* getSimilar() const;
106 
107  bool is2D() const { return false; }
108  int nrTrcs() const { return path_.size(); }
109  TrcKey getTrcKey(int trcidx) const;
110  int getGlobalIdx(const TrcKey&) const;
111 
112  const StepInterval<float>& getZRange() const { return zsamp_; }
113  void setZRange( const StepInterval<float>& zrg )
114  { zsamp_ = zrg; }
115 
116  void setPath( const TrcKeyPath& path )
117  { path_ = path; }
118  const TrcKeyPath& getPath() const { return path_; }
119  TrcKeyPath& getPath() { return path_; }
120  void setRandomLineID(int);
121  int getRandomLineID() const { return rdlid_; }
122 
123  bool addComponent(const char* nm);
124 
125  static DataPack::ID createDataPackFrom(const RegularSeisDataPack&,
126  int rdmlineid,
127  const Interval<float>& zrg,
128  const BufferStringSet* nms=0);
129 
130 protected:
131 
133 
134  int rdlid_;
137 
138 };
139 
140 
144 {
145 public:
146 
148 
149  int nrTrcs() const
150  { return source_->nrTrcs(); }
151  TrcKey getTrcKey( int trcidx ) const
152  { return source_->getTrcKey(trcidx); }
154  { return *source_; }
155  bool is2D() const
156  { return source_->is2D(); }
157 
158  virtual const TrcKeyPath& getPath() const = 0;
162  const StepInterval<float>& getZRange() const { return zSamp(); }
163  virtual int getRandomLineID() const
164  { return source_->getRandomLineID(); }
165 
166  bool dimValuesInInt(const char* keystr) const;
167  void getAltDim0Keys(BufferStringSet&) const;
168  double getAltDim0Value(int ikey,int i0) const;
169  void getAuxInfo(int i0,int i1,IOPar&) const;
170 
171  const Scaler* getScaler() const
172  { return source_->getScaler(); }
173  const ZDomain::Info& zDomain() const
174  { return source_->zDomain(); }
175 
176 protected:
177 
179  int icomp);
180  ~SeisFlatDataPack();
181 
182  void setPosData();
188  int comp_;
190 
191  const StepInterval<float>& zSamp() const { return source_->getZRange(); }
192  virtual float gtNrKBytes() const;
193 
194 };
195 
196 
200 {
201 public:
202 
204  int component);
206 
207  bool isVertical() const
208  { return dir() != TrcKeyZSampling::Z; }
209  const TrcKeyPath& getPath() const { return path_; }
210 
211  const TrcKeyZSampling& sampling() const
212  { return regSource().sampling(); }
214  { return sampling().defaultDir(); }
215  Coord3 getCoord(int i0,int i1) const;
216 
217  const char* dimName(bool dim0) const;
218 
219 protected:
220 
222 
223  void setSourceDataFromMultiCubes();
224  void setSourceData();
225  void setTrcInfoFlds();
226 
230 
232  { return (RegularSeisDataPack&)(*source_); }
233 
234 };
235 
236 
240 {
241 public:
242 
244  int component);
246 
247  bool isVertical() const { return true; }
248  const TrcKeyPath& getPath() const
249  { return rdlSource().getPath(); }
250  Coord3 getCoord(int i0,int i1) const;
251 
252  const char* dimName( bool dim0 ) const
253  { return dim0 ? "Distance" : "Z"; }
254 
255 protected:
256 
258 
259  void setSourceData();
260  void setTrcInfoFlds();
261 
263  { return (RandomSeisDataPack&)(*source_); }
264 
265 };
#define mExpClass(module)
Definition: commondefs.h:157
void setPath(const TrcKeyPath &path)
Definition: seisdatapack.h:116
Seismics.
Definition: segydirectdef.h:20
const ZDomain::Info & zDomain() const
Definition: seisdatapack.h:173
const TrcKeyZSampling & sampling() const
Definition: seisdatapack.h:56
int nrTrcs() const
Definition: seisdatapack.h:149
const Scaler * getScaler() const
Definition: seisdatapack.h:171
const StepInterval< float > & getZRange() const
Check first if there is a storage!
Definition: seisdatapack.h:72
const StepInterval< float > & zSamp() const
Definition: seisdatapack.h:191
bool is2D(GeomType gt)
Definition: seistype.h:32
TrcKey getTrcKey(int trcidx) const
Definition: seisdatapack.h:151
DataPack for volume data.
Definition: datapackbase.h:164
void setZRange(const StepInterval< float > &zrg)
Definition: seisdatapack.h:113
const SeisVolumeDataPack & getSourceDataPack() const
Definition: seisdatapack.h:153
const char * dimName(bool dim0) const
Definition: seisdatapack.h:252
int getRandomLineID() const
Definition: seisdatapack.h:121
VolumeDataPack for 2D and 3D seismic data.
Definition: seisdatapack.h:42
Definition: trckeyzsampling.h:42
StepInterval< float > zsamp_
Definition: seisdatapack.h:136
Set of BufferString objects.
Definition: bufstringset.h:25
Base class for RegularFlatDataPack and RandomFlatDataPack.
Definition: seisdatapack.h:143
#define mDeclMonitorableAssignment(clss)
like mDeclAbstractMonitorableAssignment but for non-abstract subclasses. Implements the clone() metho...
Definition: monitor.h:111
virtual int getRandomLineID() const
Definition: seisdatapack.h:163
bool is2D() const
Definition: seisdatapack.h:155
ConstRefMan< SeisVolumeDataPack > source_
Definition: seisdatapack.h:187
const TrcKeyPath & getPath() const
Definition: seisdatapack.h:248
SeisVolumeDataPack for random lines.
Definition: seisdatapack.h:99
void setSampling(const TrcKeyZSampling &tkzs)
Definition: seisdatapack.h:54
bool isVertical() const
Definition: seisdatapack.h:247
3D point or vector
Definition: commontypes.h:57
FlatDataPack for 2D and 3D seismic data.
Definition: seisdatapack.h:199
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
const TrcKeyZSampling & sampling() const
Definition: seisdatapack.h:211
bool usemulticomps_
Definition: seisdatapack.h:228
const StepInterval< float > & getZRange() const
Check first if there is a storage!
Definition: seisdatapack.h:112
Seis Volume DataPack base class.
Definition: seisdatapack.h:24
const TrcKeyPath & getPath() const
Definition: seisdatapack.h:118
FlatDataPack for random lines.
Definition: seisdatapack.h:239
const TrcKeyPath & getPath() const
Definition: seisdatapack.h:209
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:32
Dir
Definition: trckeyzsampling.h:42
TrcKeyPath path_
Definition: seisdatapack.h:227
Scaling of floating point numbers.
Definition: scaler.h:30
int nrTrcs() const
Definition: seisdatapack.h:108
int comp_
Definition: seisdatapack.h:188
bool isVertical() const
Definition: seisdatapack.h:207
Seismic trace.
Definition: seistrc.h:31
TrcKeyPath path_
Definition: seisdatapack.h:135
bool is2D() const
Definition: seisdatapack.h:107
bool hassingletrace_
Definition: seisdatapack.h:229
A Pos::IdxPairValueSet with BinIDs.
Definition: binidvalset.h:21
const RandomSeisDataPack & rdlSource() const
Definition: seisdatapack.h:262
DataPack for flat data.
Definition: datapackbase.h:61
const RegularSeisDataPack & regSource() const
Definition: seisdatapack.h:231
TrcKeyZSampling sampling_
Definition: seisdatapack.h:89
Definition: groupedid.h:41
Represents a unique trace position in one of the surveys that OpendTect is managing.
Definition: trckey.h:26
const StepInterval< float > & getZRange() const
Definition: seisdatapack.h:162
Description of binary data.
Definition: bindatadesc.h:41
#define mDeclAbstractMonitorableAssignment(clss)
Monitorable subclasses: assignment and comparison.
Definition: monitor.h:105
Position info for an entire 3D cube. The LineData&#39;s are not sorted.
Definition: posinfo.h:96
TypeSet< SeisTrcInfo::Fld > tiflds_
Definition: seisdatapack.h:189
int nrTrcs() const
Definition: seisdatapack.h:67
int rdlid_
Definition: seisdatapack.h:134
Information of z-domain.
Definition: zdomain.h:96
PtrMan< PosInfo::CubeData > trcssampling_
Definition: seisdatapack.h:90
TrcKeyPath & getPath()
Definition: seisdatapack.h:119
TrcKeyZSampling::Dir dir() const
Definition: seisdatapack.h:213

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