OpendTect-6_4  6.4
stratsynth.h
Go to the documentation of this file.
1 #ifndef stratsynth_h
2 #define stratsynth_h
3 
4 /*+
5 ________________________________________________________________________
6 
7  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
8  Author: Bruno
9  Date: July 2011
10  RCS: $Id$
11 ________________________________________________________________________
12 
13 -*/
14 
15 #include "wellattribmod.h"
16 #include "syntheticdata.h"
17 #include "ailayer.h"
18 #include "elasticpropsel.h"
19 #include "synthseis.h"
20 #include "valseriesevent.h"
21 #include "uistring.h"
22 
23 namespace PreStack { class GatherSetDataPack; }
24 class SeisTrcBuf;
25 class TaskRunner;
26 class Wavelet;
27 class TrcKeyZSampling;
28 class RayTracer1D;
29 class StratSynthLevel;
32 
33 namespace Strat
34 {
35  class LayerModel; class LayerModelProvider; class LayerSequence;
36  class Level;
37 }
38 namespace Seis { class RaySynthGenerator; }
39 
40 typedef Seis::RaySynthGenerator::RayModel SynthRayModel;
42 
44 { mODTextTranslationClass(SynthRayModelManager);
45 public:
46  ObjectSet<SynthRayModel>* getRayModelSet(const IOPar&);
47  void addRayModelSet(ObjectSet<SynthRayModel>*,
48  const SyntheticData*);
49  void removeRayModelSet(const IOPar&);
50  void clearRayModels();
51  bool haveSameRM(const IOPar& par1,
52  const IOPar& par2) const;
53 protected:
56 };
57 
58 
59 
60 mExpClass(WellAttrib) StratSynth
61 { mODTextTranslationClass(StratSynth);
62 public:
63  StratSynth(const Strat::LayerModelProvider&,
64  bool useed);
65  ~StratSynth();
66 
67  int nrSynthetics() const;
68  SyntheticData* addSynthetic();
69  SyntheticData* addSynthetic(const SynthGenParams&);
70  bool removeSynthetic(const char*);
71  bool disableSynthetic(const char*);
72  SyntheticData* replaceSynthetic(int id);
73  SyntheticData* addDefaultSynthetic();
74  int syntheticIdx(const char* nm) const;
75  int syntheticIdx(const PropertyRef&) const;
76  SyntheticData* getSynthetic(const char* nm);
77  inline const SyntheticData* getSynthetic( const char* nm ) const
78  { const int idx = syntheticIdx( nm );
79  return synthetics_.validIdx(idx) ? synthetics_[idx]
80  : 0; }
81  void getSyntheticNames(BufferStringSet&,
82  SynthGenParams::SynthType) const;
83  void getSyntheticNames(BufferStringSet&,bool wantpres) const;
84  SyntheticData* getSynthetic(int id);
85  SyntheticData* getSynthetic(const PropertyRef&);
86  inline const SyntheticData* getSynthetic( const PropertyRef& prf ) const
87  { const int idx = syntheticIdx( prf );
88  return synthetics_.validIdx(idx) ? synthetics_[idx]
89  : 0; }
90  SyntheticData* getSyntheticByIdx(int idx);
91  const SyntheticData* getSyntheticByIdx(int idx) const;
92  void clearSynthetics();
93  void generateOtherQuantities();
94  bool createElasticModels();
96  { aimodels_.erase(); }
97  bool hasElasticModels() const
98  { return !aimodels_.isEmpty(); }
99 
101  { return synthetics_; }
102 
103  void setWavelet(const Wavelet*);
104  const Wavelet* wavelet() const { return wvlt_; }
105  SynthGenParams& genParams() { return genparams_; }
106  const SynthGenParams& genParams() const
107  { return genparams_; }
108 
109  void setLevel(const StratSynthLevel*);
110  const StratSynthLevel* getLevel() const { return level_; }
111 
112  void getLevelDepths(const Strat::Level&,
113  TypeSet<float>&) const;
114  void getLevelTimes(const Strat::Level&,
116  TypeSet<float>&) const;
117  void getLevelTimes(SeisTrcBuf&,
118  const ObjectSet<const TimeDepthModel>&) const;
119  bool setLevelTimes(const char* sdnm);
120 
121  void flattenTraces(SeisTrcBuf&) const;
122  void trimTraces(SeisTrcBuf&,
124  float zskip) const;
125  void decimateTraces(SeisTrcBuf&,int fac) const;
127  { synthrmmgr_.clearRayModels(); }
128 
129  void setTaskRunner( TaskRunner* t ) { taskr_ = t; }
130  bool hasTaskRunner() const { return taskr_; }
131  uiString errMsg() const;
132  uiString infoMsg() const;
133  void clearInfoMsg() { infomsg_.setEmpty(); }
134 
135  static const char* sKeyFRNameSuffix() { return " after FR"; }
136 
137 protected:
138 
140  const bool useed_;
142  SynthGenParams genparams_;
148  const Wavelet* wvlt_;
149 
154 
155  const Strat::LayerModel& layMod() const;
156  bool canRayModelsBeRemoved(const IOPar& raypar) const;
157  bool fillElasticModel(const Strat::LayerModel&,
158  ElasticModel&,int seqidx);
159  bool adjustElasticModel(const Strat::LayerModel&,
160  TypeSet<ElasticModel>&,bool chksvel);
161  void generateOtherQuantities(
162  const PostStackSyntheticData& sd,
163  const Strat::LayerModel&);
164  SyntheticData* generateSD();
165  SyntheticData* generateSD( const SynthGenParams&);
166  bool runSynthGen(Seis::RaySynthGenerator&,
167  const SynthGenParams&);
168  SyntheticData* createAngleStack(const SyntheticData& sd,
169  const TrcKeyZSampling&,
170  const SynthGenParams&);
171  SyntheticData* createAVOGradient(const SyntheticData& sd,
172  const TrcKeyZSampling&,
173  const SynthGenParams&);
174  void createAngleData(PreStackSyntheticData&,
175  const ObjectSet<RayTracer1D>&);
176 
177  void adjustD2TModels(ObjectSet<TimeDepthModel>&) const;
178  void putD2TModelsInSD(SyntheticData&,
180 
181  const PreStack::GatherSetDataPack* getRelevantAngleData(
182  const IOPar& raypar) const;
183 public:
184  void getLevelTimes(SeisTrcBuf&,
186  int dispeach) const;
187 };
188 
189 #endif
#define mExpClass(module)
Definition: commondefs.h:160
Summary for a Seismic object.
Definition: segydirectdef.h:23
A table of elastic prop layers with processing utilities.
Definition: ailayer.h:100
Definition: propertyref.h:176
FixedString Level()
Definition: keystrs.h:78
bool hasElasticModels() const
Definition: stratsynth.h:97
#define mODTextTranslationClass(clss)
Definition: uistring.h:38
const SyntheticData * getSynthetic(const PropertyRef &prf) const
Definition: stratsynth.h:86
Definition: synthseis.h:207
Ref Data for a (usually petrophysical) property.
Definition: propertyref.h:42
Definition: wavelet.h:25
Definition: synthseis.h:36
Definition: stratsynth.h:43
SynthRayModelManager synthrmmgr_
Definition: stratsynth.h:153
void clearElasticModels()
Definition: stratsynth.h:95
void clearInfoMsg()
Definition: stratsynth.h:133
PropertyRefSelection props_
Definition: stratsynth.h:143
TaskRunner * taskr_
Definition: stratsynth.h:152
Definition: uistring.h:89
Definition: syntheticdata.h:38
Set of BufferString objects.
Definition: bufstringset.h:28
bool swaveinfomsgshown_
Definition: stratsynth.h:147
uiString errmsg_
Definition: stratsynth.h:150
const Strat::LayerModelProvider & lmp_
Definition: stratsynth.h:139
static const char * sKeyFRNameSuffix()
Definition: stratsynth.h:135
Set of pointers to objects.
Definition: commontypes.h:32
ObjectSet< SynthRayModel > RayModelSet
Definition: stratsynth.h:41
Stratigraphic level.
Definition: stratlevel.h:42
const SyntheticData * getSynthetic(const char *nm) const
Definition: stratsynth.h:77
Definition: syntheticdataimpl.h:26
const bool useed_
Definition: stratsynth.h:140
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:47
const Wavelet * wavelet() const
Definition: stratsynth.h:104
Class that can execute a task.
Definition: task.h:169
A DataPack containing an objectset of gathers.
Definition: prestackgather.h:152
ObjectSet< SyntheticData > synthetics_
Definition: stratsynth.h:144
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:35
const StratSynthLevel * level_
Definition: stratsynth.h:141
ObjectSet< RayModelSet > raymodels_
Definition: stratsynth.h:54
Definition: stratlayermodel.h:84
int lastsyntheticid_
Definition: stratsynth.h:146
Ray tracer in 1D.
Definition: raytrace1d.h:32
SynthGenParams genparams_
Definition: stratsynth.h:142
Definition: syntheticdataimpl.h:98
Stratigraphy.
Definition: stratlevel.h:26
const StratSynthLevel * getLevel() const
Definition: stratsynth.h:110
void clearRayModels()
Definition: stratsynth.h:126
set of seismic traces.
Definition: seisbuf.h:31
const ObjectSet< SyntheticData > & synthetics() const
Definition: stratsynth.h:100
SynthGenParams & genParams()
Definition: stratsynth.h:105
const SynthGenParams & genParams() const
Definition: stratsynth.h:106
Definition: stratsynthlevel.h:22
void setTaskRunner(TaskRunner *t)
Definition: stratsynth.h:129
const char * errMsg() const
Definition: horizontracker.h:61
TypeSet< ElasticModel > aimodels_
Definition: stratsynth.h:145
A model consisting of layer sequences.
Definition: stratlayermodel.h:36
TypeSet< IOPar > synthraypars_
Definition: stratsynth.h:55
const Wavelet * wvlt_
Definition: stratsynth.h:148
Seis::RaySynthGenerator::RayModel SynthRayModel
Definition: stratsynth.h:40
uiString infomsg_
Definition: stratsynth.h:151
bool hasTaskRunner() const
Definition: stratsynth.h:130
Definition: stratsynth.h:60

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