OpendTect  6.3
stratsynth.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: Bruno
8  Date: July 2011
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "wellattribmod.h"
14 #include "ailayer.h"
15 #include "elasticpropsel.h"
16 #include "raysynthgenerator.h"
17 #include "syntheticdata.h"
18 #include "synthseis.h"
19 #include "valseriesevent.h"
20 #include "uistring.h"
21 #include "stratsynthlevelset.h"
22 
23 namespace PreStack { class PreStackSyntheticData; }
24 class GatherSetDataPack;
25 class RaySynthGenerator;
26 class SeisTrcBuf;
27 class TaskRunner;
28 class Wavelet;
29 class TrcKeyZSampling;
30 class RayTracer1D;
31 class StratSynthLevel;
33 
34 namespace Strat
35 {
36  class LayerModel; class LayerModelProvider; class LayerSequence;
37  class Level;
38 }
39 
40 typedef SyntheticData::RayModel SynthRayModel;
42 
43 
44 mExpClass(WellAttrib) StratSynth
45 { mODTextTranslationClass(StratSynth);
46 public:
49  StratSynth(const Strat::LayerModelProvider&,
50  bool useed);
51  ~StratSynth();
52 
53  int nrSynthetics() const;
54  RefMan<SyntheticData> addSynthetic();
55  RefMan<SyntheticData> addSynthetic(const SynthGenParams&);
56  bool removeSynthetic(const char*);
57  bool disableSynthetic(const char*);
58  RefMan<SyntheticData> replaceSynthetic(int id);
59  RefMan<SyntheticData> addDefaultSynthetic();
60  int syntheticIdx(const char* nm) const;
61  int syntheticIdx(const PropertyRef&) const;
62  RefMan<SyntheticData> getSynthetic(const char* nm);
63  inline ConstRefMan<SyntheticData> getSynthetic( const char* nm ) const
64  { const int idx = syntheticIdx( nm );
65  return synthetics_.validIdx(idx) ? synthetics_[idx]
66  : 0; }
67  void getSyntheticNames(BufferStringSet&,
69  void getSyntheticNames(BufferStringSet&,bool wantpres) const;
70  RefMan<SyntheticData> getSynthetic(int id);
71  RefMan<SyntheticData> getSynthetic(const PropertyRef&);
73  { const int idx = syntheticIdx( prf );
74  return synthetics_.validIdx(idx) ? synthetics_[idx]
75  : 0; }
76  RefMan<SyntheticData> getSyntheticByIdx(int idx);
77  ConstRefMan<SyntheticData> getSyntheticByIdx(int idx) const;
78  void clearSynthetics();
79  void generateOtherQuantities();
80  bool createElasticModels();
82  { aimodels_.erase(); }
83  bool hasElasticModels() const
84  { return !aimodels_.isEmpty(); }
85 
87  { return synthetics_; }
88 
89  void setWavelet(const Wavelet*);
90  const Wavelet* wavelet() const { return wvlt_; }
91  SynthGenParams& genParams() { return genparams_; }
92  const SynthGenParams& genParams() const
93  { return genparams_; }
94 
95  void setLevels(const StratSynthLevelSet&);
96  void setLevels(const BufferStringSet&,const LVLZValsSet&);
97  const StratSynthLevel* getLevel(const int idx) const
98  { return stratlevelset_->getStratLevel(idx); }
99  const StratSynthLevelSet* getLevels() const { return stratlevelset_; }
100 
101  void getLevelDepths(const Strat::Level&,
102  TypeSet<float>&) const;
103  void getLevelTimes(const Strat::Level&,
105  TypeSet<float>&) const;
106  void getLevelTimes(SeisTrcBuf&,
108  int dispeach=-1) const;
109  bool setLevelTimes(const char* sdnm);
110 
111  void flattenTraces(SeisTrcBuf&) const;
112  void trimTraces(SeisTrcBuf&,
114  float zskip) const;
115  void decimateTraces(SeisTrcBuf&,int fac) const;
116 
117  void setTaskRunner(TaskRunner* taskr) { taskr_ = taskr; }
118  uiString errMsg() const;
119  uiString infoMsg() const;
120  void clearInfoMsg() { infomsg_.setEmpty(); }
121 
122  static const char* sKeyFRNameSuffix() { return " after FR"; }
123 
124 protected:
125 
127  const bool useed_;
135  const Wavelet* wvlt_;
136 
140 
141  const Strat::LayerModel& layMod() const;
142  bool canRayModelsBeRemoved(const IOPar& raypar) const;
143  bool fillElasticModel(const Strat::LayerModel&,
144  ElasticModel&,int seqidx);
145  bool adjustElasticModel(const Strat::LayerModel&,
146  TypeSet<ElasticModel>&,bool chksvel);
147  void generateOtherQuantities(
148  const PostStackSyntheticData& sd,
149  const Strat::LayerModel&);
150  RefMan<SyntheticData> generateSD();
151  RefMan<SyntheticData> generateSD( const SynthGenParams&);
152  bool runSynthGen(RaySynthGenerator&, const SynthGenParams&);
153  void createAngleData(PreStack::PreStackSyntheticData&,
154  const ObjectSet<RayTracer1D>&);
155  RefMan<SyntheticData> createAngleStack(const SyntheticData& sd,
156  const TrcKeyZSampling&,
157  const SynthGenParams&);
158  RefMan<SyntheticData> createAVOGradient(const SyntheticData& sd,
159  const TrcKeyZSampling&,
160  const SynthGenParams&);
161  RefMan<SyntheticData> createSynthData(const SyntheticData& sd,
162  const TrcKeyZSampling&,
163  const SynthGenParams&,bool);
164 
165  const GatherSetDataPack* getRelevantAngleData(
166  const IOPar& raypar) const;
167 
168 public:
170  ("synthetics %1 : %2\n")); }
171 };
#define mExpClass(module)
Definition: commondefs.h:157
StratSynthLevelSet * stratlevelset_
Definition: stratsynth.h:128
A table of elastic prop layers with processing utilities.
Definition: ailayer.h:98
Definition: propertyref.h:174
base class for synthetic trace generators.
Definition: raysynthgenerator.h:26
FixedString Level()
Definition: keystrs.h:78
bool hasElasticModels() const
Definition: stratsynth.h:83
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
Ref Data for a (usually petrophysical) property.
Definition: propertyref.h:40
Definition: wavelet.h:22
Definition: prestackagc.h:18
void clearElasticModels()
Definition: stratsynth.h:81
void clearInfoMsg()
Definition: stratsynth.h:120
PropertyRefSelection props_
Definition: stratsynth.h:130
RefObjectSet< SyntheticData > synthetics_
Definition: stratsynth.h:131
TaskRunner * taskr_
Definition: stratsynth.h:139
Definition: uistring.h:88
Definition: syntheticdata.h:39
Set of BufferString objects.
Definition: bufstringset.h:25
bool swaveinfomsgshown_
Definition: stratsynth.h:134
uiString errmsg_
Definition: stratsynth.h:137
const Strat::LayerModelProvider & lmp_
Definition: stratsynth.h:126
static const char * sKeyFRNameSuffix()
Definition: stratsynth.h:122
Set of pointers to objects.
Definition: commontypes.h:28
const StratSynthLevel * getLevel(const int idx) const
Definition: stratsynth.h:97
ObjectSet< SynthRayModel > RayModelSet
Definition: stratsynth.h:41
Stratigraphic level.
Definition: stratlevel.h:35
SyntheticData::RayModel SynthRayModel
Definition: stratsynth.h:40
Definition: syntheticdataimpl.h:23
const bool useed_
Definition: stratsynth.h:127
Definition: stratsynthlevelset.h:20
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
const Wavelet * wavelet() const
Definition: stratsynth.h:90
Class that can execute a task.
Definition: task.h:193
static uiString phrCannotCreate(const uiString &string)
"Cannot create <string>"
ConstRefMan< SyntheticData > getSynthetic(const char *nm) const
Definition: stratsynth.h:63
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:32
TypeSet< float > LVLZVals
Definition: stratsynth.h:47
void setTaskRunner(TaskRunner *taskr)
Definition: stratsynth.h:117
Definition: stratlayermodel.h:82
int lastsyntheticid_
Definition: stratsynth.h:133
Ray tracer in 1D.
Definition: raytrace1d.h:30
SynthGenParams genparams_
Definition: stratsynth.h:129
static uiString sErrRetMsg()
Definition: stratsynth.h:169
TypeSet< LVLZVals > LVLZValsSet
Definition: stratsynth.h:48
const StratSynthLevelSet * getLevels() const
Definition: stratsynth.h:99
Stratigraphy.
Definition: stratlevel.h:25
SynthType
Definition: stratsynthgenparams.h:23
set of seismic traces.
Definition: seisbuf.h:28
const ObjectSet< SyntheticData > & synthetics() const
Definition: stratsynth.h:86
SynthGenParams & genParams()
Definition: stratsynth.h:91
const SynthGenParams & genParams() const
Definition: stratsynth.h:92
Definition: stratsynthlevel.h:20
const char * errMsg() const
Definition: horizontracker.h:59
Definition: prestacksyntheticdata.h:23
TypeSet< ElasticModel > aimodels_
Definition: stratsynth.h:132
A model consisting of layer sequences.
Definition: stratlayermodel.h:34
A DataPack containing an objectset of gathers.
Definition: prestackgather.h:154
const Wavelet * wvlt_
Definition: stratsynth.h:135
Definition: stratsynthgenparams.h:18
Definition: ptrman.h:227
ConstRefMan< SyntheticData > getSynthetic(const PropertyRef &prf) const
Definition: stratsynth.h:72
uiString infomsg_
Definition: stratsynth.h:138
Definition: stratsynth.h:44

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