OpendTect-6_4  6.4
seisblocksreader.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: Apr 2017
9 ________________________________________________________________________
10 
11 */
12 
13 #include "seisblocks.h"
14 #include "ranges.h"
15 #include "threadlock.h"
16 #include "typeset.h"
17 #include "uistring.h"
18 
19 class od_istream;
20 class SeisTrc;
21 class SeisTrcInfo;
22 namespace PosInfo { class CubeData; class CubeDataPos; }
23 
24 
25 namespace Seis
26 {
27 
28 class SelData;
29 
30 namespace Blocks
31 {
32 
33 class FileColumn;
34 class OffsetTable;
35 
40 public:
41 
43 
44  Reader(const char* fnm);
45  Reader(od_istream&);
46  ~Reader();
47 
48  const uiRetVal& state() const { return state_; }
49 
50  BufferString surveyName() const { return survname_; }
51  const CubeData& positions() const { return cubedata_; }
52  inline int nrComponents() const
53  { return componentNames().size(); }
54  BoolTypeSet& compSelected() { return compsel_; }
55  bool depthInFeet() const { return depthinfeet_; }
56 
57  void setSelData(const SelData*);
58 
59  bool goTo(const BinID&) const;
60  uiRetVal skip(int) const;
61  uiRetVal getTrcInfo(SeisTrcInfo&) const;
62  uiRetVal getNext(SeisTrc&) const;
63  uiRetVal get(const BinID&,SeisTrc&) const;
64 
65  void close();
66 
67 protected:
68 
70 
71  mutable od_istream* strm_;
72  bool strmmine_;
76  OffsetTable& offstbl_;
77  CubeData& cubedata_;
78  CubeDataPos& curcdpos_;
81 
86  mutable bool lastopwasgetinfo_;
87 
88  void closeStream() const;
89  bool reset(uiRetVal&) const;
90  bool isSelected(const CubeDataPos&) const;
91  bool advancePos(CubeDataPos&) const;
92  bool doGoTo(const BinID&,uiRetVal&) const;
93  void doGet(SeisTrc&,uiRetVal&) const;
94  void fillInfo(const BinID&,SeisTrcInfo&) const;
95  FileColumn* getColumn(const HGlobIdx&,uiRetVal&) const;
96  void readTrace(SeisTrc&,uiRetVal&) const;
97 
98  friend class FileColumn;
99 
100 private:
101 
102  void initFromFileName(const char*);
103  void readInfoFile(od_istream&);
104  bool getGeneralSectionData(const IOPar&);
105  bool getOffsetSectionData(const IOPar&);
106 
107 };
108 
109 
110 } // namespace Blocks
111 
112 } // namespace Seis
#define mExpClass(module)
Definition: commondefs.h:160
const CubeData & positions() const
Definition: seisblocksreader.h:51
Summary for a Seismic object.
Definition: segydirectdef.h:23
const Interval< float > zrgintrace_
Definition: seisblocksreader.h:84
#define mODTextTranslationClass(clss)
Definition: uistring.h:38
LinScaler * scaler_
Definition: seisblocksreader.h:74
bool strmmine_
Definition: seisblocksreader.h:72
OffsetTable & offstbl_
Definition: seisblocksreader.h:76
int nrComponents() const
Definition: seisblocksreader.h:52
OD class for stream read.
Definition: od_istream.h:24
bool depthInFeet() const
Definition: seisblocksreader.h:55
Reads data from Blocks Storage. For comments see master branch.
Definition: seisblocksreader.h:38
od_istream * strm_
Definition: seisblocksreader.h:71
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:47
bool lastopwasgetinfo_
Definition: seisblocksreader.h:86
BoolTypeSet & compSelected()
Definition: seisblocksreader.h:54
Position in a CubeData.
Definition: posinfo.h:73
PosInfo::CubeDataPos CubeDataPos
Definition: seisblocksreader.h:69
const int nrcomponentsintrace_
Definition: seisblocksreader.h:85
Information for a seismic trace, AKA trace header info.
Definition: seisinfo.h:27
SelData * seldata_
Definition: seisblocksreader.h:73
contains input (sub-)selection data from a cube or lineset
Definition: seisselection.h:82
DataInterp * interp_
Definition: seisblocksreader.h:75
Base class for Reader and Writer. For comments see master branch.
Definition: seisblocks.h:178
Position info, often segmented.
Definition: posinfo.h:40
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:40
PosInfo::CubeData CubeData
Definition: seisblocksreader.h:42
Definition: seisblocks.h:80
BoolTypeSet compsel_
Definition: seisblocksreader.h:82
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:30
Seismic trace.
Definition: seistrc.h:34
Definition: uistring.h:243
BufferString surveyName() const
Definition: seisblocksreader.h:50
const uiRetVal & state() const
Definition: seisblocksreader.h:48
BufferString survname_
Definition: seisblocksreader.h:79
bool depthinfeet_
Definition: seisblocksreader.h:80
Position info for an entire 3D cube. The LineData&#39;s are not sorted.
Definition: posinfo.h:95
Linear scaling.
Definition: scaler.h:55
CubeData & cubedata_
Definition: seisblocksreader.h:77
uiRetVal state_
Definition: seisblocksreader.h:83
CubeDataPos & curcdpos_
Definition: seisblocksreader.h:78

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