OpendTect  6.6
madhdr.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: Raman K Singh
8  Date: Jul 2012
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "maddefs.h"
15 #include "iopar.h"
16 #include "typeset.h"
17 #include "seisinfo.h"
18 #include "commondefs.h"
19 
20 class od_stream;
21 
22 namespace ODMad
23 {
24 
25 mExpClass(Madagascar) RSFHeader : public IOPar
26 {
27 public:
28 
29  RSFHeader(){};
31 
32  enum Format { NativeFloat, NativeInt, AsciiFloat, AsciiInt, Other };
34 
35  bool read(const char* fnm);
36  bool read(od_istream&);
37  bool write(const char* fnm) const;
38  bool write(od_ostream&) const;
39 
40  int nrDims() const;
41 
42  int nrVals(int dim) const;
45 
46  void setNrVals(int dim,int nr);
47  void setSampling(int dim, const SamplingData<int>&);
48  void setFSampling(int dim, const SamplingData<float>&);
49 
50  const char* getDataSource() const;
51  void setDataSource(const char*);
52 
55 
56  const char* getTrcHeaderFile() const;
57  void setTrcHeaderFile(const char*);
58 
59  const char* getODVersion() const;
60  void setODVersion(const char*);
61 
62 private:
63 
64 };
65 
66 
67 mExpClass(Madagascar) TrcHdrDef : public IOPar
68 {
69 public:
71 
72  int size_;
73  bool isbinary_;
74 
75  static const char* sKeySize;
76  static const char* sKeyTrcNr;
77  static const char* sKeyOffset;
78  static const char* sKeyScalco;
79  static const char* sKeyDelRt;
80  static const char* sKeyNs;
81  static const char* sKeyDt;
82  static const char* sKeyXcdp;
83  static const char* sKeyYcdp;
84  static const char* sKeyInline;
85  static const char* sKeyCrossline;
86  static const char* sKeySP;
87  static const char* sKeySPScale;
88 
89 
90  static int StdSize();
91  static int StdIdxTrcNr();
92  static int StdIdxOffset();
93  static int StdIdxScalco();
94  static int StdIdxDelRt();
95  static int StdIdxNs();
96  static int StdIdxDt();
97  static int StdIdxXcdp();
98  static int StdIdxYcdp();
99  static int StdIdxInline();
100  static int StdIdxCrossline();
101  static int StdIdxSP();
102  static int StdIdxSPScale();
103 };
104 
105 
107 mExpClass(Madagascar) TrcHeader : public TypeSet<int>
108 {
109 public:
110  TrcHeader(bool is2d,const TrcHdrDef& def);
111 
112 
113  bool fillTrcInfo(SeisTrcInfo&) const;
114  bool useTrcInfo(const SeisTrcInfo&);
115 
116  bool read(od_istream&);
117  void write(od_ostream&) const;
118 
119 protected:
120 
121  bool is2d_;
123 
124  template <class T>
125  void getFld(int idx, T val) const
126  { if ( (*this)[idx] ) val = (T)(*this)[idx]; }
127 };
128 
129 
131 {
132 public:
133  TrcHdrStrm(bool is2d,bool read,const char* fnm,
134  TrcHdrDef& def);
135 
136  bool initRead();
137  bool initWrite() const;
138 
140  bool writeNextTrc(const TrcHeader&) const;
141 
142 protected:
143 
144  bool is2d_;
149 };
150 
151 
152 } // namespace
153 
ODMad::TrcHdrStrm::is2d_
bool is2d_
Definition: madhdr.h:144
ODMad::TrcHeader::read
bool read(od_istream &)
ODMad::TrcHdrDef::StdIdxNs
static int StdIdxNs()
ODMad::TrcHeader::useTrcInfo
bool useTrcInfo(const SeisTrcInfo &)
ODMad::RSFHeader::nrDims
int nrDims() const
ODMad::RSFHeader::setNrVals
void setNrVals(int dim, int nr)
ODMad::TrcHdrDef::StdIdxOffset
static int StdIdxOffset()
ODMad::TrcHdrDef::sKeyCrossline
static const char * sKeyCrossline
Definition: madhdr.h:85
ODMad::TrcHdrStrm
Definition: madhdr.h:131
SeisTrcInfo
Information for a seismic trace, AKA trace header info.
Definition: seisinfo.h:27
ODMad::TrcHdrDef::StdIdxInline
static int StdIdxInline()
ODMad::TrcHeader::trchdrdef_
const TrcHdrDef & trchdrdef_
Definition: madhdr.h:122
ODMad::TrcHdrDef::sKeyYcdp
static const char * sKeyYcdp
Definition: madhdr.h:83
maddefs.h
commondefs.h
ODMad::RSFHeader::read
bool read(const char *fnm)
ODMad::TrcHdrStrm::errmsg_
BufferString errmsg_
Definition: madhdr.h:148
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
od_istream
OD class for stream read common access to the std::cin.
Definition: od_istream.h:24
ODMad::TrcHeader::write
void write(od_ostream &) const
ODMad::TrcHdrDef::StdIdxTrcNr
static int StdIdxTrcNr()
ODInst::Other
@ Other
Definition: odinst.h:44
typeset.h
ODMad::TrcHeader::is2d_
bool is2d_
Definition: madhdr.h:121
ODMad::RSFHeader::getDataFormat
Format getDataFormat() const
ODMad::TrcHeader::getFld
void getFld(int idx, T val) const
Definition: madhdr.h:125
ODMad::TrcHdrDef::sKeySize
static const char * sKeySize
Definition: madhdr.h:75
ODMad::RSFHeader::setODVersion
void setODVersion(const char *)
ODMad::RSFHeader::getFSampling
SamplingData< float > getFSampling(int dim) const
ODMad::RSFHeader::RSFHeader
RSFHeader()
Definition: madhdr.h:29
ODMad::TrcHdrDef::sKeyDelRt
static const char * sKeyDelRt
Definition: madhdr.h:79
ODMad::TrcHdrDef::StdIdxDt
static int StdIdxDt()
ODMad
Definition: maddefs.h:16
ODMad::TrcHdrDef::isbinary_
bool isbinary_
Definition: madhdr.h:73
ODMad::TrcHdrDef::StdIdxSPScale
static int StdIdxSPScale()
ODMad::TrcHdrDef::size_
int size_
Definition: madhdr.h:72
ODMad::RSFHeader::~RSFHeader
~RSFHeader()
Definition: madhdr.h:30
ODMad::TrcHdrStrm::initWrite
bool initWrite() const
ODMad::TrcHdrStrm::TrcHdrStrm
TrcHdrStrm(bool is2d, bool read, const char *fnm, TrcHdrDef &def)
ODMad::RSFHeader::Format
Format
Definition: madhdr.h:32
ODMad::RSFHeader::getTrcHeaderFile
const char * getTrcHeaderFile() const
ODMad::TrcHdrDef::sKeyDt
static const char * sKeyDt
Definition: madhdr.h:81
ODMad::TrcHeader::TrcHeader
TrcHeader(bool is2d, const TrcHdrDef &def)
ODMad::TrcHdrDef::StdIdxDelRt
static int StdIdxDelRt()
ODMad::TrcHdrDef::sKeySPScale
static const char * sKeySPScale
Definition: madhdr.h:87
ODMad::TrcHdrDef::sKeyInline
static const char * sKeyInline
Definition: madhdr.h:84
ODMad::TrcHeader
describes one trace header
Definition: madhdr.h:108
SamplingData< int >
ODMad::RSFHeader::read
bool read(od_istream &)
ODMad::RSFHeader::getODVersion
const char * getODVersion() const
ODMad::TrcHdrDef::sKeyOffset
static const char * sKeyOffset
Definition: madhdr.h:77
od_stream
OD base class for stream read/write.
Definition: od_stream.h:56
ODMad::RSFHeader::write
bool write(const char *fnm) const
ODMad::TrcHdrStrm::rsfheader_
RSFHeader * rsfheader_
Definition: madhdr.h:147
ODMad::RSFHeader::setDataFormat
void setDataFormat(Format)
ODMad::RSFHeader::nrVals
int nrVals(int dim) const
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
ODMad::TrcHdrStrm::initRead
bool initRead()
ODMad::RSFHeader::setDataSource
void setDataSource(const char *)
ODMad::TrcHdrDef::StdIdxSP
static int StdIdxSP()
ODMad::TrcHdrDef::TrcHdrDef
TrcHdrDef()
ODMad::TrcHdrDef::StdSize
static int StdSize()
ODMad::TrcHdrDef::sKeyTrcNr
static const char * sKeyTrcNr
Definition: madhdr.h:76
ODMad::RSFHeader::setTrcHeaderFile
void setTrcHeaderFile(const char *)
ODMad::TrcHdrDef::StdIdxCrossline
static int StdIdxCrossline()
ODMad::TrcHdrDef::sKeySP
static const char * sKeySP
Definition: madhdr.h:86
ODMad::TrcHdrStrm::trchdrdef_
TrcHdrDef & trchdrdef_
Definition: madhdr.h:146
ODMad::RSFHeader::getDataSource
const char * getDataSource() const
ODMad::RSFHeader::setSampling
void setSampling(int dim, const SamplingData< int > &)
ODMad::TrcHdrDef
Definition: madhdr.h:68
ODMad::TrcHdrStrm::strm_
od_stream & strm_
Definition: madhdr.h:145
ODMad::TrcHeader::fillTrcInfo
bool fillTrcInfo(SeisTrcInfo &) const
ODMad::TrcHdrDef::StdIdxYcdp
static int StdIdxYcdp()
ODMad::TrcHdrDef::StdIdxScalco
static int StdIdxScalco()
seisinfo.h
iopar.h
ODMad::RSFHeader::getSampling
SamplingData< int > getSampling(int dim) const
ODMad::TrcHdrStrm::readNextTrc
TrcHeader * readNextTrc()
ODMad::TrcHdrDef::sKeyNs
static const char * sKeyNs
Definition: madhdr.h:80
ODMad::RSFHeader::mDeclareEnumUtils
mDeclareEnumUtils(Format)
ODMad::RSFHeader::setFSampling
void setFSampling(int dim, const SamplingData< float > &)
ODMad::RSFHeader
Definition: madhdr.h:26
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
ODMad::TrcHdrDef::sKeyScalco
static const char * sKeyScalco
Definition: madhdr.h:78
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
ODMad::RSFHeader::write
bool write(od_ostream &) const
ODMad::TrcHdrDef::sKeyXcdp
static const char * sKeyXcdp
Definition: madhdr.h:82
ODMad::TrcHdrStrm::writeNextTrc
bool writeNextTrc(const TrcHeader &) const
TypeSet< int >
ODMad::TrcHdrDef::StdIdxXcdp
static int StdIdxXcdp()

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