OpendTect  6.3
welltiedata.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: Feb 2009
9 RCS: $Id: welltiedata.h,v 1.1 2009-01-19 13:02:33 cvsbruno Exp
10 $
11 ________________________________________________________________________
12 -*/
13 
14 #include "wellattribmod.h"
15 #include "notify.h"
16 #include "color.h"
17 #include "iopar.h"
18 #include "dbkey.h"
19 #include "uistring.h"
20 #include "welldisp.h"
21 #include "wellmarker.h"
22 #include "welltied2tmodelmanager.h"
23 #include "welltiesetup.h"
24 #include "wavelet.h"
25 
26 
27 class CtxtIOObj;
28 class SeisTrc;
29 class SyntheticData;
30 class TaskRunner;
31 
32 namespace Well { class Data; class Log; class LogSet; class Writer; }
33 
34 namespace WellTie
35 {
36 
37 class DataPlayer;
38 class Setup;
39 class PickSetMgr;
40 
41 
42 mExpClass(WellAttrib) DispParams
43 { mODTextTranslationClass(DispParams);
44 public:
46  : ismarkerdisp_(true)
47  , isvwrmarkerdisp_(true)
48  , isvwrhordisp_(false)
49  , iszinft_(false)
50  , iszintime_(true)
51  , dispmrkfullnames_(true)
52  , disphorfullnames_(true)
53  {}
54 
60  bool iszinft_;
61  bool iszintime_;
64 
65  static const char* sKeyIsMarkerDisp();
66  static const char* sKeyVwrMarkerDisp();
67  static const char* sKeyVwrHorizonDisp();
68  static const char* sKeyZInFeet();
69  static const char* sKeyZInTime();
70  static const char* sKeyMarkerFullName();
71  static const char* sKeyHorizonFullName();
72 
73  void fillPar(IOPar&) const;
74  void usePar(const IOPar&);
75 };
76 
77 
78 mExpClass(WellAttrib) Marker
79 { mODTextTranslationClass(Marker);
80 public:
81 
83 
84  Marker(float z)
85  : zpos_(z)
86  , size_(2) {}
87 
89  float zpos_;
91  LevelID id_;
92  int size_;
93 
94  bool operator == ( const Marker& m ) const
95  { return m.zpos_ == zpos_; }
96 };
97 
98 
99 mExpClass(WellAttrib) PickData
100 { mODTextTranslationClass(PickData);
101 public:
104 };
105 
106 
107 mExpClass(WellAttrib) Data
109 public :
110  Data(const Setup&,Well::Data& wd);
111  ~Data();
112 
114 
121 
122  const StepInterval<float>& getTraceRange() const { return tracerg_; }
123  const Interval<float>& getDahRange() const { return dahrg_; }
124  const StepInterval<float>& getModelRange() const { return modelrg_; }
125  const StepInterval<float>& getReflRange() const { return reflrg_; }
127  { tracerg_ = zrg; }
128  void computeExtractionRange();
129 
130  const Setup& setup() const { return setup_; }
131  const char* sKeyDensity() const { return setup_.denlognm_; }
132  const char* sKeySonic() const { return setup_.vellognm_; }
133  bool isSonic() const { return setup_.issonic_; }
134 
135  static const char* sKeyAI() { return "AI"; }
136  static const char* sKeyReflectivity() { return "Reflectivity"; }
137  static const char* sKeySynthetic() { return "Synthetic"; }
138  static const char* sKeySeismic() { return "Seismic"; }
139  static float cDefSeisSr();
140 
146 
147  mStruct(WellAttrib) CorrelData
148  {
149  CorrelData() : lag_(200), coeff_(0) {}
150 
151  TypeSet<float> vals_;
152  int lag_;
153  double coeff_;
154  float scaler_;
155  };
156  CorrelData correl_;
157 
158 protected:
159 
164  const Setup setup_;
165 };
166 
167 
169 { mODTextTranslationClass(DataWriter);
170 public:
171  DataWriter(Well::Data&,const DBKey&);
172  ~DataWriter();
173 
174  bool writeD2TM() const;
175  bool writeLogs(const Well::LogSet&,
176  bool todisk) const;
177  bool removeLogs(const Well::LogSet&) const;
178 
179  void setWD(Well::Data* wd)
180  { wd_ = wd; setWellWriter(); }
181 
182 protected:
183 
186  const DBKey& wellid_;
187 
188  void setWellWriter();
189 };
190 
191 
193 { mODTextTranslationClass(HorizonMgr);
194 public:
196  : wd_(0)
197  , horizons_(hor)
198  {}
199 
200  mStruct(WellAttrib) PosCouple
201  {
202  float z1_, z2_;
203  bool operator == ( const PosCouple& pc ) const
204  { return z1_ == pc.z1_ && z2_ == pc.z2_; }
205  };
206 
207  void matchHorWithMarkers(TypeSet<PosCouple>&,
208  bool bynames) const;
209  void setUpHorizons(const DBKeySet&,
210  uiString&,TaskRunner&);
211  void setWD( const Well::Data* wd)
212  { wd_ = wd; }
213 
214 protected:
215 
216  const Well::Data* wd_;
218 };
219 
220 
221 mExpClass(WellAttrib) Server : public CallBacker
223 public :
224  Server(const WellTie::Setup&);
225  ~Server();
226 
227  const DBKey& wellID() const { return wellid_; }
228  Well::Data* wd() { return data_->wd_; }
229  const Well::Data* wd() const { return data_->wd_; }
230 
231  PickSetMgr& pickMgr() { return *pickmgr_; }
232  D2TModelMgr& d2TModelMgr() { return *d2tmgr_; }
233  HorizonMgr& horizonMgr() { return *hormgr_; }
234  DispParams& dispParams() { return data_->dispparams_; }
235  DataWriter& dataWriter() { return *datawriter_; }
236  const Data& data() const { return *data_; }
237 
238  bool isOK() const { return errmsg_.isEmpty(); }
239  const uiString& errMsg() const { return errmsg_; }
240  const uiString& warnMsg() const { return warnmsg_; }
241 
242  bool computeSynthetics(const Wavelet&);
243  bool extractSeismics();
244  bool updateSynthetics(const Wavelet&);
245  bool computeAdditionalInfo(const Interval<float>&);
246  bool computeCrossCorrelation();
247  bool computeEstimatedWavelet(int newsz);
248  void setCrossCorrZrg(const Interval<float>&);
249  bool hasSynthetic() const;
250  bool hasSeismic() const;
251  bool doSeismic() const;
252  void updateExtractionRange();
253 
254  void setTaskRunner( TaskRunner* taskrun )
255  { data_->trunner_ = taskrun; }
256 protected :
257 
266 
269 
270  void wellDataDel( CallBacker* );
271  void handleDataPlayerWarning() const;
272 };
273 
274 } // namespace WellTie
Manages the D2T models used during TWTS.
Definition: welltied2tmodelmanager.h:35
#define mExpClass(module)
Definition: commondefs.h:157
Well::Data * wd()
Definition: welltiedata.h:228
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:182
SeisTrc & seistrc_
Definition: welltiedata.h:117
LevelID id_
Definition: welltiedata.h:91
Well::Writer * wtr_
Definition: welltiedata.h:184
bool iszinft_
Definition: welltiedata.h:60
Data * data_
Definition: welltiedata.h:264
RefMan< Well::Data > wd_
Definition: welltiedata.h:259
FixedString Setup()
Definition: keystrs.h:113
RefMan< SyntheticData > sd_
Definition: welltiedata.h:145
static const char * sKeySynthetic()
Definition: welltiedata.h:137
bool operator==(const ArrayNDInfo &a1, const ArrayNDInfo &a2)
Definition: arrayndinfo.h:51
const uiString & warnMsg() const
Definition: welltiedata.h:240
Interval< float > dahrg_
Definition: welltiedata.h:161
Definition: welltiedata.h:78
DispParams dispparams_
Definition: welltiedata.h:143
const char * sKeySonic() const
Definition: welltiedata.h:132
#define mStruct(module)
Definition: commondefs.h:162
Well::Data * wd_
Definition: welltiedata.h:185
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
const StepInterval< float > & getModelRange() const
Definition: welltiedata.h:124
const Well::Data * wd_
Definition: welltiedata.h:216
Definition: welltiesetup.h:28
const DBKey & wellid_
Definition: welltiedata.h:186
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:200
Well log.
Definition: welllog.h:40
Definition: wavelet.h:22
Definition: dbkey.h:98
DispParams()
Definition: welltiedata.h:45
Definition: welltiedata.h:107
Definition: file.h:109
Set of Well::Log&#39;s.
Definition: welllogset.h:24
static const char * sKeyReflectivity()
Definition: welltiedata.h:136
const StepInterval< float > & getReflRange() const
Definition: welltiedata.h:125
Definition: welldisp.h:87
static const char * sKeyAI()
Definition: welltiedata.h:135
Well::MarkerDispProps mrkdisp_
Definition: welltiedata.h:62
TypeSet< Marker > & horizons_
Definition: welltiedata.h:217
Definition: uistring.h:88
Definition: syntheticdata.h:39
Definition: welltiecshot.h:20
static const char * sKeySeismic()
Definition: welltiedata.h:138
Set of BufferString objects.
Definition: bufstringset.h:25
BufferStringSet allmarkernms_
Definition: welltiedata.h:63
TypeSet< Marker > seispicks_
Definition: welltiedata.h:103
bool isOK() const
Definition: welltiedata.h:238
Holds an IOObjCtxt plus a pointer to an IOObj and/or an IOPar.
Definition: ctxtioobj.h:24
PickSetMgr * pickmgr_
Definition: welltiedata.h:258
Strat::Level::ID LevelID
Definition: wellmarker.h:36
Color color_
Definition: welltiedata.h:88
TypeSet< Marker > horizons_
Definition: welltiedata.h:141
bool isvwrmarkerdisp_
Definition: welltiedata.h:56
Writes Well::Data to any data storage.
Definition: wellwriter.h:29
HorizonMgr(TypeSet< Marker > &hor)
Definition: welltiedata.h:195
DBKey wellid_
Definition: welltiedata.h:265
RefMan< Wavelet > initwvlt_
Definition: welltiedata.h:118
Definition: welltiedata.h:192
RefMan< Wavelet > estimatedwvlt_
Definition: welltiedata.h:119
TypeSet< Marker > synthpicks_
Definition: welltiedata.h:102
HorizonMgr * hormgr_
Definition: welltiedata.h:261
Set of (small) copyable elements.
Definition: commontypes.h:26
uiString warnmsg_
Definition: welltiedata.h:268
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
const Well::Log * cslog_
Definition: welltiedata.h:120
Class that can execute a task.
Definition: task.h:193
bool disphorfullnames_
Definition: welltiedata.h:59
const Data & data() const
Definition: welltiedata.h:236
bool isSonic() const
Definition: welltiedata.h:133
DataWriter & dataWriter()
Definition: welltiedata.h:235
bool isvwrhordisp_
Definition: welltiedata.h:57
Definition: wellcommon.h:16
const char * sKeyDensity() const
Definition: welltiedata.h:131
TaskRunner * trunner_
Definition: welltiedata.h:144
uiString errmsg_
Definition: welltiedata.h:267
HorizonMgr & horizonMgr()
Definition: welltiedata.h:233
void setWD(Well::Data *wd)
Definition: welltiedata.h:179
DataWriter * datawriter_
Definition: welltiedata.h:263
const Interval< float > & getDahRange() const
Definition: welltiedata.h:123
void setTraceRange(const StepInterval< float > &zrg)
Definition: welltiedata.h:126
bool ismarkerdisp_
Definition: welltiedata.h:55
bool dispmrkfullnames_
Definition: welltiedata.h:58
const Setup & setup() const
Definition: welltiedata.h:130
D2TModelMgr * d2tmgr_
Definition: welltiedata.h:262
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:187
const Well::Data * wd() const
Definition: welltiedata.h:229
Marker(float z)
Definition: welltiedata.h:84
Definition: welltiedata.h:99
Definition: repos.h:23
BufferString name_
Definition: welltiedata.h:90
D2TModelMgr & d2TModelMgr()
Definition: welltiedata.h:232
Definition: welltiepickset.h:29
StepInterval< float > tracerg_
Definition: welltiedata.h:160
StepInterval< float > reflrg_
Definition: welltiedata.h:163
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
const Setup setup_
Definition: welltiedata.h:164
bool isEmpty() const
Definition: odstring.h:49
int size_
Definition: welltiedata.h:92
Seismic trace.
Definition: seistrc.h:31
BufferString errmsg_
Definition: horizontracker.h:117
const StepInterval< float > & getTraceRange() const
Definition: welltiedata.h:122
const DBKey & wellID() const
Definition: welltiedata.h:227
Well::LogSet & logset_
Definition: welltiedata.h:115
Definition: welltiedata.h:168
PickData pickdata_
Definition: welltiedata.h:142
PickSetMgr & pickMgr()
Definition: welltiedata.h:231
const uiString & errMsg() const
Definition: welltiedata.h:239
Color is an RGB color object, with a transparancy. The storage is in a 4-byte integer, similar to Qt.
Definition: color.h:24
Full key to any object in the OpendTect data store.
Definition: dbkey.h:36
DispParams & dispParams()
Definition: welltiedata.h:234
The holder of all data concerning a certain well.
Definition: welldata.h:36
Definition: welltietoseismic.h:31
bool iszintime_
Definition: welltiedata.h:61
CorrelData correl_
Definition: welltiedata.h:155
DataPlayer * dataplayer_
Definition: welltiedata.h:260
void setWD(const Well::Data *wd)
Definition: welltiedata.h:211
Well::Data * wd_
Definition: welltiedata.h:113
SeisTrc & synthtrc_
Definition: welltiedata.h:116
float zpos_
Definition: welltiedata.h:89
Definition: welltiedata.h:42
Well::Marker::LevelID LevelID
Definition: welltiedata.h:82
StepInterval< float > modelrg_
Definition: welltiedata.h:162
Definition: welltiedata.h:221
void setTaskRunner(TaskRunner *taskrun)
Definition: welltiedata.h:254

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