OpendTect  6.6
horizontracker.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: N. Hemstra
8  Date: March 2005
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "task.h"
15 #include "thread.h"
16 #include "emposid.h"
17 #include "refcount.h"
18 #include "rowcol.h"
19 
20 namespace EM {
21  class Fault;
22  class Horizon;
23  class Horizon2D;
24  class Horizon3D;
25 }
26 
27 template <class T> class Array2DImpl;
28 
29 namespace Survey { class Geometry3D; }
30 class SeisTrc;
31 
32 
33 
34 namespace MPE
35 {
36 
42 {
43 public:
46 
48 
49  bool init();
50 
51  const ObjectSet<EM::Fault>& getFaults() const { return faults_; }
54 
55  int doStep();
56 
57  void fillPar(IOPar&) const;
58  bool usePar(const IOPar&);
59 
60  const char* errMsg() const { return errmsg_.str(); }
61  const EM::Horizon& horizon() const { return horizon_; }
62 
63  static FixedString sNrHorizons() { return "Nr Horizons"; }
64  static FixedString sKeyHorizonID() { return "Horizon ID"; }
65 
66  struct TrackTarget
67  {
68  friend class HorizonAutoTrackerTask;
70  void reset();
71 
72  static unsigned char getSourceMask(EM::SubID from,EM::SubID to);
73  static unsigned char cSourcePP() { return 1; }
74  static unsigned char cSourcePS() { return 2; }
75  static unsigned char cSourcePN() { return 4; }
76  static unsigned char cSourceSP() { return 8; }
77  static unsigned char cSourceSN() { return 16; }
78  static unsigned char cSourceNP() { return 32; }
79  static unsigned char cSourceNS() { return 64; }
80  static unsigned char cSourceNN() { return 128; }
81 
83 
85 
86  float score_;
87  float proposedz_;
88  unsigned char sources_;
89 
91 
92  bool istarget_;
94  bool isvalid_;
95  };
96 
97 
98 protected:
99  void removeAll();
100 
101  RowCol getArrayPos(const EM::PosID&) const;
102 
103 
104  float getInterpolZ(const EM::PosID&) const;
108  /*Returns index (to array) if target should
109  be computed*/
110  void getSources(const EM::PosID&,
111  TypeSet<EM::PosID>&) const;
112 
113  const SeisTrc* getTrace(EM::SubID) const;
114  //Waits until it is loaded
116  //Tell that you want it to be loaded
117 
119 
123 
125 
126  /* For 2D, there is one row in the arrays per line in the survey, and one
127  column per trace, using the step of the horizon.
128  For 3D, there is one row per inline in the survey, and one column per
129  trace, both with the step of the horizon. */
130 
132 
134 
138 
141 
143 
144 };
145 
146 } // namespace MPE
147 
MPE::TrackTarget
Definition: horizontracker.h:67
emposid.h
MPE::s3dgeom_
RefMan< Survey::Geometry3D > s3dgeom_
Definition: horizontracker.h:142
MPE::TrackTarget::pid_
EM::PosID pid_
Definition: horizontracker.h:84
task.h
MPE::tracewanted_
PtrMan< Array2DImpl< bool > > tracewanted_
Definition: horizontracker.h:137
MPE::errMsg
const char * errMsg() const
Definition: horizontracker.h:60
MPE::~HorizonAutoTracker
~HorizonAutoTracker()
Conv::to
T to(const F &fr)
Definition: convert.h:34
MPE::HorizonAutoTracker
mExpClass HorizonAutoTracker
SequentialTask to autotrack EM::Horizon.
Definition: horizontracker.h:44
MPE::TrackTarget::cSourcePS
static unsigned char cSourcePS()
Definition: horizontracker.h:74
EM::SubID
od_int64 SubID
Definition: emposid.h:25
ObjectSet
Set of pointers to objects.
Definition: commontypes.h:31
MPE::init
bool init()
MPE::history_
PtrMan< Array2DImpl< unsigned char > > history_
Definition: horizontracker.h:133
MPE::TrackTarget::needsrecalc_
bool needsrecalc_
Definition: horizontracker.h:93
MPE::TrackTarget::getSourceMask
static unsigned char getSourceMask(EM::SubID from, EM::SubID to)
MPE::trcs_
PtrMan< Array2DImpl< PtrMan< SeisTrc > > > trcs_
Definition: horizontracker.h:135
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
MPE::sKeyHorizonID
static FixedString sKeyHorizonID()
Definition: horizontracker.h:64
SeisTrc
Seismic trace.
Definition: seistrc.h:34
MPE::hor3d_
EM::Horizon3D * hor3d_
Definition: horizontracker.h:121
MPE::TrackTarget::cSourcePN
static unsigned char cSourcePN()
Definition: horizontracker.h:75
MPE::TrackTarget::cSourcePP
static unsigned char cSourcePP()
Definition: horizontracker.h:73
MPE::addSeed
void addSeed(EM::SectionID, EM::SubID)
Survey::Geometry3D
Scaled down survey geometry for an inl/crl geometry.
Definition: survgeom3d.h:28
MPE::TrackTarget::reset
void reset()
sKey::Fault
FixedString Fault()
Definition: keystrs.h:66
sKey::Horizon
FixedString Horizon()
Definition: keystrs.h:77
MPE::TrackTarget::proposedz_
float proposedz_
Definition: horizontracker.h:87
EM
Earth Model objects like horizons, faults, fault-sticks and bodies.
Definition: bulk2dhorizonscanner.h:26
MPE::TrackTarget::cSourceSP
static unsigned char cSourceSP()
Definition: horizontracker.h:76
MPE
MPE stands for Model, Predict, Edit. Contains tracking and editing functions.
Definition: autotracker.h:32
MPE::set3DSurvGeom
void set3DSurvGeom(const Survey::Geometry3D &)
MPE::addFault
void addFault(EM::Fault &)
OD::String::str
const char * str() const
Definition: odstring.h:47
EM::Horizon
Horizon Surface.
Definition: emhorizon.h:47
EM::Horizon2D
2D Horizon. The Horizon is only present along 2d lines, set by addLine. Each position's subid is form...
Definition: emhorizon2d.h:108
MPE::getTrace
const SeisTrc * getTrace(EM::SubID) const
MPE::computeScores
void computeScores()
sKey::Horizon2D
FixedString Horizon2D()
Definition: keystrs.h:78
PtrMan
Definition: ptrman.h:121
MPE::TrackTarget::TrackTarget
TrackTarget(HorizonAutoTracker *)
Survey
Definition: surveydisklocation.h:18
MPE::TrackTarget::cSourceSN
static unsigned char cSourceSN()
Definition: horizontracker.h:77
MPE::arrayorigin_
RowCol arrayorigin_
Definition: horizontracker.h:139
FixedString
OD::String that holds an existing text string.
Definition: fixedstring.h:29
MPE::requestTrace
void requestTrace(EM::SubID)
MPE::removeAll
void removeAll()
MPE::TrackTarget::sources_
unsigned char sources_
Definition: horizontracker.h:88
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
MPE::hor2d_
EM::Horizon2D * hor2d_
Definition: horizontracker.h:120
MPE::TrackTarget::cSourceNS
static unsigned char cSourceNS()
Definition: horizontracker.h:79
MPE::diptrcs_
PtrMan< Array2DImpl< PtrMan< SeisTrc > > > diptrcs_
Definition: horizontracker.h:136
EM::SectionID
od_int16 SectionID
Definition: emposid.h:24
MPE::TrackTarget::istarget_
bool istarget_
Definition: horizontracker.h:92
Array2DImpl
Implementation of Array2D.
Definition: arrayndimpl.h:102
MPE::faults_
ObjectSet< EM::Fault > faults_
Definition: horizontracker.h:124
MPE::TrackTarget::cSourceNP
static unsigned char cSourceNP()
Definition: horizontracker.h:78
MPE::TrackTarget::computeProposal
void computeProposal()
MPE::fillPar
void fillPar(IOPar &) const
MPE::errmsg_
BufferString errmsg_
Definition: horizontracker.h:118
MPE::horizon
const EM::Horizon & horizon() const
Definition: horizontracker.h:61
MPE::TrackTarget::isvalid_
bool isvalid_
Definition: horizontracker.h:94
MPE::addPossibleTarget
int addPossibleTarget(EM::SectionID, EM::SubID)
MPE::TrackTarget::tracker_
HorizonAutoTracker * tracker_
Definition: horizontracker.h:90
refcount.h
MPE::getFaults
const ObjectSet< EM::Fault > & getFaults() const
Definition: horizontracker.h:51
MPE::getArrayPos
RowCol getArrayPos(const EM::PosID &) const
RowCol
IdxPair used for its row() and col().
Definition: rowcol.h:25
MPE::usePar
bool usePar(const IOPar &)
MPE::getInterpolZ
float getInterpolZ(const EM::PosID &) const
MPE::step_
RowCol step_
Definition: horizontracker.h:140
MPE::removeFault
void removeFault(EM::Fault &)
MPE::getSources
void getSources(const EM::PosID &, TypeSet< EM::PosID > &) const
MPE::sNrHorizons
static FixedString sNrHorizons()
Definition: horizontracker.h:63
thread.h
MPE::TrackTarget::cSourceNN
static unsigned char cSourceNN()
Definition: horizontracker.h:80
MPE::targetarray_
PtrMan< Array2DImpl< TrackTarget > > targetarray_
Definition: horizontracker.h:131
MPE::TrackTarget::HorizonAutoTrackerTask
friend class HorizonAutoTrackerTask
Definition: horizontracker.h:68
EM::Fault
Fault Surface base class.
Definition: emfault.h:84
rowcol.h
MPE::TrackTarget::score_
float score_
Definition: horizontracker.h:86
SequentialTask
The generalization of something (e.g. a computation) where the steps must be done in sequence,...
Definition: task.h:125
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
EM::Horizon3D
3D Horizon. A Horizon is made up of one or more grids (so they can overlap at faults)....
Definition: emhorizon3d.h:96
EM::PosID
Is an identifier for each position in the earthmodel.
Definition: emposid.h:37
MPE::horizon_
EM::Horizon & horizon_
Definition: horizontracker.h:122
MPE::doStep
int doStep()
TypeSet< EM::PosID >
RefMan
Definition: ptrman.h:206

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