OpendTect  6.6
seiscubeprov.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: A.H. Bril
8  Date: Jan 2007
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 */
13 
14 
15 #include "seismod.h"
16 #include "arraynd.h"
17 #include "trckeyzsampling.h"
18 #include "rowcol.h"
19 #include "objectset.h"
20 #include "uistring.h"
21 
22 template <class T> class Array2D;
23 class IOObj;
24 class LineKey;
25 class SeisTrc;
26 class SeisTrcBuf;
27 class SeisTrcReader;
28 namespace Seis { class SelData; }
29 class TaskRunner;
30 
31 
57 public:
58 
63  SeisMSCProvider(const char* fnm);
65  virtual ~SeisMSCProvider();
66 
67  bool is2D() const;
68  bool prepareWork();
70 
71  // use the following after prepareWork
72  // but before the first next()
73  void forceFloatData( bool yn )
74  { intofloats_ = yn; }
75  void setStepout(int,int,bool required);
78  void setStepoutStep( int i, int c )
79  { stepoutstep_.row() = i; stepoutstep_.col() = c; }
80  int inlStepout( bool req ) const
81  { return req ? reqstepout_.row() : desstepout_.row(); }
82  int crlStepout( bool req ) const
83  { return req ? reqstepout_.col() : desstepout_.col(); }
86 
87  enum AdvanceState { NewPosition, Buffering, EndReached, Error };
89  uiString errMsg() const { return errmsg_; }
90 
91  BinID getPos() const;
92  int getTrcNr() const;
93  SeisTrc* get(int deltainl,int deltacrl);
94  SeisTrc* get(const BinID&);
95  const SeisTrc* get( int i, int c ) const
96  { return const_cast<SeisMSCProvider*>(this)->get(i,c); }
97  const SeisTrc* get( const BinID& bid ) const
98  { return const_cast<SeisMSCProvider*>(this)->get(bid); }
99 
100  int comparePos(const SeisMSCProvider&) const;
102  int estimatedNrTraces() const;
103 
104  SeisTrcReader& reader() { return rdr_; }
105  const SeisTrcReader& reader() const { return rdr_; }
106 
107 protected:
108 
117  enum ReadState { NeedStart, ReadOK, ReadAtEnd, ReadErr };
119 
121  mutable int estnrtrcs_;
122 
123  // Indexes of new pos ready, equals -1 while buffering.
124  int bufidx_;
125  int trcidx_;
126  // Indexes of next position to be examined.
129 
130  void init();
131  bool startWork();
133  bool isReqBoxFilled() const;
134  bool doAdvance();
135 };
136 
137 
140 public:
143 
144  void clear();
145  bool isEmpty() const;
146  bool readData(const TrcKeyZSampling&,TaskRunner* tr=0);
148  const Pos::GeomID geomid, TaskRunner* tr = 0);
149 
150  const SeisTrc* getTrace(const BinID&) const;
151  const SeisTrc* getTrace(int trcnr) const;
152  float getTrcDist() const { return trcdist_; }
153  uiString errMsg() const;
154 
155 protected:
156 
158 
162  float trcdist_;
163 
165 };
166 
SeisFixedCubeProvider::calcTrcDist
bool calcTrcDist(const Pos::GeomID)
SeisFixedCubeProvider::getTrace
const SeisTrc * getTrace(const BinID &) const
SeisFixedCubeProvider::readData
bool readData(const TrcKeyZSampling &, TaskRunner *tr=0)
SeisMSCProvider::~SeisMSCProvider
virtual ~SeisMSCProvider()
SeisMSCProvider::reqstepout_
RowCol reqstepout_
Definition: seiscubeprov.h:111
uistring.h
SeisTrcReader
reads from a seismic data store.
Definition: seisread.h:50
SeisMSCProvider::startWork
bool startWork()
ObjectSet< SeisTrcBuf >
SeisFixedCubeProvider::getTrcDist
float getTrcDist() const
Definition: seiscubeprov.h:152
SeisMSCProvider::setStepout
void setStepout(Array2D< bool > *mask)
Seis
Summary for a Seismic object.
Definition: segydirectdef.h:22
SeisMSCProvider::bufidx_
int bufidx_
Definition: seiscubeprov.h:124
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
SeisMSCProvider::isReqBoxFilled
bool isReqBoxFilled() const
SeisTrc
Seismic trace.
Definition: seistrc.h:34
SeisFixedCubeProvider::isEmpty
bool isEmpty() const
SeisMSCProvider::advance
AdvanceState advance()
SeisMSCProvider::setStepout
void setStepout(int, int, bool required)
SeisMSCProvider::trcidx_
int trcidx_
Definition: seiscubeprov.h:125
SeisMSCProvider::crlStepout
int crlStepout(bool req) const
Definition: seiscubeprov.h:82
SeisFixedCubeProvider::getTrace
const SeisTrc * getTrace(int trcnr) const
SeisMSCProvider::desstepout_
RowCol desstepout_
Definition: seiscubeprov.h:112
SeisMSCProvider::rdr_
SeisTrcReader & rdr_
Definition: seiscubeprov.h:109
SeisMSCProvider::estimatedNrTraces
int estimatedNrTraces() const
returns -1 when unknown
SeisMSCProvider::get
const SeisTrc * get(const BinID &bid) const
Definition: seiscubeprov.h:97
SeisMSCProvider::is2D
bool is2D() const
SeisTrcBuf
set of seismic traces.
Definition: seisbuf.h:31
SeisMSCProvider::reader
SeisTrcReader & reader()
Definition: seiscubeprov.h:104
SeisFixedCubeProvider::readData
bool readData(const TrcKeyZSampling &, const Pos::GeomID geomid, TaskRunner *tr=0)
TrcKeyZSampling
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:35
arraynd.h
SeisFixedCubeProvider::SeisFixedCubeProvider
SeisFixedCubeProvider(const MultiID &)
SeisMSCProvider::errMsg
uiString errMsg() const
Definition: seiscubeprov.h:89
SeisMSCProvider::NewPosition
@ NewPosition
Definition: seiscubeprov.h:87
SeisFixedCubeProvider::data_
Array2D< SeisTrc * > * data_
Definition: seiscubeprov.h:157
SeisMSCProvider::get
SeisTrc * get(int deltainl, int deltacrl)
BinID
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:31
SeisFixedCubeProvider::mODTextTranslationClass
mODTextTranslationClass(SeisFixedCubeProvider)
SeisMSCProvider::getTrcNr
int getTrcNr() const
SeisFixedCubeProvider::clear
void clear()
SeisMSCProvider::SeisMSCProvider
SeisMSCProvider(const MultiID &)
Use any real user entry from '.omf' file.
SeisMSCProvider::forceFloatData
void forceFloatData(bool yn)
Definition: seiscubeprov.h:73
SeisMSCProvider::setStepoutStep
void setStepoutStep(int i, int c)
Definition: seiscubeprov.h:78
SeisMSCProvider::SeisMSCProvider
SeisMSCProvider(const IOObj &)
Use any real user entry from '.omf' file.
Seis::SelData
contains input (sub-)selection data from a cube or lineset
Definition: seisselection.h:82
SeisMSCProvider::get
const SeisTrc * get(int i, int c) const
Definition: seiscubeprov.h:95
trckeyzsampling.h
SeisMSCProvider::prepareWork
bool prepareWork()
Opens the input data. Can still set stepouts etc.
SeisFixedCubeProvider::tkzs_
TrcKeyZSampling tkzs_
Definition: seiscubeprov.h:159
SeisMSCProvider::readstate_
ReadState readstate_
Definition: seiscubeprov.h:118
SeisFixedCubeProvider::errMsg
uiString errMsg() const
SeisMSCProvider::mODTextTranslationClass
mODTextTranslationClass(SeisMSCProvider)
SeisMSCProvider::intofloats_
bool intofloats_
Definition: seiscubeprov.h:115
SeisFixedCubeProvider
Definition: seiscubeprov.h:139
TaskRunner
Class that can execute a task.
Definition: task.h:170
SeisMSCProvider::comparePos
int comparePos(const SeisMSCProvider &) const
0 = equal; -1 means I need to next(), 1 the other
IOObj
Definition: ioobj.h:58
SeisMSCProvider::pivotidy_
int pivotidy_
Definition: seiscubeprov.h:128
SeisMSCProvider::workstarted_
bool workstarted_
Definition: seiscubeprov.h:116
MultiID
Compound key consisting of ints.
Definition: multiid.h:24
LineKey
Key for a line in a line set.
Definition: linekey.h:22
SeisFixedCubeProvider::~SeisFixedCubeProvider
~SeisFixedCubeProvider()
SeisFixedCubeProvider::trcdist_
float trcdist_
Definition: seiscubeprov.h:162
SeisMSCProvider::doAdvance
bool doAdvance()
SeisMSCProvider::errmsg_
uiString errmsg_
Definition: seiscubeprov.h:120
SeisMSCProvider::reqmask_
Array2D< bool > * reqmask_
Definition: seiscubeprov.h:114
SeisMSCProvider::readTrace
int readTrace(SeisTrc &)
uiString
String that is able to hold international (UTF-8) strings for the user interface.
Definition: uistring.h:121
MPE::errmsg_
BufferString errmsg_
Definition: horizontracker.h:118
SeisMSCProvider::tbufs_
ObjectSet< SeisTrcBuf > tbufs_
Definition: seiscubeprov.h:110
SeisMSCProvider::getPos
BinID getPos() const
SeisMSCProvider::pivotidx_
int pivotidx_
Definition: seiscubeprov.h:127
SeisMSCProvider::inlStepout
int inlStepout(bool req) const
Definition: seiscubeprov.h:80
SeisMSCProvider::reader
const SeisTrcReader & reader() const
Definition: seiscubeprov.h:105
SeisFixedCubeProvider::ioobj_
IOObj * ioobj_
Definition: seiscubeprov.h:160
SeisFixedCubeProvider::errmsg_
uiString errmsg_
Definition: seiscubeprov.h:161
RowCol
IdxPair used for its row() and col().
Definition: rowcol.h:25
SeisMSCProvider
Reads seismic data into buffers providing a Moving Virtual Subcube of seismic data.
Definition: seiscubeprov.h:56
SeisMSCProvider::AdvanceState
AdvanceState
Definition: seiscubeprov.h:87
SeisMSCProvider::estnrtrcs_
int estnrtrcs_
Definition: seiscubeprov.h:121
SeisMSCProvider::ReadState
ReadState
Definition: seiscubeprov.h:117
SeisMSCProvider::SeisMSCProvider
SeisMSCProvider(const char *fnm)
'loose' 3D Post-stack CBVS files only.
SeisMSCProvider::get
SeisTrc * get(const BinID &)
objectset.h
SeisMSCProvider::stepoutstep_
RowCol stepoutstep_
Definition: seiscubeprov.h:113
rowcol.h
SeisMSCProvider::init
void init()
Array2D
Array2D ( Subclass of ArrayND ) is a two dimensional array.
Definition: arraynd.h:140
SeisMSCProvider::setSelData
void setSelData(Seis::SelData *)
seldata becomes mine
Pos::GeomID
Index_Type GeomID
Definition: commontypes.h:87

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