OpendTect  6.3
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 ________________________________________________________________________
10 
11 -*/
12 
13 #include "segyfiledata.h"
14 #include "bufstringset.h"
15 #include "executor.h"
16 #include "od_iosfwd.h"
17 #include "uistring.h"
18 
19 class IOObj;
20 namespace Seis { class PosIndexer; }
21 namespace PosInfo { class CubeData; class Line2DData; }
22 
23 
24 namespace SEGY {
25 
26 class FileSpec;
27 class Scanner;
28 class FileDataSet;
29 class PosKeyList;
30 
31 
33 { mODTextTranslationClass(DirectDef);
34 public:
35 
36  DirectDef();
37  DirectDef(const char*);
38  ~DirectDef();
39  bool isEmpty() const;
40 
41  //Functions to read/query
42  bool readFromFile(const char*);
43  const IOPar* segyPars() const;
44  FixedString fileName(int idx) const;
45  FileDataSet::TrcIdx find(const Seis::PosKey&,bool chkoffs) const;
46  FileDataSet::TrcIdx findOcc(const Seis::PosKey&,int occ) const;
48 
49  //Functions to write
50  void setData(FileDataSet&);
51  bool writeHeadersToFile(const char*);
54  od_ostream* getOutputStream() { return outstream_; }
55  bool writeFootersToFile();
59  const FileDataSet& fileDataSet() const { return *fds_; }
60  uiString errMsg() const { return errmsg_; }
61 
62  static const char* sKeyDirectDef();
63  static const char* sKeyFileType();
64  static const char* sKeyNrFiles();
65  static const char* sKeyIOCompr();
66  static const char* sKeyInt64DataChar();
67  static const char* sKeyInt32DataChar();
68  static const char* sKeyFloatDataChar();
69 
70  static const char* get2DFileName(const char*,const char*);
71  static const char* get2DFileName(const char*,Pos::GeomID);
72 
73  static bool readFooter(const char* fnm,IOPar&,od_stream_Pos&);
75  static bool updateFooter(const char*,const IOPar&,od_stream_Pos);
78  const PosInfo::CubeData& cubeData() const { return cubedata_; }
79  const PosInfo::Line2DData& lineData() const { return linedata_; }
80 
81 
82 protected:
83  void getPosData(PosInfo::CubeData&) const;
84  void getPosData(PosInfo::Line2DData&) const;
85 
88 
89  const FileDataSet* fds_;
91  SEGY::PosKeyList* keylist_;
93 
94  mutable uiString errmsg_;
95 
102 };
103 
104 
108 public:
109  FileIndexer(const DBKey& mid,bool isvol,
110  const FileSpec&,bool is2d,const IOPar&);
111  ~FileIndexer();
112 
113  int nextStep();
114 
115  uiString message() const;
116  od_int64 nrDone() const;
117  od_int64 totalNr() const;
118  uiString nrDoneText() const;
119 
120  const Scanner* scanner() const { return scanner_; }
121 
122 protected:
123 
124  bool writeStats() const;
127 
129  mutable uiString msg_;
131  bool is2d_;
132  bool isvol_;
133 
134 };
135 
136 
137 }; //Namespace
#define mExpClass(module)
Definition: commondefs.h:157
Seismics.
Definition: segydirectdef.h:20
Definition: segyfiledata.h:40
od_stream_Pos cubedatastart_
Definition: segydirectdef.h:100
OD class for stream write common access to the user log file, or std::cout in batch progs...
Definition: od_ostream.h:25
Definition: ioobj.h:57
Definition: seisposindexer.h:26
IOObj * ioobj_
Definition: segydirectdef.h:125
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
const Scanner * scanner() const
Definition: segydirectdef.h:120
Definition: segydirectdef.h:32
od_stream_Pos datastart_
Definition: segydirectdef.h:98
FileDataSet * myfds_
Definition: segydirectdef.h:90
OD::String that holds an existing text string.
Definition: fixedstring.h:27
#define od_int64
Definition: plftypes.h:34
od_int64 od_stream_Pos
Definition: od_iosfwd.h:19
Definition: segydirectdef.h:106
od_stream_Pos indexstart_
Definition: segydirectdef.h:101
builds an index of a list of positions, making it easy to find a specific position.
Definition: seisposindexer.h:45
od_stream_Pos textparstart_
Definition: segydirectdef.h:99
Position info for a 2D line.
Definition: posinfo2d.h:63
Definition: uistring.h:88
const PosInfo::CubeData & cubeData() const
Definition: segydirectdef.h:78
DirectDef * directdef_
Definition: segydirectdef.h:130
Definition: segyfiledata.h:36
Definition: seisposkey.h:20
od_stream_Pos offsetstart_
Definition: segydirectdef.h:97
void message(const char *)
default: to stderr
const FileDataSet & fileDataSet() const
Definition: segydirectdef.h:59
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
bool is2d_
Definition: segydirectdef.h:131
od_ostream * getOutputStream()
Definition: segydirectdef.h:54
bool isEmpty(const SelData *sd)
Definition: seisselection.h:132
Scans SEG-Y file(s). For reports, you'd want to set rich info.
Definition: segyscanner.h:30
PosInfo::CubeData & cubedata_
Definition: segydirectdef.h:86
od_ostream * outstream_
Definition: segydirectdef.h:96
SEGY::PosKeyList * keylist_
Definition: segydirectdef.h:91
uiString errmsg_
Definition: segydirectdef.h:94
Seis::PosIndexer * indexer_
Definition: segydirectdef.h:92
const T * find(const ObjectSet< T > &os, const S &val)
Get const object in set.
Definition: objectset.h:187
Index_Type GeomID
Definition: commontypes.h:48
Position info, often segmented.
Definition: posinfo.h:38
BufferString errmsg_
Definition: horizontracker.h:117
uiString errMsg() const
Definition: segydirectdef.h:60
Keys that should be used with od_process_segyio.cc.
Definition: segybatchio.h:18
const PosInfo::Line2DData & lineData() const
Definition: segydirectdef.h:79
Full key to any object in the OpendTect data store.
Definition: dbkey.h:36
PosInfo::Line2DData & linedata_
Definition: segydirectdef.h:87
const FileDataSet * fds_
Definition: segydirectdef.h:89
Scanner * scanner_
Definition: segydirectdef.h:128
Position info for an entire 3D cube. The LineData&#39;s are not sorted.
Definition: posinfo.h:96
Definition: segyfiledef.h:30
Pos::GeomID geomid_
Definition: segydirectdef.h:126
Specification to enable chunkwise execution of a process.
Definition: executor.h:38
bool isvol_
Definition: segydirectdef.h:132
uiString msg_
Definition: segydirectdef.h:129

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