OpendTect-6_4  6.4
timedepthconv.h
Go to the documentation of this file.
1 #ifndef timedepthconv_h
2 #define timedepthconv_h
3 
4 /*
5 ________________________________________________________________________
6 
7  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
8  Author: K. Tingdahl
9  Date: September 2007
10  RCS: $Id$
11 ________________________________________________________________________
12 
13 */
14 
15 
16 #include "seismod.h"
17 #include "zaxistransform.h"
18 #include "uistring.h"
19 #include "trckeyzsampling.h"
20 #include "datapack.h"
21 #include "multidimstorage.h"
22 #include "veldesc.h"
23 
24 
25 class IOObj;
26 class SeisTrc;
27 class SeisTrcReader;
28 template <class T> class Array3D;
29 template <class T> class ValueSeries;
30 
31 
34 public:
35  virtual bool setVelData(const MultiID&) = 0;
36 
37  bool canTransformSurv(Pos::SurvID sid) const
38  { return true; }
39 
40  static const char* sKeyTopVavg() { return "Top Vavg"; }
41  static const char* sKeyBotVavg() { return "Bottom Vavg"; }
42 
43 protected:
44  VelocityStretcher(const ZDomain::Def& from,
45  const ZDomain::Def& to);
46 };
47 
48 
54 public:
56  "VelocityT2D",
57  toUiString(sFactoryKeyword()));
58 
60  bool setVelData(const MultiID&);
61  bool isOK() const;
62 
63  bool needsVolumeOfInterest() const { return true; }
64  int addVolumeOfInterest(const TrcKeyZSampling&,bool);
65  void setVolumeOfInterest(int,const TrcKeyZSampling&,bool);
66  void removeVolumeOfInterest(int);
67  bool loadDataIfMissing(int,TaskRunner* =0);
68  void transformTrc(const TrcKey&,const SamplingData<float>&,
69  int,float*) const;
70  void transformTrcBack(const TrcKey&,
71  const SamplingData<float>&,int,float*) const;
72  Interval<float> getZInterval(bool from) const;
73  float getGoodZStep() const;
74  const char* getToZDomainString() const;
75  const char* getFromZDomainString() const;
76  const char* getZDomainID() const;
77 
78  const Interval<float>& getVavgRg(bool start) const;
79  static Interval<float> getDefaultVAvg();
80 
81  void fillPar(IOPar&) const;
82  bool usePar(const IOPar&);
83 
84 protected:
85  friend class TimeDepthDataLoader;
87  void releaseData();
88  Interval<float> getTimeInterval(const BinID&,int voiidx) const;
89  Interval<float> getDepthInterval(const BinID&,int voiidx) const;
90 
91  static void udfFill(ValueSeries<float>&,int);
92 
97 
101 
102  Interval<float> topvavg_; //Used to compute ranges
103  Interval<float> botvavg_; //Used to compute ranges
104 };
105 
106 
113 public:
115  "VelocityD2T",
116  toUiString(sFactoryKeyword()));
117 
119  bool setVelData(const MultiID&);
120  bool isOK() const;
121 
122  bool needsVolumeOfInterest() const;
123  int addVolumeOfInterest(const TrcKeyZSampling&,bool);
124  void setVolumeOfInterest(int,const TrcKeyZSampling&,bool);
125  void removeVolumeOfInterest(int);
126  bool loadDataIfMissing(int,TaskRunner* =0);
127  void transformTrc(const TrcKey&,const SamplingData<float>&,
128  int sz,float*) const;
129  void transformTrcBack(const TrcKey&,
130  const SamplingData<float>&,
131  int sz,float*) const;
132  Interval<float> getZInterval(bool from) const;
133  float getGoodZStep() const;
134  const char* getToZDomainString() const;
135  const char* getFromZDomainString() const;
136  const char* getZDomainID() const;
137 
138  void fillPar(IOPar&) const;
139  bool usePar(const IOPar&);
140 
141 protected:
143 
145 };
146 
151 public:
153  const VelocityDesc&);
155 
156  uiString uiMessage() const { return msg_; }
157  od_int64 totalNr() const { return subsel_.totalNr(); }
158  od_int64 nrDone() const { return nrdone_; }
160  {
161  return tr("Position scanned");
162  }
163 
164  const Interval<float>& getTopVAvg() const { return startavgvel_; }
165  const Interval<float>& getBotVAvg() const { return stopavgvel_; }
166 
167  int nextStep();
168 
169 protected:
170 
176  bool zistime_;
177  int nrdone_;
178 
179  const IOObj& obj_;
181 
183 
186 };
187 
188 
191 public:
192  bool usePar(const IOPar&);
193  void fillPar(IOPar&) const;
194 
196  { return true; }
197 
198 protected:
199  LinearVelTransform(const ZDomain::Def& from,
200  const ZDomain::Def& to,
201  float v0, float dv);
202  void transformT2D(const SamplingData<float>&,
203  int sz,float* res) const;
204  void transformD2T(const SamplingData<float>&,
205  int sz,float* res) const;
206 
207  float startvel_;
208  float dv_;
209 
210 };
211 
212 
215 public:
217  "LinearT2D", tr("Linear velocity") );
218 
219  LinearT2DTransform(float v0=0, float dv=0);
220 
221  void transformTrc(const TrcKey&,
222  const SamplingData<float>&,
223  int sz,float* res) const;
224  void transformTrcBack(const TrcKey&,
225  const SamplingData<float>&,
226  int sz,float* res) const;
227 
228  Interval<float> getZInterval(bool time) const;
229  float getGoodZStep() const;
230 
232  { return false; }
233 };
234 
235 
238 public:
240  "LinearD2T", tr("Linear velocity") );
241 
242  LinearD2TTransform(float v0=0, float dv=0);
243 
244  void transformTrc(const TrcKey&,
245  const SamplingData<float>&,
246  int sz,float* res) const;
247  void transformTrcBack(const TrcKey&,
248  const SamplingData<float>&,
249  int sz,float* res) const;
250  Interval<float> getZInterval(bool depth) const;
251  float getGoodZStep() const;
252 
254  { return false; }
255 };
256 
257 #endif
#define mExpClass(module)
Definition: commondefs.h:160
int nrdone_
Definition: timedepthconv.h:177
Summary for a Seismic object.
Definition: segydirectdef.h:23
bool canTransformSurv(Pos::SurvID) const
Definition: timedepthconv.h:195
RefMan< Time2DepthStretcher > stretcher_
Definition: timedepthconv.h:144
~Depth2TimeStretcher()
Definition: timedepthconv.h:142
static const char * sKeyTopVavg()
Definition: timedepthconv.h:40
Definition: ioobj.h:58
T to(const F &fr)
Definition: convert.h:33
SeisTrcReader * reader_
Definition: timedepthconv.h:182
#define mODTextTranslationClass(clss)
Definition: uistring.h:38
Export_Basic uiString toUiString(ViewStyle)
static const char * sKeyBotVavg()
Definition: timedepthconv.h:41
SeisTrcReader * velreader_
Definition: timedepthconv.h:98
Definition: veldesc.h:38
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:188
#define od_int64
Definition: plftypes.h:36
TrcKeySamplingIterator hsiter_
Definition: timedepthconv.h:173
TypeSet< int > voiids_
Definition: timedepthconv.h:96
TrcKeySampling subsel_
Definition: timedepthconv.h:172
bool needsVolumeOfInterest() const
Definition: timedepthconv.h:63
#define mDefaultFactoryInstantiation(baseclss, clss, keywrd, usernm)
Definition: factory.h:289
const Interval< float > & getTopVAvg() const
Definition: timedepthconv.h:164
Finds next BinID in TrcKeySampling; initializes to first position.
Definition: trckeysampling.h:189
Definition: uistring.h:89
od_int64 nrDone() const
Definition: timedepthconv.h:158
Interval< float > botvavg_
Definition: timedepthconv.h:103
VelocityDesc veldesc_
Definition: timedepthconv.h:99
TypeSet< TrcKeyZSampling > voivols_
Definition: timedepthconv.h:94
Set of pointers to objects.
Definition: commontypes.h:32
virtual bool isOK() const
Definition: valseries.h:41
bool zistime_
Definition: timedepthconv.h:176
The generalization of something (e.g. a computation) where the steps must be done in sequence...
Definition: task.h:124
bool needsVolumeOfInterest() const
Definition: timedepthconv.h:231
ObjectSet< Array3D< float > > voidata_
Definition: timedepthconv.h:93
reads from a seismic data store.
Definition: seisread.h:50
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:47
Index_Type SurvID
Definition: commontypes.h:49
Class that can execute a task.
Definition: task.h:169
Horizontal sampling (inline and crossline range and steps).
Definition: trckeysampling.h:27
float startvel_
Definition: timedepthconv.h:207
Definition: timedepthconv.h:32
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:35
Interface to a series of values.
Definition: odmemory.h:17
float dv_
Definition: timedepthconv.h:208
Definition: timedepthconv.h:213
bool definedv1_
Definition: timedepthconv.h:175
const IOObj & obj_
Definition: timedepthconv.h:179
Interval< float > stopavgvel_
Definition: timedepthconv.h:185
uiString uiMessage() const
will be message() again in 7.x
Definition: timedepthconv.h:156
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:175
Interval< float > startavgvel_
Definition: timedepthconv.h:184
Definition: timedepthconv.h:236
Interval< float > topvavg_
Definition: timedepthconv.h:102
bool needsVolumeOfInterest() const
Definition: timedepthconv.h:253
od_int64 totalNr() const
Definition: timedepthconv.h:157
bool canTransformSurv(Pos::SurvID sid) const
Definition: timedepthconv.h:37
uiString uiNrDoneText() const
will be nrDoneText() in 7.x
Definition: timedepthconv.h:159
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:30
Seismic trace.
Definition: seistrc.h:34
const Interval< float > & getBotVAvg() const
Definition: timedepthconv.h:165
bool velintime_
Definition: timedepthconv.h:100
BoolTypeSet voiintime_
Definition: timedepthconv.h:95
bool definedv0_
Definition: timedepthconv.h:174
Definition: timedepthconv.h:52
const VelocityDesc & vd_
Definition: timedepthconv.h:180
Represents a unique trace position in one of the surveys that OpendTect is managing.
Definition: trckey.h:28
Definition: timedepthconv.h:149
Definition: timedepthconv.h:111
Base class for z-axis transforms.
Definition: zaxistransform.h:37
Array3D ( Subclass of ArrayND ) is a three dimensional array.
Definition: arraynd.h:153
Definition of z-domain.
Definition: zdomain.h:41
Definition: timedepthconv.h:189
uiString msg_
Definition: timedepthconv.h:171
Compound key consisting of ints.
Definition: multiid.h:25

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