OpendTect  6.6
segydirecttr.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: Bert
8  Date: Nov 2008
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "seismod.h"
15 #include "seispsread.h"
16 #include "seispsioprov.h"
17 #include "seistrctr.h"
18 #include "uistring.h"
19 
20 namespace SEGY { class DirectDef; }
21 namespace PosInfo { class CubeData; }
23 class StreamConn;
24 
25 #define mSEGYDirectTranslNm "SEGYDirect"
26 
27 
30 namespace SEGY
31 {
32 class FileDataSet;
33 
34 
37 public:
38 
40  : tr_(0), curfilenr_(-1) {}
41  virtual ~DirectReader();
42 
43  virtual DirectDef* getDef() = 0;
44  virtual uiString errMsg() const = 0;
45  virtual SEGYSeisTrcTranslator* getTranslator() { return tr_; }
46  virtual bool goTo(const BinID&) = 0;
47 
48 protected:
49 
51  mutable int curfilenr_;
52 
53 };
54 
55 }
56 
57 
60 mExpClass(Seis) SEGYDirect3DPSReader : public ::SeisPS3DReader
61  , public SEGY::DirectReader
63 public:
64 
65  SEGYDirect3DPSReader(const char* fnm);
66  // Check errMsg() to see failure
68 
69  SeisTrc* getTrace(const BinID&,int) const;
70  bool getGather(const BinID&,SeisTrcBuf&) const;
71  uiString errMsg() const { return errmsg_; }
72 
73  const PosInfo::CubeData& posData() const;
74 
75  virtual SEGY::DirectDef* getDef() { return &def_; }
76  virtual bool goTo(const BinID&);
77 
78 protected:
79 
81  mutable uiString errmsg_;
82 
83  SeisTrc* getTrace(int,int,const BinID&) const;
84  bool goTo(int,int) const;
85 
86 };
87 
88 
92  , public SEGY::DirectReader
94 public:
95 
96  SEGYDirect2DPSReader(const char* dirnm,Pos::GeomID);
97  SEGYDirect2DPSReader(const char* dirnm,const char* lnm);
98  // Check errMsg() to see failure
100 
101  SeisTrc* getTrace(const BinID&,int) const;
102  bool getGather(const BinID&,SeisTrcBuf&) const;
103  uiString errMsg() const { return errmsg_; }
104 
105  const PosInfo::Line2DData& posData() const;
106 
107  virtual SEGY::DirectDef* getDef() { return &def_; }
108  virtual bool goTo(const BinID&);
109 
110 protected:
111 
113  mutable uiString errmsg_;
114 
115  SeisTrc* getTrace(int,int,int) const;
116  bool goTo(int,int) const;
117 };
118 
119 
120 
123  isTranslator(SEGYDirect,SeisPS3D)
124 public:
125  mDefEmptyTranslatorConstructor(SEGYDirect,SeisPS3D)
126 
127  virtual bool isUserSelectable( bool fr ) const { return fr; }
128  virtual const char* iconName() const { return "segy"; }
129  virtual const char* defExtension() const { return fileExt(); }
130  static const char* fileExt() { return "sgydef"; }
131 
132  static const char* sKeyNrInlPerFile()
133  { return "Number of inlines per file"; }
134 
135 };
136 
137 
140  isTranslator(SEGYDirect,SeisPS2D)
141 public:
142  mDefEmptyTranslatorConstructor(SEGYDirect,SeisPS2D)
143 
144  virtual bool isUserSelectable( bool fr ) const { return fr; }
145 
146 };
147 
148 
150  , public SEGY::DirectReader
152  isTranslator(SEGYDirect,SeisTrc)
153 public:
154 
155  SEGYDirectSeisTrcTranslator(const char*,const char*);
157  virtual const char* defExtension() const { return "sgydef"; }
158 
159  virtual bool readInfo(SeisTrcInfo&);
160  virtual bool read(SeisTrc&);
161  virtual bool skip(int);
162  virtual bool supportsGoTo() const { return true; }
163  virtual bool isUserSelectable( bool fr ) const { return true; }
164  virtual Conn* curConn();
165  virtual BinID curBinID() const;
166  virtual bool forRead() const { return forread_; }
167 
168  virtual void toSupported(DataCharacteristics&) const;
169  virtual bool write(const SeisTrc&); // no buffer/resort needed
170 
171  virtual void usePar(const IOPar&);
172 
173  virtual bool implRemove(const IOObj*) const;
174  virtual bool close();
175  virtual void cleanUp();
177  const MultiID&) const;
178  virtual const char* iconName() const { return "segy"; }
179 
180  virtual bool getGeometryInfo(PosInfo::CubeData&) const;
181  virtual SEGY::DirectDef* getDef() { return def_; }
182  virtual bool goTo(const BinID&);
183  virtual uiString errMsg() const { return SeisTrcTranslator::errMsg(); }
184 
186  int filenr);
187 protected:
188 
190  virtual bool initRead_();
191  virtual bool initWrite_(const SeisTrc&);
192 
195  bool headerread_; //Will be removed after 6.2
196  int ild_;
197  int iseg_;
198  int itrc_;
199  bool forread_;
203 
204  void initVars(bool for_read=true);
205  const PosInfo::CubeData& cubeData() const;
206  bool toNextTrace();
208 
209 private:
210 
212  virtual bool readData(TraceData* externalbuf);
213 
214 };
215 
216 
SEGYDirectSeisTrcTranslator::goTo
virtual bool goTo(const BinID &)
SEGYDirectSeisTrcTranslator::close
virtual bool close()
SEGYDirect3DPSReader::posData
const PosInfo::CubeData & posData() const
PosInfo::CubeData
Position info for an entire 3D cube. The LineData's are not sorted.
Definition: posinfo.h:95
SEGYDirectSeisTrcTranslator::mODTextTranslationClass
mODTextTranslationClass(SEGYDirectSeisTrcTranslator)
TraceData
A set of data buffers and their interpreters.
Definition: tracedata.h:32
SEGYDirectSeisTrcTranslator::errMsg
virtual uiString errMsg() const
Definition: segydirecttr.h:183
SEGYDirect3DPSReader::def_
SEGY::DirectDef & def_
Definition: segydirecttr.h:80
SeisTrcInfo
Information for a seismic trace, AKA trace header info.
Definition: seisinfo.h:27
SEGYDirect3DPSReader::goTo
virtual bool goTo(const BinID &)
SEGYDirectSeisTrcTranslator::iconName
virtual const char * iconName() const
Definition: segydirecttr.h:178
Conn
Data connection.
Definition: conn.h:30
uistring.h
SEGYDirect3DPSReader::errMsg
uiString errMsg() const
Definition: segydirecttr.h:71
PosInfo::Line2DData
Position info for a 2D line.
Definition: posinfo2d.h:65
SEGYDirectSeisTrcTranslator::toSupported
virtual void toSupported(DataCharacteristics &) const
SEGYDirectSeisTrcTranslator::initVars
void initVars(bool for_read=true)
SEGYDirect3DPSReader::mODTextTranslationClass
mODTextTranslationClass(SEGYDirect3DPSReader)
Seis
Summary for a Seismic object.
Definition: segydirectdef.h:22
SEGY::DirectReader::errMsg
virtual uiString errMsg() const =0
SEGYDirectSeisPS3DTranslator::isTranslator
isTranslator(SEGYDirect, SeisPS3D) public
Definition: segydirecttr.h:123
SEGYDirectSeisTrcTranslator::write
virtual bool write(const SeisTrc &)
SEGY::FileDataSet
Definition: segyfiledata.h:39
SEGYDirect2DPSReader::mODTextTranslationClass
mODTextTranslationClass(SEGYDirect2DPSReader)
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
SeisTrc
Seismic trace.
Definition: seistrc.h:34
SEGYDirect2DPSReader::getTrace
SeisTrc * getTrace(const BinID &, int) const
SEGYDirect2DPSReader::posData
const PosInfo::Line2DData & posData() const
isTranslator
#define isTranslator(spec, clss)
Definition: transl.h:244
SEGYDirect2DPSReader::SEGYDirect2DPSReader
SEGYDirect2DPSReader(const char *dirnm, const char *lnm)
SEGY::DirectReader
Definition: segydirecttr.h:36
SeisTrcTranslator::errMsg
uiString errMsg() const
Definition: seistrctr.h:186
mDefEmptyTranslatorConstructor
#define mDefEmptyTranslatorConstructor(spec, clss)
Definition: transl.h:281
seistrctr.h
SEGY::DirectReader::mODTextTranslationClass
mODTextTranslationClass(DirectReader)
SEGYDirect2DPSReader::def_
SEGY::DirectDef & def_
Definition: segydirecttr.h:112
SEGYSeisTrcTranslator
Definition: segytr.h:32
SEGYDirect3DPSReader::SEGYDirect3DPSReader
SEGYDirect3DPSReader(const char *fnm)
SEGYDirect2DPSReader::getTrace
SeisTrc * getTrace(int, int, int) const
SeisPS2DReader
reads from a 2D prestack seismic data store.
Definition: seispsread.h:69
SeisTrcBuf
set of seismic traces.
Definition: seisbuf.h:31
SEGYDirectSeisTrcTranslator::supportsGoTo
virtual bool supportsGoTo() const
Definition: segydirecttr.h:162
SEGYDirectSeisTrcTranslator::readData
virtual bool readData(TraceData *externalbuf)
SEGY::DirectReader::DirectReader
DirectReader()
Definition: segydirecttr.h:39
SEGYDirectSeisTrcTranslator::ild_
int ild_
Definition: segydirecttr.h:196
SEGYDirect2DPSReader::getDef
virtual SEGY::DirectDef * getDef()
Definition: segydirecttr.h:107
SEGY::DirectReader::getDef
virtual DirectDef * getDef()=0
SEGYDirectSeisTrcTranslator::isUserSelectable
virtual bool isUserSelectable(bool fr) const
Definition: segydirecttr.h:163
SEGY::DirectReader::goTo
virtual bool goTo(const BinID &)=0
BinID
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:31
SEGYDirectSeisTrcTranslator
Definition: segydirecttr.h:151
seispsioprov.h
SEGYDirectSeisPS2DTranslator::mODTextTranslationClass
mODTextTranslationClass(SEGYDirectSeisPS2DTranslator)
SEGYDirect2DPSReader::errMsg
uiString errMsg() const
Definition: segydirecttr.h:103
SeisPS2DTranslator
Definition: seispsioprov.h:198
SEGYDirectSeisTrcTranslator::headerread_
bool headerread_
Definition: segydirecttr.h:195
StreamConn
Connection with an underlying iostream.
Definition: streamconn.h:26
SEGYDirectSeisTrcTranslator::getDef
virtual SEGY::DirectDef * getDef()
Definition: segydirecttr.h:181
SEGYDirect3DPSReader::getTrace
SeisTrc * getTrace(int, int, const BinID &) const
SEGYDirect2DPSReader::getGather
bool getGather(const BinID &, SeisTrcBuf &) const
SEGYDirect3DPSReader::goTo
bool goTo(int, int) const
SEGYDirectSeisTrcTranslator::skip
virtual bool skip(int)
SEGYDirectSeisTrcTranslator::iseg_
int iseg_
Definition: segydirecttr.h:197
SEGYDirect2DPSReader
reads from 2D PS data store reader based on SEG-Y files
Definition: segydirecttr.h:93
SEGYDirectSeisTrcTranslator::usePar
virtual void usePar(const IOPar &)
seispsread.h
SEGYDirectSeisTrcTranslator::forRead
virtual bool forRead() const
Definition: segydirecttr.h:166
IOObjContext
Holds the context for selecting and/or creating IOObjs.
Definition: ctxtioobj.h:62
SEGYDirectSeisTrcTranslator::itrc_
int itrc_
Definition: segydirecttr.h:198
SEGYDirect2DPSReader::errmsg_
uiString errmsg_
Definition: segydirecttr.h:113
SEGYDirect3DPSReader
reads from 3D PS data store reader based on SEG-Y files
Definition: segydirecttr.h:62
SEGYDirectSeisTrcTranslator::implRemove
virtual bool implRemove(const IOObj *) const
SEGYDirectSeisTrcTranslator::readInfo
virtual bool readInfo(SeisTrcInfo &)
SEGYDirect2DPSReader::SEGYDirect2DPSReader
SEGYDirect2DPSReader(const char *dirnm, Pos::GeomID)
SEGYDirectSeisTrcTranslator::positionTranslator
bool positionTranslator()
SEGY::DirectReader::~DirectReader
virtual ~DirectReader()
IOObj
Definition: ioobj.h:58
SEGYDirectSeisPS3DTranslator
Definition: segydirecttr.h:122
SeisTrcTranslator
Definition: seistrctr.h:90
SEGYDirectSeisTrcTranslator::~SEGYDirectSeisTrcTranslator
isTranslator(SEGYDirect, SeisTrc) public ~SEGYDirectSeisTrcTranslator()
SEGYDirectSeisPS2DTranslator
Definition: segydirecttr.h:139
SEGYDirectSeisTrcTranslator::curBinID
virtual BinID curBinID() const
SEGYDirectSeisTrcTranslator::segyfilename_
BufferString segyfilename_
Definition: segydirecttr.h:201
SEGYDirectSeisTrcTranslator::read
virtual bool read(SeisTrc &)
MultiID
Compound key consisting of ints.
Definition: multiid.h:24
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
SEGYDirectSeisTrcTranslator::initWrite_
virtual bool initWrite_(const SeisTrc &)
SEGYDirect3DPSReader::errmsg_
uiString errmsg_
Definition: segydirecttr.h:81
uiString
String that is able to hold international (UTF-8) strings for the user interface.
Definition: uistring.h:121
PosInfo
Position info, often segmented.
Definition: posinfo.h:40
SEGYDirectSeisTrcTranslator::fds_
SEGY::FileDataSet * fds_
Definition: segydirecttr.h:194
SEGYDirectSeisTrcTranslator::initRead_
virtual bool initRead_()
MPE::errmsg_
BufferString errmsg_
Definition: horizontracker.h:118
SEGYDirectSeisTrcTranslator::segydeffilename_
BufferString segydeffilename_
Definition: segydirecttr.h:202
SEGYDirect2DPSReader::~SEGYDirect2DPSReader
~SEGYDirect2DPSReader()
SEGY
Keys that should be used with od_process_segyio.cc.
Definition: segybatchio.h:22
SEGY::DirectReader::getTranslator
virtual SEGYSeisTrcTranslator * getTranslator()
Definition: segydirecttr.h:45
SEGYDirect3DPSReader::getGather
bool getGather(const BinID &, SeisTrcBuf &) const
SEGYDirectSeisTrcTranslator::forread_
bool forread_
Definition: segydirecttr.h:199
SEGYDirectSeisTrcTranslator::def_
SEGY::DirectDef * def_
Definition: segydirecttr.h:193
SeisPS3DTranslator
Definition: seispsioprov.h:171
SEGYDirectSeisTrcTranslator::cleanUp
virtual void cleanUp()
Prepare for new initialisation.
SEGYDirectSeisTrcTranslator::getGeometryInfo
virtual bool getGeometryInfo(PosInfo::CubeData &) const
SEGYDirectSeisTrcTranslator::createTranslator
static SEGYSeisTrcTranslator * createTranslator(const SEGY::DirectDef &def, int filenr)
SEGYDirect3DPSReader::~SEGYDirect3DPSReader
~SEGYDirect3DPSReader()
SEGYDirect3DPSReader::getDef
virtual SEGY::DirectDef * getDef()
Definition: segydirecttr.h:75
SEGYDirectSeisTrcTranslator::toNextTrace
bool toNextTrace()
SEGY::DirectDef
Definition: segydirectdef.h:35
SEGYDirectSeisTrcTranslator::defExtension
virtual const char * defExtension() const
Definition: segydirecttr.h:157
SEGYDirectSeisTrcTranslator::curConn
virtual Conn * curConn()
SEGYDirectSeisPS3DTranslator::sKeyNrInlPerFile
static const char * sKeyNrInlPerFile()
Definition: segydirecttr.h:132
SEGYDirect2DPSReader::goTo
virtual bool goTo(const BinID &)
SEGYDirectSeisTrcTranslator::createWriteIOObj
virtual IOObj * createWriteIOObj(const IOObjContext &, const MultiID &) const
SEGY::DirectReader::curfilenr_
int curfilenr_
Definition: segydirecttr.h:51
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
SEGYDirectSeisTrcTranslator::setCompDataFromInput
void setCompDataFromInput()
SEGYDirectSeisTrcTranslator::segypars_
IOPar segypars_
Definition: segydirecttr.h:200
DataCharacteristics
byte-level data characteristics of stored data.
Definition: datachar.h:37
SEGY::DirectReader::tr_
SEGYSeisTrcTranslator * tr_
Definition: segydirecttr.h:50
Pos::GeomID
Index_Type GeomID
Definition: commontypes.h:87
SEGYDirectSeisPS3DTranslator::mODTextTranslationClass
mODTextTranslationClass(SEGYDirectSeisPS3DTranslator)
SEGYDirect2DPSReader::goTo
bool goTo(int, int) const
SEGYDirect3DPSReader::getTrace
SeisTrc * getTrace(const BinID &, int) const
SEGYDirectSeisTrcTranslator::cubeData
const PosInfo::CubeData & cubeData() const
SEGYDirectSeisTrcTranslator::commitSelections_
bool commitSelections_()

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