OpendTect-6_4  6.4
seisread.h
Go to the documentation of this file.
1 #ifndef seisread_h
2 #define seisread_h
3 
4 /*+
5 ________________________________________________________________________
6 
7  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
8  Author: A.H. Bril
9  Date: 27-1-98
10  RCS: $Id$
11 ________________________________________________________________________
12 
13 -*/
14 
15 #include "seismod.h"
16 #include "seisstor.h"
17 #include "seistype.h"
18 #include "linekey.h"
19 #include "uistring.h"
20 class Scaler;
21 class SeisTrc;
22 class Executor;
23 class TraceData;
24 class TrcKeySampling;
25 class SeisTrcBuf;
26 class SeisPS3DReader;
27 class SeisPS2DReader;
28 namespace Seis { class Bounds; class Bounds2D; }
29 namespace PosInfo
30 {
31  class CubeData; class CubeDataIterator;
32  class Line2DData; class Line2DDataIterator;
33 }
34 
35 
52 public:
53 
54  SeisTrcReader(const IOObj* =0);
57  SeisTrcReader(const char* fnm);
59  ~SeisTrcReader();
60 
61  void forceFloatData( bool yn=true ) { forcefloats = yn; }
63  bool prepareWork(Seis::ReadMode rm=Seis::Prod);
66 
67  int get(SeisTrcInfo&);
75  bool getData(TraceData&);
76 
77  bool get(SeisTrc&);
84  void fillPar(IOPar&) const;
85 
86  bool isPrepared() const { return prepared; }
87  Seis::Bounds* getBounds() const;
89  bool get3DGeometryInfo(PosInfo::CubeData&) const;
90  void setComponent( int ic ) { selcomp_ = ic; }
93 
94  // 2D only
95  int curLineIdx() const { return curlineidx; }
96  StepInterval<int> curTrcNrRange() const { return curtrcnrrg; }
97  Pos::GeomID geomID() const;
98  GeomIDProvider* geomIDProvider() const;
99  int getNrOffsets(int maxnrpostobechecked=10) const;
100 
101  const SeisTrcTranslator* seis2Dtranslator();
102 
103  const Scaler* getTraceScaler() const;
104 
105 protected:
106 
107  bool foundvalidinl, foundvalidcrl;
108  bool new_packet, needskip;
110  bool prepared;
111  bool inforead;
112  int prev_inl;
119  bool entryis2d;
126  int selcomp_;
127 
128  void init();
129  Conn* openFirst();
130  bool initRead(Conn*);
131  int nextConn(SeisTrcInfo&);
132  bool doStart();
133  bool ensureCurLineAttribOK(const BufferString&);
134 
135  bool isMultiConn() const;
136  bool startWork();
137 
138  int getPS(SeisTrcInfo&);
139  bool getPS(SeisTrc&);
140 
141  int get2D(SeisTrcInfo&);
142  bool get2D(SeisTrc&);
143  bool get2DData(TraceData&);
144  bool mkNextFetcher();
145  bool readNext2D();
146 
147  Seis::Bounds* get3DBounds(const StepInterval<int>&,
148  const StepInterval<int>&,
149  const StepInterval<float>&) const;
150  bool initBounds2D(const PosInfo::Line2DData&,
151  Seis::Bounds2D&) const;
152 };
153 
154 
155 #endif
#define mExpClass(module)
Definition: commondefs.h:160
bool forcefloats
Definition: seisread.h:109
Summary for a Seismic object.
Definition: segydirectdef.h:23
void setComponent(int ic)
Definition: seisread.h:90
Seis::ReadMode readmode
Definition: seisread.h:118
SeisPS2DReader * psrdr2d_
Definition: seisread.h:121
Definition: ioobj.h:58
StepInterval< int > curtrcnrrg
Definition: seisread.h:120
#define mODTextTranslationClass(clss)
Definition: uistring.h:38
bool init()
contains domain-specific data boundary details.
Definition: seisbounds.h:31
TrcKeySampling * outer
Definition: seisread.h:115
bool new_packet
Definition: seisread.h:108
Position info for a 2D line.
Definition: posinfo2d.h:65
Definition: seistype.h:31
reads from a 3D prestack seismic data store.
Definition: seispsread.h:56
int curLineIdx() const
Definition: seisread.h:95
Definition: seisbounds.h:74
Class providing a current line key.
Definition: linekey.h:53
bool isPrepared() const
Definition: seisread.h:86
PosInfo::CubeDataIterator * pscditer_
Definition: seisread.h:123
reads from a seismic data store.
Definition: seisread.h:50
bool prepared
Definition: seisread.h:110
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:47
Definition: seistrctr.h:90
Horizontal sampling (inline and crossline range and steps).
Definition: trckeysampling.h:27
int selcomp_
Definition: seisread.h:126
int curlineidx
Definition: seisread.h:113
int nrfetchers
Definition: seisread.h:114
SeisTrcBuf * tbuf_
Definition: seisread.h:116
Executor * fetcher
Definition: seisread.h:117
Information for a seismic trace, AKA trace header info.
Definition: seisinfo.h:27
Iterates through CubeData.
Definition: posinfo.h:221
Scaling of floating point numbers.
Definition: scaler.h:33
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:175
Iterates through Line2DData.
Definition: posinfo2d.h:137
Index_Type GeomID
Definition: commontypes.h:52
bool foundvalidinl
Definition: seisread.h:107
Data connection.
Definition: conn.h:30
Position info, often segmented.
Definition: posinfo.h:40
ReadMode
Definition: seistype.h:31
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:40
SeisPS3DReader * psrdr3d_
Definition: seisread.h:122
void forceFloatData(bool yn=true)
Only effective if called before prepareWork()
Definition: seisread.h:61
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:30
Seismic trace.
Definition: seistrc.h:34
base class for seis reader and writer.
Definition: seisstor.h:33
set of seismic traces.
Definition: seisbuf.h:31
StepInterval< int > curTrcNrRange() const
Definition: seisread.h:96
bool entryis2d
Definition: seisread.h:119
BinID curpsbid_
Definition: seisread.h:125
A set of data buffers and their interpreters.
Definition: tracedata.h:32
int prev_inl
Definition: seisread.h:112
reads from a 2D prestack seismic data store.
Definition: seispsread.h:69
Position info for an entire 3D cube. The LineData&#39;s are not sorted.
Definition: posinfo.h:95
bool inforead
Definition: seisread.h:111
PosInfo::Line2DDataIterator * pslditer_
Definition: seisread.h:124
Specification to enable chunkwise execution of a process.
Definition: executor.h:39

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