OpendTect-6_4  6.4
prestackgather.h
Go to the documentation of this file.
1 #ifndef prestackgather_h
2 #define prestackgather_h
3 
4 /*+
5 ________________________________________________________________________
6 
7  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
8  Author: K. Tingdahl
9  Date: April 2005
10  RCS: $Id$
11 ________________________________________________________________________
12 
13 
14 -*/
15 
16 #include "prestackprocessingmod.h"
17 #include "arrayndimpl.h"
18 #include "datapackbase.h"
19 #include "multiid.h"
20 #include "offsetazimuth.h"
21 #include "position.h"
22 #include "samplingdata.h"
23 
24 class IOObj;
25 class SeisPSReader;
26 class SeisTrc;
27 class SeisTrcBuf;
28 
29 namespace PreStack
30 {
31 
36 mExpClass(PreStackProcessing) Gather : public FlatDataPack
38 public:
39  Gather();
40  Gather(const Gather&);
41  Gather(const FlatPosData&);
42  ~Gather();
43 
44  bool is3D() const { return linename_.isEmpty(); }
45 
46  bool readFrom(const MultiID&,const BinID&,
47  int component=0,
48  uiString* errmsg=0);
49  bool readFrom(const IOObj&,const BinID&,
50  int component=0,
51  uiString* errmsg=0);
52  bool readFrom(const IOObj&,SeisPSReader& rdr,
53  const BinID&,int component=0,
54  uiString* errmsg=0);
55 
56  const Coord& getCoord() const { return coord_; }
57  virtual Coord3 getCoord(int,int) const
58  { return Coord3(coord_.x,coord_.y,0); }
59 
60  void detectOuterMutes(int* depths,
61  int taperlen=0) const;
64  void detectInnerMutes(int* depths,
65  int taperlen=0) const;
66  /*<!For each trace, try to detect the first
67  inner-mute affected value. */
68 
69  //for 3d only
70  const BinID& getBinID() const { return binid_; }
71  void setBinID( const BinID& bid )
72  { binid_ = bid; }
73  const MultiID& getStoredID() const { return storagemid_; }
74  const StepInterval<float>& zRange() const { return zrg_; }
75  void setZRange( const StepInterval<float>& zrg )
76  { zrg_ = zrg; }
77 
78  //for 2D only.
79  bool readFrom(const MultiID&, const int tracenr,
80  const char* linename,int comp,
81  uiString* errmsg=0);
82  bool readFrom(const IOObj&, const int tracenr,
83  const char* linename,int comp,
84  uiString* errmsg=0);
85  int getSeis2DTraceNr() const { return binid_.crl();}
86  const char* getSeis2DName() const;
87 
88  bool isLoaded() const { return arr2d_; }
89 
90  const char* dimName(bool dim0) const;
91  void getAuxInfo(int,int,IOPar&) const;
92 
93  static int offsetDim() { return 0; }
94  static int zDim() { return 1; }
95 
96  float getOffset(int) const;
97  float getAzimuth(int) const;
98  OffsetAzimuth getOffsetAzimuth(int) const;
99 
100  bool isOffsetAngle() const {return offsetisangle_;}
101  void setOffsetIsAngle(bool yn);
102  bool isCorrected() const { return iscorr_; }
103  void setCorrected(bool yn) { iscorr_ = yn; }
104  bool zIsTime() const { return zit_; }
105 
106 
107  const MultiID& getVelocityID() const { return velocitymid_; }
108  const MultiID& getStorageID() const { return storagemid_; }
109  const MultiID& getStaticsID() const { return staticsmid_; }
110 
111  static bool getVelocityID(const MultiID& stor,MultiID& vid);
112 
113  static const char* sDataPackCategory();
114  static const char* sKeyIsAngleGather();
115  static const char* sKeyIsCorr();
116  static const char* sKeyZisTime();
117 
118  static const char* sKeyPostStackDataID();
119  static const char* sKeyStaticsID();
120 
121  void getAzimuths( TypeSet<float>& azimuths ) const
122  { azimuths = azimuths_; }
123  void setAzimuths( const TypeSet<float>& azimuths )
124  { azimuths_ = azimuths; }
125 
126 protected:
127 
132  bool iscorr_;
133 
134  bool zit_;
139 
141 
142 public:
143  bool setFromTrcBuf(SeisTrcBuf&,int comp,
144  bool snapzrangetosi=false);
145 };
146 
147 
152 mExpClass(PreStackProcessing) GatherSetDataPack : public DataPack
153 {
154 public:
155  GatherSetDataPack(const char* ctgery,
156  const ObjectSet<Gather>&);
158 
159  void fill(Array2D<float>&,int offsetidx) const;
160  void fill(SeisTrcBuf&,int offsetidx) const;
161  void fill(SeisTrcBuf&,Interval<float> stackrg) const;
162  SeisTrc* getTrace(int gatheridx,int offsetidx);
163  const SeisTrc* getTrace(int gatheridx,int offsetidx) const;
164 
165  virtual float nrKBytes() const { return 0; }
166 
167  const Gather* getGather(const BinID&) const;
168  const ObjectSet<Gather>& getGathers() const { return gathers_; }
169  ObjectSet<Gather>& getGathers() { return gathers_; }
170 
171  StepInterval<float> zRange() const;
172 
173  static const char* sDataPackCategory();
174 
175 protected:
176  SeisTrc* gtTrace(int gatheridx,int offsetidx) const;
177 
179 };
180 
181 } // namespace PreStack
182 
183 #endif
#define mExpClass(module)
Definition: commondefs.h:160
virtual Coord3 getCoord(int, int) const
Definition: prestackgather.h:57
TypeSet< float > azimuths_
Definition: prestackgather.h:137
virtual float nrKBytes() const
Definition: prestackgather.h:165
Definition: ioobj.h:58
BufferString linename_
Definition: prestackgather.h:140
Positioning of flat &#39;bulk&#39; data. Only the &#39;x1&#39; axis can be irregular.
Definition: flatposdata.h:26
bool is3D() const
Definition: prestackgather.h:44
#define mODTextTranslationClass(clss)
Definition: uistring.h:38
PreStack gather.
Definition: prestackgather.h:36
bool isOffsetAngle() const
Definition: prestackgather.h:100
bool isLoaded() const
Definition: prestackgather.h:88
void setCorrected(bool yn)
Definition: prestackgather.h:103
void getAzimuths(TypeSet< float > &azimuths) const
Definition: prestackgather.h:121
Definition: synthseis.h:36
int getSeis2DTraceNr() const
Definition: prestackgather.h:85
ObjectSet< Gather > gathers_
Definition: prestackgather.h:178
const MultiID & getStorageID() const
Definition: prestackgather.h:108
MultiID velocitymid_
Definition: prestackgather.h:128
Definition: uistring.h:89
const MultiID & getStoredID() const
Definition: prestackgather.h:73
A cartesian coordinate in 2D space.
Definition: coord.h:25
void setBinID(const BinID &bid)
Definition: prestackgather.h:71
BinID binid_
Definition: prestackgather.h:135
void setAzimuths(const TypeSet< float > &azimuths)
Definition: prestackgather.h:123
A data packet: data+positioning and more that needs to be shared.
Definition: datapack.h:34
bool iscorr_
Definition: prestackgather.h:132
Set of pointers to objects.
Definition: commontypes.h:32
bool isCorrected() const
Definition: prestackgather.h:102
bool zIsTime() const
Definition: prestackgather.h:104
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:47
A DataPack containing an objectset of gathers.
Definition: prestackgather.h:152
const MultiID & getStaticsID() const
Definition: prestackgather.h:109
const BinID & getBinID() const
Definition: prestackgather.h:70
bool zit_
Definition: prestackgather.h:134
MultiID staticsmid_
Definition: prestackgather.h:130
A cartesian coordinate in 3D space.
Definition: coord.h:72
const ObjectSet< Gather > & getGathers() const
Definition: prestackgather.h:168
void setZRange(const StepInterval< float > &zrg)
Definition: prestackgather.h:75
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:40
const MultiID & getVelocityID() const
Definition: prestackgather.h:107
StepInterval< float > zrg_
Definition: prestackgather.h:138
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:30
Seismic trace.
Definition: seistrc.h:34
bool offsetisangle_
Definition: prestackgather.h:131
Coord coord_
Definition: prestackgather.h:136
set of seismic traces.
Definition: seisbuf.h:31
static int offsetDim()
Definition: prestackgather.h:93
MultiID storagemid_
Definition: prestackgather.h:129
DataPack for flat data.
Definition: datapackbase.h:64
const StepInterval< float > & zRange() const
Definition: prestackgather.h:74
Definition: offsetazimuth.h:26
static int zDim()
Definition: prestackgather.h:94
reads from a prestack seismic data store.
Definition: seispsread.h:34
ObjectSet< Gather > & getGathers()
Definition: prestackgather.h:169
const SeisTrc * getTrace(EM::SubID) const
Compound key consisting of ints.
Definition: multiid.h:25
const Coord & getCoord() const
Definition: prestackgather.h:56

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