OpendTect  6.6
segydirectdef.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: Jul 2008
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "seismod.h"
15 #include "segyfiledata.h"
16 #include "bufstringset.h"
17 #include "executor.h"
18 #include "od_iosfwd.h"
19 #include "uistring.h"
20 
21 class IOObj;
22 namespace Seis { class PosIndexer; }
23 namespace PosInfo { class CubeData; class Line2DData; }
24 
25 
26 namespace SEGY {
27 
28 class FileSpec;
29 class Scanner;
30 class FileDataSet;
31 class PosKeyList;
32 
33 
36 public:
37 
39  DirectDef(const char*);
41  bool isEmpty() const;
42 
43  //Functions to read/query
44  bool readFromFile(const char*);
45  const IOPar* segyPars() const;
46  FixedString fileName(int idx) const;
47  FileDataSet::TrcIdx find(const Seis::PosKey&,bool chkoffs) const;
48  FileDataSet::TrcIdx findOcc(const Seis::PosKey&,int occ) const;
50 
51  //Functions to write
53  bool writeHeadersToFile(const char*);
56  od_ostream* getOutputStream() { return outstream_; }
61  const FileDataSet& fileDataSet() const { return *fds_; }
62  uiString errMsg() const { return errmsg_; }
63 
64  static const char* sKeyDirectDef();
65  static const char* sKeyFileType();
66  static const char* sKeyNrFiles();
67  static const char* sKeyIOCompr();
68  static const char* sKeyInt64DataChar();
69  static const char* sKeyInt32DataChar();
70  static const char* sKeyFloatDataChar();
71 
72  static const char* get2DFileName(const char*,const char*);
73  static const char* get2DFileName(const char*,Pos::GeomID);
74 
75  static bool readFooter(const char* fnm,IOPar&,od_stream_Pos&);
77  static bool updateFooter(const char*,const IOPar&,od_stream_Pos);
80  const PosInfo::CubeData& cubeData() const { return cubedata_; }
81  const PosInfo::Line2DData& lineData() const { return linedata_; }
82 
83 
84 protected:
87 
90 
91  const FileDataSet* fds_;
93  SEGY::PosKeyList* keylist_;
95 
96  mutable uiString errmsg_;
97 
104 };
105 
106 
110 public:
111  FileIndexer(const MultiID& mid,bool isvol,
112  const FileSpec&,bool is2d,const IOPar&);
114 
115  int nextStep();
116 
118  od_int64 nrDone() const;
119  od_int64 totalNr() const;
121 
122  const Scanner* scanner() const { return scanner_; }
123  Scanner* scanner() { return scanner_; }
124 
125 protected:
126 
129 
131  mutable uiString msg_;
133  bool is2d_;
134  bool isvol_;
135 
136 };
137 
138 
139 }; //Namespace
140 
PosInfo::CubeData
Position info for an entire 3D cube. The LineData's are not sorted.
Definition: posinfo.h:95
SEGY::DirectDef::mODTextTranslationClass
mODTextTranslationClass(DirectDef)
SEGY::FileIndexer::uiMessage
uiString uiMessage() const
will be message() again in 7.x
SEGY::DirectDef::get2DFileName
static const char * get2DFileName(const char *, const char *)
SEGY::DirectDef::~DirectDef
~DirectDef()
Seis::PosIndexer
builds an index of a list of positions, making it easy to find a specific position.
Definition: seisposindexer.h:48
uistring.h
SEGY::DirectDef::cubedatastart_
od_stream_Pos cubedatastart_
Definition: segydirectdef.h:101
FileSpec
Specification for one or more files.
Definition: filespec.h:28
PosInfo::Line2DData
Position info for a 2D line.
Definition: posinfo2d.h:65
SEGY::FileIndexer::scanner
Scanner * scanner()
Definition: segydirectdef.h:123
Seis
Summary for a Seismic object.
Definition: segydirectdef.h:22
od_int64
#define od_int64
Definition: plftypes.h:35
SEGY::DirectDef::isEmpty
bool isEmpty() const
SEGY::DirectDef::datastart_
od_stream_Pos datastart_
Definition: segydirectdef.h:100
SEGY::FileDataSet
Definition: segyfiledata.h:39
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
SEGY::DirectDef::findOcc
FileDataSet::TrcIdx findOcc(const Seis::PosKey &, int occ) const
will not look at offset
SEGY::FileIndexer::~FileIndexer
~FileIndexer()
SEGY::DirectDef::offsetstart_
od_stream_Pos offsetstart_
Definition: segydirectdef.h:99
SEGY::DirectDef::readFromFile
bool readFromFile(const char *)
SEGY::DirectDef::updateFooter
static bool updateFooter(const char *, const IOPar &, od_stream_Pos)
SEGY::FileDataSet::TrcIdx
Definition: segyfiledata.h:43
SEGY::FileIndexer::scanner
const Scanner * scanner() const
Definition: segydirectdef.h:122
SEGY::DirectDef::indexstart_
od_stream_Pos indexstart_
Definition: segydirectdef.h:102
SEGY::FileIndexer::msg_
uiString msg_
Definition: segydirectdef.h:131
SEGY::DirectDef::sKeyNrFiles
static const char * sKeyNrFiles()
od_stream_Pos
od_int64 od_stream_Pos
Definition: od_iosfwd.h:20
SEGY::DirectDef::getPosData
void getPosData(PosInfo::Line2DData &) const
SEGY::DirectDef::cubedata_
PosInfo::CubeData & cubedata_
Definition: segydirectdef.h:88
SEGY::FileIndexer::scanner_
Scanner * scanner_
Definition: segydirectdef.h:130
SEGY::DirectDef::fileDataSet
const FileDataSet & fileDataSet() const
Definition: segydirectdef.h:61
SEGY::DirectDef::sKeyInt64DataChar
static const char * sKeyInt64DataChar()
SEGY::FileIndexer::uiNrDoneText
uiString uiNrDoneText() const
will be nrDoneText() in 7.x
SEGY::DirectDef::writeHeadersToFile
bool writeHeadersToFile(const char *)
SEGY::DirectDef::getOutputStream
od_ostream * getOutputStream()
Definition: segydirectdef.h:56
SEGY::DirectDef::get2DFileName
static const char * get2DFileName(const char *, Pos::GeomID)
SEGY::Scanner
Scans SEG-Y file(s). For reports, you'd want to set rich info.
Definition: segyscanner.h:33
SEGY::DirectDef::errmsg_
uiString errmsg_
Definition: segydirectdef.h:96
Executor
Specification to enable chunkwise execution of a process.
Definition: executor.h:39
SEGY::DirectDef::indexer_
Seis::PosIndexer * indexer_
Definition: segydirectdef.h:94
SEGY::DirectDef::sKeyInt32DataChar
static const char * sKeyInt32DataChar()
SEGY::FileIndexer
Definition: segydirectdef.h:109
IOObj
Definition: ioobj.h:58
FixedString
OD::String that holds an existing text string.
Definition: fixedstring.h:29
executor.h
SEGY::DirectDef::sKeyFloatDataChar
static const char * sKeyFloatDataChar()
SEGY::FileIndexer::ioobj_
IOObj * ioobj_
Definition: segydirectdef.h:127
SEGY::DirectDef::DirectDef
DirectDef(const char *)
Read from file.
SEGY::FileIndexer::geomid_
Pos::GeomID geomid_
Definition: segydirectdef.h:128
MultiID
Compound key consisting of ints.
Definition: multiid.h:24
SEGY::DirectDef::sKeyDirectDef
static const char * sKeyDirectDef()
SEGY::FileIndexer::isvol_
bool isvol_
Definition: segydirectdef.h:134
SEGY::DirectDef::fileName
FixedString fileName(int idx) const
SEGY::FileIndexer::nrDone
od_int64 nrDone() const
SEGY::DirectDef::outstream_
od_ostream * outstream_
Definition: segydirectdef.h:98
bufstringset.h
SEGY::DirectDef::keylist_
SEGY::PosKeyList * keylist_
Definition: segydirectdef.h:93
SEGY::DirectDef::setData
void setData(FileDataSet &)
SEGY::DirectDef::errMsg
uiString errMsg() const
Definition: segydirectdef.h:62
SEGY::FileIndexer::mODTextTranslationClass
mODTextTranslationClass(FileIndexer)
SEGY::FileSpec
Definition: segyfiledef.h:37
SEGY::FileIndexer::totalNr
od_int64 totalNr() const
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
od_iosfwd.h
MPE::errmsg_
BufferString errmsg_
Definition: horizontracker.h:118
SEGY::DirectDef::sKeyFileType
static const char * sKeyFileType()
SEGY::DirectDef::segyPars
const IOPar * segyPars() const
SEGY::DirectDef::cubeData
const PosInfo::CubeData & cubeData() const
Definition: segydirectdef.h:80
SEGY
Keys that should be used with od_process_segyio.cc.
Definition: segybatchio.h:22
Seis::PosKey
Definition: seisposkey.h:23
SEGY::FileIndexer::directdef_
DirectDef * directdef_
Definition: segydirectdef.h:132
SEGY::DirectDef::getPosData
void getPosData(PosInfo::CubeData &) const
SEGY::DirectDef::linedata_
PosInfo::Line2DData & linedata_
Definition: segydirectdef.h:89
SEGY::DirectDef::lineData
const PosInfo::Line2DData & lineData() const
Definition: segydirectdef.h:81
SEGY::DirectDef::DirectDef
DirectDef()
Create empty.
SEGY::DirectDef
Definition: segydirectdef.h:35
segyfiledata.h
od_ostream
OD class for stream write common access to the user log file, or std::cout in other than od_main.
Definition: od_ostream.h:26
SEGY::DirectDef::readFooter
static bool readFooter(const char *fnm, IOPar &, od_stream_Pos &)
SEGY::FileIndexer::FileIndexer
FileIndexer(const MultiID &mid, bool isvol, const FileSpec &, bool is2d, const IOPar &)
SEGY::DirectDef::fds_
const FileDataSet * fds_
Definition: segydirectdef.h:91
SEGY::FileIndexer::is2d_
bool is2d_
Definition: segydirectdef.h:133
SEGY::DirectDef::writeFootersToFile
bool writeFootersToFile()
SEGY::DirectDef::finalparstart_
od_stream_Pos finalparstart_
Definition: segydirectdef.h:103
SEGY::FileIndexer::nextStep
int nextStep()
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
Pos::GeomID
Index_Type GeomID
Definition: commontypes.h:87
SEGY::DirectDef::sKeyIOCompr
static const char * sKeyIOCompr()
SEGY::DirectDef::find
FileDataSet::TrcIdx find(const Seis::PosKey &, bool chkoffs) const
SEGY::DirectDef::myfds_
FileDataSet * myfds_
Definition: segydirectdef.h:92

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