OpendTect  6.3
seisread.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: 27-1-98
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "seisstor.h"
14 #include "uistring.h"
15 class SeisTrc;
16 class Executor;
17 class TrcKeySampling;
18 class SeisTrcBuf;
19 class SeisPS3DReader;
20 class SeisPS2DReader;
21 namespace Seis { class Bounds; class Bounds2D; }
22 namespace PosInfo
23 {
24  class CubeData; class CubeDataIterator;
25  class Line2DData; class Line2DDataIterator;
26 }
27 
28 
45 public:
46 
47  SeisTrcReader(const IOObj* =0);
50  SeisTrcReader(const char* fnm);
52  ~SeisTrcReader();
53 
54  void forceFloatData( bool yn=true ) { forcefloats = yn; }
56  bool prepareWork(Seis::ReadMode rm=Seis::Prod);
59 
60  int get(SeisTrcInfo&);
68  bool get(SeisTrc&);
75  void fillPar(IOPar&) const;
76 
77  bool isPrepared() const { return prepared; }
78  Seis::Bounds* getBounds() const;
80  bool get3DGeometryInfo(PosInfo::CubeData&) const;
81  void setComponent( int ic ) { selcomp_ = ic; }
84 
85  // 2D only
86  int curLineIdx() const { return curlineidx; }
87  StepInterval<int> curTrcNrRange() const { return curtrcnrrg; }
88  Pos::GeomID geomID() const;
89  int getNrOffsets(int maxnrpostobechecked=10) const;
90 
91 protected:
92 
93  bool foundvalidinl, foundvalidcrl;
94  bool needskip;
96  bool prepared;
97  bool inforead;
98  int prev_inl;
105  bool entryis2d;
112  int selcomp_;
113 
114  void init();
115  Conn* openFirst();
116  bool initRead(Conn*);
117  int nextConn(SeisTrcInfo&);
118  bool doStart();
119  bool ensureCurLineAttribOK(const BufferString&);
120 
121  bool isMultiConn() const;
122  bool startWork();
123 
124  int getPS(SeisTrcInfo&);
125  bool getPS(SeisTrc&);
126 
127  int get2D(SeisTrcInfo&);
128  bool get2D(SeisTrc&);
129  bool mkNextGetter();
130  bool readNext2D();
131 
132  Seis::Bounds* get3DBounds(const StepInterval<int>&,
133  const StepInterval<int>&,
134  const StepInterval<float>&) const;
135  bool initBounds2D(const PosInfo::Line2DData&,
136  Seis::Bounds2D&) const;
137 };
int nrlinegetters_
Definition: seisread.h:100
#define mExpClass(module)
Definition: commondefs.h:157
bool forcefloats
Definition: seisread.h:95
Seismics.
Definition: segydirectdef.h:20
void setComponent(int ic)
Definition: seisread.h:81
Seis::ReadMode readmode
Definition: seisread.h:104
SeisPS2DReader * psrdr2d_
Definition: seisread.h:107
Definition: ioobj.h:57
StepInterval< int > curtrcnrrg
Definition: seisread.h:106
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
bool init()
contains domain-specific data boundary details.
Definition: seisbounds.h:29
TrcKeySampling * outer
Definition: seisread.h:101
Position info for a 2D line.
Definition: posinfo2d.h:63
Definition: seistype.h:29
reads from a 3D prestack seismic data store.
Definition: seispsread.h:58
int curLineIdx() const
Definition: seisread.h:86
Definition: seisbounds.h:72
bool isPrepared() const
Definition: seisread.h:77
PosInfo::CubeDataIterator * pscditer_
Definition: seisread.h:109
reads from a seismic data store.
Definition: seisread.h:43
bool prepared
Definition: seisread.h:96
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
Horizontal sampling (inline and crossline range and steps).
Definition: trckeysampling.h:25
int selcomp_
Definition: seisread.h:112
int curlineidx
Definition: seisread.h:99
SeisTrcBuf * tbuf_
Definition: seisread.h:102
Information for a seismic trace, AKA trace header info.
Definition: seisinfo.h:24
Iterates through CubeData.
Definition: posinfo.h:219
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:187
Iterates through Line2DData.
Definition: posinfo2d.h:131
Index_Type GeomID
Definition: commontypes.h:48
bool foundvalidinl
Definition: seisread.h:93
Definition: conn.h:31
Position info, often segmented.
Definition: posinfo.h:38
ReadMode
Definition: seistype.h:29
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
SeisPS3DReader * psrdr3d_
Definition: seisread.h:108
void forceFloatData(bool yn=true)
Only effective if called before prepareWork()
Definition: seisread.h:54
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:28
Seismic trace.
Definition: seistrc.h:31
base class for seis reader and writer.
Definition: seisstor.h:30
set of seismic traces.
Definition: seisbuf.h:28
StepInterval< int > curTrcNrRange() const
Definition: seisread.h:87
bool entryis2d
Definition: seisread.h:105
BinID curpsbid_
Definition: seisread.h:111
bool needskip
Definition: seisread.h:94
Executor * linegetter_
Definition: seisread.h:103
int prev_inl
Definition: seisread.h:98
reads from a 2D prestack seismic data store.
Definition: seispsread.h:71
Position info for an entire 3D cube. The LineData&#39;s are not sorted.
Definition: posinfo.h:96
bool inforead
Definition: seisread.h:97
PosInfo::Line2DDataIterator * pslditer_
Definition: seisread.h:110
Specification to enable chunkwise execution of a process.
Definition: executor.h:38

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