OpendTect  6.3
syntheticdata.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: Satyaki/Bruno
8  Date: July 2013
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "seismod.h"
14 #include "flatview.h"
15 #include "datapack.h"
16 #include "stratsynthgenparams.h"
17 #include "reflectivitymodel.h"
18 
19 class RayTracer1D;
20 class SeisTrc;
21 class TimeDepthModel;
22 
23 
24 mStruct(Seis) SynthFVSpecificDispPars
25 {
26  SynthFVSpecificDispPars();
27 
28  BufferString colseqname_;
29  RefMan<ColTab::MapperSetup> vdmapsetup_;
30  RefMan<ColTab::MapperSetup> wvamapsetup_;
31  float overlap_;
32 
33  void fillPar(IOPar&) const;
34  void usePar(const IOPar&);
35 };
36 
37 
39 mExpClass(Seis) SyntheticData : public RefCount::Referenced
40  , public NamedObject
41 {
42 public:
43  mStruct(Seis) RayModel
44  {
45  RayModel(const RayTracer1D& rt1d,
46  int nroffsets);
47  ~RayModel();
48  void forceReflTimes(const StepInterval<float>&);
49  void getTraces(ObjectSet<SeisTrc>&,bool steal);
50  void getD2T(ObjectSet<TimeDepthModel>&,bool steal);
51  void getZeroOffsetD2T(TimeDepthModel&);
52  RefMan<ReflectivityModelSet>& getRefs(bool sampled=false);
53  const SeisTrc* stackedTrc() const;
54 
55  ObjectSet<SeisTrc> outtrcs_;
56  ObjectSet<TimeDepthModel> t2dmodels_;
57  TimeDepthModel* zerooffset2dmodel_;
59  RefMan<ReflectivityModelSet> sampledrefmodels_;
60  };
61 
62 
63  void setName(const char*);
64 
65  virtual const SeisTrc* getTrace(int seqnr) const = 0;
66 
67  float getTime(float dpt,int seqnr) const;
68  float getDepth(float time,int seqnr) const;
69 
70  const DataPack& getPack() const {return *datapack_;}
71  DataPack& getPack() {return *datapack_;}
72 
75 
79 
80  int id_;
81  virtual bool isPS() const = 0;
82  virtual bool hasOffset() const = 0;
83  virtual bool isAngleStack() const;
84  virtual bool isAVOGradient() const { return false; }
85  virtual SynthGenParams::SynthType synthType() const = 0;
86 
87  virtual void useGenParams(const SynthGenParams&);
88  virtual void fillGenParams(SynthGenParams&) const;
89  void useDispPar(const IOPar&);
90  void fillDispPar(IOPar&) const;
91  const char* waveletName() const { return wvltnm_; }
92  void setWavelet( const char* wvltnm )
93  { wvltnm_ = wvltnm; }
94  SynthFVSpecificDispPars& dispPars() { return disppars_; }
95  const SynthFVSpecificDispPars& dispPars() const
96  { return disppars_; }
97  RefMan<ReflectivityModelSet> getRefModels(int modelid,bool sampled);
98  void setRayModels(ObjectSet<RayModel>& rms );
99  bool haveSameRM(const IOPar& par1,
100  const IOPar& par2) const;
101  const IOPar& getRayPar() const
102  { return raypars_; }
103  void updateD2TModels();
104  void adjustD2TModels(
106 
107 protected:
109  DataPack&);
110  ~SyntheticData();
111 
114  SynthFVSpecificDispPars disppars_;
115 
116  void removePack();
117 
119 };
#define mExpClass(module)
Definition: commondefs.h:157
virtual bool isAVOGradient() const
Definition: syntheticdata.h:84
Seismics.
Definition: segydirectdef.h:20
DataPack & getPack()
Definition: syntheticdata.h:71
Definition: datapack.h:43
#define mStruct(module)
Definition: commondefs.h:162
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:200
float getTime(float depth) const
SynthFVSpecificDispPars & dispPars()
Definition: syntheticdata.h:94
int id_
Definition: syntheticdata.h:80
Definition: syntheticdata.h:39
DataPack::FullID datapackid_
Definition: syntheticdata.h:76
A data packet: data+positioning and more that needs to be shared.
Definition: datapack.h:39
SynthFVSpecificDispPars disppars_
Definition: syntheticdata.h:114
bool isPS(GeomType gt)
Definition: seistype.h:36
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
ObjectSet< RayModel > * raymodels_
Definition: syntheticdata.h:77
const IOPar & getRayPar() const
Definition: syntheticdata.h:101
const char * waveletName() const
Definition: syntheticdata.h:91
Ray tracer in 1D.
Definition: raytrace1d.h:30
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:187
BufferString wvltnm_
Definition: syntheticdata.h:112
RefMan< ReflectivityModelSet > reflectivitymodels_
Definition: syntheticdata.h:78
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
RefMan< DataPack > datapack_
Definition: syntheticdata.h:118
ObjectSet< const TimeDepthModel > d2tmodels_
Definition: syntheticdata.h:73
SynthType
Definition: stratsynthgenparams.h:23
IOPar raypars_
Definition: syntheticdata.h:113
Seismic trace.
Definition: seistrc.h:31
const DataPack & getPack() const
Definition: syntheticdata.h:70
object with a name.
Definition: namedobj.h:20
float getDepth(float time) const
void setWavelet(const char *wvltnm)
Definition: syntheticdata.h:92
Converts between time, depth and velocity given a model. The velocity model can be either RMO-velocit...
Definition: velocitycalc.h:29
Definition: stratsynthgenparams.h:18
const SeisTrc * getTrace(EM::SubID) const
ObjectSet< const TimeDepthModel > zerooffsd2tmodels_
Definition: syntheticdata.h:74
const SynthFVSpecificDispPars & dispPars() const
Definition: syntheticdata.h:95

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