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

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