OpendTect  6.6
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 "seismod.h"
15 
16 #include "datapackbase.h"
17 #include "trckeyzsampling.h"
18 #include "seisinfo.h"
19 
20 class BinIDValueSet;
21 class TraceData;
22 namespace PosInfo { class CubeData; }
23 
29 {
30 public:
31  RegularSeisDataPack(const char* cat,
32  const BinDataDesc* bdd=0);
34 
38 
39  void setSampling( const TrcKeyZSampling& tkzs )
40  { sampling_ = tkzs; }
41  const TrcKeyZSampling& sampling() const
42  { return sampling_; }
43  StepInterval<float> zRange() const { return sampling_.zsamp_; }
44 
49  bool is2D() const;
50 
51  bool addComponent(const char* nm);
52  bool addComponentNoInit(const char* nm);
53 
54  int nrTrcs() const
55  { return (int)sampling_.hsamp_.totalNr(); }
56  TrcKey getTrcKey(int globaltrcidx) const;
57  int getGlobalIdx(const TrcKey&) const;
58 
59  virtual void dumpInfo(IOPar&) const;
60 
62  { return sampling_.zsamp_; }
63 
65  const TrcKeyZSampling&,
66  const ZDomain::Info&,
67  const BufferStringSet* nms=nullptr);
75  void fillTrace(const TrcKey&,SeisTrc&) const;
76  void fillTraceInfo(const TrcKey&,SeisTrcInfo&) const;
77  void fillTraceData(const TrcKey&,TraceData&) const;
78 
79 protected:
80 
83 };
84 
85 
91 {
92 public:
93  RandomSeisDataPack(const char* cat,
94  const BinDataDesc* bdd=0);
95 
96  bool is2D() const { return false; }
97  int nrTrcs() const { return path_.size(); }
98  TrcKey getTrcKey(int trcidx) const;
99  int getGlobalIdx(const TrcKey&) const;
100 
101  const StepInterval<float>& getZRange() const { return zsamp_; }
102  void setZRange( const StepInterval<float>& zrg )
103  { zsamp_ = zrg; }
104 
105  void setPath( const TrcKeyPath& path )
106  { path_ = path; }
107  const TrcKeyPath& getPath() const { return path_; }
108 
109  bool addComponent(const char* nm);
110 
112  const TrcKeyPath& path,
113  const Interval<float>& zrg);
114 
115 protected:
116 
119 
120 public:
122  int rdmlineid,
123  const Interval<float>& zrg);
124 
126  int rdmlineid,
127  const Interval<float>& zrg,
128  const BufferStringSet* nms);
129 
131  const TrcKeyPath& path,
132  const Interval<float>& zrg,
133  const BufferStringSet* nms);
134 
135  TrcKeyPath& getPath() { return path_; }
136 };
137 
138 
144 {
145 public:
147 
148  int nrTrcs() const
149  { return source_.nrTrcs(); }
150  TrcKey getTrcKey( int trcidx ) const
151  { return source_.getTrcKey(trcidx); }
153  { return source_; }
154  bool is2D() const
155  { return source_.is2D(); }
156 
157  virtual bool isVertical() const = 0;
158  virtual const TrcKeyPath& getPath() const = 0;
162  const StepInterval<float>& getZRange() const { return zsamp_; }
163 
164  bool dimValuesInInt(const char* keystr) const;
166  double getAltDim0Value(int ikey,int i0) const;
167  void getAuxInfo(int i0,int i1,IOPar&) const;
168 
169  const Scaler* getScaler() const
170  { return source_.getScaler(); }
171  const ZDomain::Info& zDomain() const
172  { return source_.zDomain(); }
173  float nrKBytes() const;
174  int getRandomLineID() const;
175 
176 protected:
177 
178  SeisFlatDataPack(const SeisDataPack&,int comp);
179 
180  virtual void setSourceData() = 0;
181  virtual void setTrcInfoFlds() = 0;
182  void setPosData();
188  int comp_;
190 
192  int rdlid_;
193 };
194 
195 
201 {
202 public:
204  int component);
205 
206  bool isVertical() const
207  { return dir_ != TrcKeyZSampling::Z; }
208  const TrcKeyPath& getPath() const { return path_; }
209  float getPosDistance(bool dim0,float trcfidx) const;
210 
211  const TrcKeyZSampling& sampling() const { return sampling_; }
212  Coord3 getCoord(int i0,int i1) const;
213 
214  const char* dimName(bool dim0) const;
215 
216 protected:
217 
221 
227 };
228 
229 
235 {
236 public:
238  int component);
239 
240  bool isVertical() const { return true; }
241  const TrcKeyPath& getPath() const { return path_; }
242  Coord3 getCoord(int i0,int i1) const;
243  float getPosDistance(bool dim0,float trcfidx) const;
244 
245  const char* dimName( bool dim0 ) const
246  { return dim0 ? "Distance" : "Z"; }
247 
248 protected:
249 
257 };
258 
RegularSeisDataPack::fillTraceData
void fillTraceData(const TrcKey &, TraceData &) const
RegularSeisDataPack::zRange
StepInterval< float > zRange() const
Definition: seisdatapack.h:43
SeisFlatDataPack::SeisFlatDataPack
SeisFlatDataPack(const SeisDataPack &, int comp)
PosInfo::CubeData
Position info for an entire 3D cube. The LineData's are not sorted.
Definition: posinfo.h:95
RegularFlatDataPack::path_
TrcKeyPath path_
Definition: seisdatapack.h:222
ZDomain::Info
Information of z-domain.
Definition: zdomain.h:93
TraceData
A set of data buffers and their interpreters.
Definition: tracedata.h:32
Coord3
A cartesian coordinate in 3D space.
Definition: coord.h:72
SeisFlatDataPack::getPath
virtual const TrcKeyPath & getPath() const =0
RandomSeisDataPack::nrTrcs
int nrTrcs() const
Definition: seisdatapack.h:97
RegularFlatDataPack::hassingletrace_
bool hassingletrace_
Definition: seisdatapack.h:226
SeisTrcInfo
Information for a seismic trace, AKA trace header info.
Definition: seisinfo.h:27
RandomSeisDataPack::getGlobalIdx
int getGlobalIdx(const TrcKey &) const
RegularSeisDataPack::getGlobalIdx
int getGlobalIdx(const TrcKey &) const
SeisFlatDataPack::getSourceDataPack
const SeisDataPack & getSourceDataPack() const
Definition: seisdatapack.h:152
RegularFlatDataPack::sampling_
const TrcKeyZSampling & sampling_
Definition: seisdatapack.h:223
SeisFlatDataPack
Base class for RegularFlatDataPack and RandomFlatDataPack.
Definition: seisdatapack.h:144
BinIDValueSet
A Pos::IdxPairValueSet with BinIDs.
Definition: binidvalset.h:23
BufferStringSet
Set of BufferString objects.
Definition: bufstringset.h:26
RegularSeisDataPack::RegularSeisDataPack
RegularSeisDataPack(const char *cat, const BinDataDesc *bdd=0)
Seis
Summary for a Seismic object.
Definition: segydirectdef.h:22
RandomSeisDataPack::setPath
void setPath(const TrcKeyPath &path)
Definition: seisdatapack.h:105
SeisFlatDataPack::rdlid_
int rdlid_
Definition: seisdatapack.h:192
SeisFlatDataPack::tiflds_
TypeSet< SeisTrcInfo::Fld > tiflds_
Definition: seisdatapack.h:191
SeisFlatDataPack::getRandomLineID
int getRandomLineID() const
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
RegularFlatDataPack::dir_
TrcKeyZSampling::Dir dir_
Definition: seisdatapack.h:224
SeisFlatDataPack::isVertical
virtual bool isVertical() const =0
RegularSeisDataPack::getTrcsSampling
const PosInfo::CubeData * getTrcsSampling() const
Only for 3D.
SeisTrc
Seismic trace.
Definition: seistrc.h:34
SeisFlatDataPack::getTrcKey
TrcKey getTrcKey(int trcidx) const
Definition: seisdatapack.h:150
SeisFlatDataPack::~SeisFlatDataPack
~SeisFlatDataPack()
RegularSeisDataPack::is2D
bool is2D() const
RandomSeisDataPack::path_
TrcKeyPath path_
Definition: seisdatapack.h:117
RandomFlatDataPack::setRegularizedPosData
void setRegularizedPosData()
SeisFlatDataPack::zDomain
const ZDomain::Info & zDomain() const
Definition: seisdatapack.h:171
RegularFlatDataPack::RegularFlatDataPack
RegularFlatDataPack(const RegularSeisDataPack &, int component)
SeisFlatDataPack::comp_
int comp_
Definition: seisdatapack.h:188
RegularSeisDataPack::sampling
const TrcKeyZSampling & sampling() const
Definition: seisdatapack.h:41
RegularFlatDataPack
FlatDataPack for 2D and 3D seismic data.
Definition: seisdatapack.h:201
RegularSeisDataPack::fillTraceInfo
void fillTraceInfo(const TrcKey &, SeisTrcInfo &) const
RegularSeisDataPack::dumpInfo
virtual void dumpInfo(IOPar &) const
RegularSeisDataPack::getZRange
const StepInterval< float > & getZRange() const
Definition: seisdatapack.h:61
RandomSeisDataPack::getPath
const TrcKeyPath & getPath() const
Definition: seisdatapack.h:107
RegularFlatDataPack::isVertical
bool isVertical() const
Definition: seisdatapack.h:206
SeisFlatDataPack::nrKBytes
float nrKBytes() const
RandomSeisDataPack::createDataPackFrom
static DataPack::ID createDataPackFrom(const RegularSeisDataPack &, const TrcKeyPath &path, const Interval< float > &zrg, const BufferStringSet *nms)
TrcKeyZSampling
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:35
RandomFlatDataPack::getCoord
Coord3 getCoord(int i0, int i1) const
RandomFlatDataPack::setSourceData
void setSourceData()
SeisFlatDataPack::getScaler
const Scaler * getScaler() const
Definition: seisdatapack.h:169
RegularSeisDataPack::setTrcsSampling
void setTrcsSampling(PosInfo::CubeData *)
Becomes mine.
RegularSeisDataPack::fillTrace
void fillTrace(const TrcKey &, SeisTrc &) const
SeisFlatDataPack::nrTrcs
int nrTrcs() const
Definition: seisdatapack.h:148
TrcKeyZSampling::Dir
Dir
Definition: trckeyzsampling.h:42
RegularFlatDataPack::setTrcInfoFlds
void setTrcInfoFlds()
StepInterval< float >
SeisDataPack
DataPack for volume data. Should be renamed to VolumeDataPack later.
Definition: datapackbase.h:201
RegularFlatDataPack::getPath
const TrcKeyPath & getPath() const
Definition: seisdatapack.h:208
RandomSeisDataPack::is2D
bool is2D() const
Definition: seisdatapack.h:96
Scaler
Scaling of floating point numbers.
Definition: scaler.h:33
RegularSeisDataPack::addComponentNoInit
bool addComponentNoInit(const char *nm)
SeisFlatDataPack::getAltDim0Keys
void getAltDim0Keys(BufferStringSet &) const
First one is 'default'.
RegularSeisDataPack::setSampling
void setSampling(const TrcKeyZSampling &tkzs)
Definition: seisdatapack.h:39
TrcKeyZSampling::Z
@ Z
Definition: trckeyzsampling.h:42
RandomSeisDataPack
SeisDataPack for random lines.
Definition: seisdatapack.h:91
trckeyzsampling.h
RegularSeisDataPack::getSimilar
RegularSeisDataPack * getSimilar() const
SeisFlatDataPack::getZRange
const StepInterval< float > & getZRange() const
Definition: seisdatapack.h:162
RegularFlatDataPack::dimName
const char * dimName(bool dim0) const
RegularFlatDataPack::sampling
const TrcKeyZSampling & sampling() const
Definition: seisdatapack.h:211
RandomFlatDataPack::getPosDistance
float getPosDistance(bool dim0, float trcfidx) const
RegularFlatDataPack::usemulticomps_
bool usemulticomps_
Definition: seisdatapack.h:225
RegularSeisDataPack::rgldpckposinfo_
PosInfo::CubeData * rgldpckposinfo_
Definition: seisdatapack.h:82
SeisFlatDataPack::source_
const SeisDataPack & source_
Definition: seisdatapack.h:187
RandomSeisDataPack::createDataPackFrom
static DataPack::ID createDataPackFrom(const RegularSeisDataPack &, int rdmlineid, const Interval< float > &zrg, const BufferStringSet *nms)
FlatDataPack
DataPack for flat data.
Definition: datapackbase.h:65
RandomSeisDataPack::getTrcKey
TrcKey getTrcKey(int trcidx) const
RegularFlatDataPack::getPosDistance
float getPosDistance(bool dim0, float trcfidx) const
RegularSeisDataPack
SeisDataPack for 2D and 3D seismic data.
Definition: seisdatapack.h:29
SeisFlatDataPack::setTrcInfoFlds
virtual void setTrcInfoFlds()=0
BinDataDesc
Description of binary data.
Definition: bindatadesc.h:43
RandomFlatDataPack::getPath
const TrcKeyPath & getPath() const
Definition: seisdatapack.h:241
RandomFlatDataPack::isVertical
bool isVertical() const
Definition: seisdatapack.h:240
RandomFlatDataPack
FlatDataPack for random lines.
Definition: seisdatapack.h:235
datapackbase.h
RegularSeisDataPack::~RegularSeisDataPack
~RegularSeisDataPack()
SeisFlatDataPack::setPosData
void setPosData()
RandomFlatDataPack::dimName
const char * dimName(bool dim0) const
Definition: seisdatapack.h:245
SeisFlatDataPack::getAuxInfo
void getAuxInfo(int i0, int i1, IOPar &) const
TrcKey
Represents a unique trace position in one of the surveys that OpendTect is managing.
Definition: trckey.h:28
RegularFlatDataPack::setSourceDataFromMultiCubes
void setSourceDataFromMultiCubes()
RandomFlatDataPack::setTrcInfoFlds
void setTrcInfoFlds()
DataPack::ID
int ID
Definition: datapack.h:37
SeisFlatDataPack::zsamp_
const StepInterval< float > & zsamp_
Definition: seisdatapack.h:189
RandomSeisDataPack::getZRange
const StepInterval< float > & getZRange() const
Definition: seisdatapack.h:101
RandomFlatDataPack::RandomFlatDataPack
RandomFlatDataPack(const RandomSeisDataPack &, int component)
RandomFlatDataPack::path_
const TrcKeyPath & path_
Definition: seisdatapack.h:256
PosInfo
Position info, often segmented.
Definition: posinfo.h:40
SeisFlatDataPack::dimValuesInInt
bool dimValuesInInt(const char *keystr) const
RandomSeisDataPack::setZRange
void setZRange(const StepInterval< float > &zrg)
Definition: seisdatapack.h:102
RegularFlatDataPack::setSourceData
void setSourceData()
RandomSeisDataPack::zsamp_
StepInterval< float > zsamp_
Definition: seisdatapack.h:118
SeisFlatDataPack::is2D
bool is2D() const
Definition: seisdatapack.h:154
RandomSeisDataPack::createDataPackFrom
static DataPack::ID createDataPackFrom(const RegularSeisDataPack &, const TrcKeyPath &path, const Interval< float > &zrg)
RegularSeisDataPack::getTrcKey
TrcKey getTrcKey(int globaltrcidx) const
RandomSeisDataPack::getPath
TrcKeyPath & getPath()
Definition: seisdatapack.h:135
seisinfo.h
RandomSeisDataPack::createDataPackFrom
static DataPack::ID createDataPackFrom(const RegularSeisDataPack &, int rdmlineid, const Interval< float > &zrg)
RandomSeisDataPack::RandomSeisDataPack
RandomSeisDataPack(const char *cat, const BinDataDesc *bdd=0)
RegularSeisDataPack::createDataPackForZSlice
static DataPack::ID createDataPackForZSlice(const BinIDValueSet *, const TrcKeyZSampling &, const ZDomain::Info &, const BufferStringSet *nms=nullptr)
SeisFlatDataPack::getAltDim0Value
double getAltDim0Value(int ikey, int i0) const
RegularSeisDataPack::sampling_
TrcKeyZSampling sampling_
Definition: seisdatapack.h:81
Interval< float >
RegularFlatDataPack::getCoord
Coord3 getCoord(int i0, int i1) const
RegularSeisDataPack::nrTrcs
int nrTrcs() const
Definition: seisdatapack.h:54
RegularSeisDataPack::clone
RegularSeisDataPack * clone() const
RegularSeisDataPack::addComponent
bool addComponent(const char *nm)
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
RegularSeisDataPack::copyFrom
bool copyFrom(const RegularSeisDataPack &)
SeisFlatDataPack::setSourceData
virtual void setSourceData()=0
TypeSet< TrcKey >
RandomSeisDataPack::addComponent
bool addComponent(const char *nm)

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