OpendTect  6.6
seisioobjinfo.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: A.H. Bril
8  Date: 25-10-1996
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "seismod.h"
15 
16 #include "datachar.h"
17 #include "datadistribution.h"
18 #include "samplingdata.h"
19 #include "seistype.h"
20 #include "survgeom.h"
21 #include "bufstring.h"
22 
23 
24 class BinIDValueSet;
25 class BufferStringSet;
26 class IOObj;
27 class SeisIOObjInfo;
28 class SeisTrcTranslator;
29 class TrcKeyZSampling;
30 namespace ZDomain { class Def; }
31 
32 
35 namespace Seis {
36 
38 {
39 public:
46 
47  ObjectSummary& operator =(const ObjectSummary&);
48 
49  inline bool isOK() const { return !bad_; }
50  inline bool is2D() const { return Seis::is2D(geomtype_); }
51  inline bool isPS() const { return Seis::isPS(geomtype_); }
52 
53  bool hasSameFormatAs(const BinDataDesc&) const;
54  inline const DataCharacteristics getDataChar() const
55  { return datachar_; }
56  inline GeomType geomType() const { return geomtype_; }
57  const StepInterval<float>& zRange() const { return zsamp_; }
58 
60  { return ioobjinfo_; }
61 
62 protected:
63 
65 
70 
71  //Cached
72  bool bad_;
73  int nrcomp_;
80 
81 private:
82 
83  void init();
86 
87  friend class RawTrcsSequence;
88  friend class RawScaledTrcsSequence;
89 
90 };
91 
92 }; // namespace Seis
93 
98 public:
99  SeisIOObjInfo(const IOObj*);
103  SeisIOObjInfo(const char* ioobjnm,Seis::GeomType);
106 
107  SeisIOObjInfo& operator =(const SeisIOObjInfo&);
108 
109  inline bool isOK() const { return !bad_; }
110  inline bool is2D() const { return geomtype_ > Seis::VolPS; }
111  inline bool isPS() const { return geomtype_ == Seis::VolPS
112  || geomtype_ == Seis::LinePS; }
113 
114  Seis::GeomType geomType() const { return geomtype_; }
115  const IOObj* ioObj() const { return ioobj_; }
116  bool isTime() const;
117  bool isDepth() const;
118  const ZDomain::Def& zDomainDef() const;
119 
120  mStruct(Seis) SpaceInfo
121  {
122  SpaceInfo(int ns=-1,int ntr=-1,int bps=4);
123  int expectedMBs() const;
124 
125  int expectednrsamps;
126  int expectednrtrcs;
127  int maxbytespsamp;
128  };
129 
130  bool getDefSpaceInfo(SpaceInfo&) const;
131  int expectedMBs(const SpaceInfo&) const;
133  static od_int64 getFileSize(const char* fnm,int& nrfiles);
135  bool isFullyRectAndRegular() const; // Only CBVS
137  bool getBPS(int&,int icomp) const;
139 
141  Survey::GM().cUndefGeomID()) const;
143  Pos::GeomID geomid=
144  Survey::GM().cUndefGeomID()) const;
145  bool getDisplayPars(IOPar&) const;
146 
147  bool haveAux(const char* ext) const;
148  bool getAux(const char* ext,const char* ftyp,IOPar&) const;
149  bool havePars() const;
150  bool getPars(IOPar&) const;
151  bool haveStats() const;
152  bool getStats(IOPar&) const;
153  bool isAvailableIn(const TrcKeySampling&) const;
154 
156  //this may take some time, use uiUserShowWait or alike
157 
158  mStruct(Seis) Opts2D
159  {
160  Opts2D()
161  : bvs_(0), steerpol_(2) {}
162  const BinIDValueSet* bvs_;
163  BufferString zdomky_;
164  int steerpol_;
166  };
168 
169  // 2D only
172  Opts2D o2d=Opts2D() ) const
173  { getNms(b,o2d); }
174  bool getRanges(const Pos::GeomID geomid,
175  StepInterval<int>& trcrg,
176  StepInterval<float>& zrg) const;
177 
178  static void initDefault(const char* type=0);
180  static const MultiID& getDefault(const char* type=0);
181  static void setDefault(const MultiID&,const char* type=0);
182 
183  static bool hasData(Pos::GeomID);
184  static void getDataSetNamesForLine( Pos::GeomID geomid,
185  BufferStringSet& b,
186  Opts2D o2d=Opts2D() );
187  static void getDataSetNamesForLine( const char* nm,
188  BufferStringSet& b,
189  Opts2D o2d=Opts2D() );
190  static void getCompNames(const MultiID&,BufferStringSet&);
194  TypeSet<Pos::GeomID>& gids);
195  static bool isCompatibleType(const char* omftypestr1,
196  const char* omftypestr2);
197 
198  void getUserInfo(uiStringSet&) const;
199 
200 
201  mDeprecatedDef SeisIOObjInfo(const char* ioobjnm);
202 protected:
203 
205  bool bad_;
207 
208  void setType();
209 
210  void getNms(BufferStringSet&,const Opts2D&) const;
212 
216 };
217 
218 
SeisIOObjInfo::SeisIOObjInfo
SeisIOObjInfo(const SeisIOObjInfo &)
ZDomain
Definition: zdomain.h:20
TrcKeySampling
Horizontal sampling (inline and crossline range and steps).
Definition: trckeysampling.h:35
Seis::ObjectSummary::nrbytespertrc_
int nrbytespertrc_
Definition: seisioobjinfo.h:79
SeisIOObjInfo::getGeomIDs
void getGeomIDs(TypeSet< Pos::GeomID > &) const
SeisIOObjInfo::getNms
void getNms(BufferStringSet &, const Opts2D &) const
Seis::ObjectSummary::nrbytespersamp_
int nrbytespersamp_
Definition: seisioobjinfo.h:75
Seis::isPS
bool isPS(GeomType gt)
Definition: seistype.h:37
SeisIOObjInfo::geomtype_
Seis::GeomType geomtype_
Definition: seisioobjinfo.h:204
datachar.h
SeisIOObjInfo::getCommonUserInfo
void getCommonUserInfo(uiStringSet &) const
SeisIOObjInfo::isTime
bool isTime() const
SeisIOObjInfo::zDomainDef
const ZDomain::Def & zDomainDef() const
ZDomain::Def
Definition of z-domain.
Definition: zdomain.h:41
SeisIOObjInfo::getFileSize
od_int64 getFileSize() const
SeisIOObjInfo::isDepth
bool isDepth() const
uiStringSet
Definition: uistringset.h:23
BinIDValueSet
A Pos::IdxPairValueSet with BinIDs.
Definition: binidvalset.h:23
SeisIOObjInfo::is2D
bool is2D() const
Definition: seisioobjinfo.h:110
BufferStringSet
Set of BufferString objects.
Definition: bufstringset.h:26
SeisIOObjInfo::geomType
Seis::GeomType geomType() const
Definition: seisioobjinfo.h:114
Seis
Summary for a Seismic object.
Definition: segydirectdef.h:22
SeisIOObjInfo::~SeisIOObjInfo
~SeisIOObjInfo()
Seis::ObjectSummary::ObjectSummary
ObjectSummary(const DBKey &)
od_int64
#define od_int64
Definition: plftypes.h:35
SeisIOObjInfo::bad_
bool bad_
Definition: seisioobjinfo.h:205
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
Seis::LinePS
@ LinePS
Definition: seistype.h:32
SeisIOObjInfo::SeisIOObjInfo
SeisIOObjInfo(const DBKey &)
samplingdata.h
SeisIOObjInfo::setType
void setType()
SeisIOObjInfo::getDefault
static const MultiID & getDefault(const char *type=0)
Seis::ObjectSummary::zRange
const StepInterval< float > & zRange() const
Definition: seisioobjinfo.h:57
SeisIOObjInfo::isPS
bool isPS() const
Definition: seisioobjinfo.h:111
SeisIOObjInfo::getDataSetNamesForLine
static void getDataSetNamesForLine(Pos::GeomID geomid, BufferStringSet &b, Opts2D o2d=Opts2D())
SeisIOObjInfo::getDataChar
bool getDataChar(DataCharacteristics &) const
Seis::ObjectSummary::init2D
void init2D(Pos::GeomID)
SeisIOObjInfo::nrComponents
int nrComponents(Pos::GeomID geomid=Survey::GM().cUndefGeomID()) const
Seis::ObjectSummary::bad_
bool bad_
Definition: seisioobjinfo.h:72
Seis::ObjectSummary::nrcomp_
int nrcomp_
Definition: seisioobjinfo.h:73
SeisIOObjInfo::getDefSpaceInfo
bool getDefSpaceInfo(SpaceInfo &) const
SeisIOObjInfo::getRanges
bool getRanges(const Pos::GeomID geomid, StepInterval< int > &trcrg, StepInterval< float > &zrg) const
SeisIOObjInfo::isAvailableIn
bool isAvailableIn(const TrcKeySampling &) const
mODTextTranslationClass
#define mODTextTranslationClass(clss)
Definition: uistring.h:40
bufstring.h
Seis::ObjectSummary::nrdatabytespespercomptrc_
int nrdatabytespespercomptrc_
Definition: seisioobjinfo.h:76
Seis::ObjectSummary::ObjectSummary
ObjectSummary(const MultiID &)
SeisIOObjInfo::getPars
bool getPars(IOPar &) const
TrcKeyZSampling
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:35
SeisIOObjInfo::getComponentInfo
int getComponentInfo(Pos::GeomID, BufferStringSet *) const
SeisIOObjInfo::getBPS
bool getBPS(int &, int icomp) const
max bytes per sample, component -1 => add all
Survey::GM
const GeometryManager & GM()
StepInterval< float >
Seis::ObjectSummary::geomtype_
GeomType geomtype_
Definition: seisioobjinfo.h:68
SeisIOObjInfo::isFullyRectAndRegular
bool isFullyRectAndRegular() const
datadistribution.h
SeisIOObjInfo::ioobj_
IOObj * ioobj_
Definition: seisioobjinfo.h:206
SeisIOObjInfo::getUserInfo
void getUserInfo(uiStringSet &) const
SeisIOObjInfo::SeisIOObjInfo
mDeprecatedDef SeisIOObjInfo(const char *ioobjnm)
Seis::ObjectSummary::ObjectSummary
ObjectSummary(const IOObj &, Pos::GeomID)
SeisIOObjInfo::getDisplayPars
bool getDisplayPars(IOPar &) const
Seis::ObjectSummary::~ObjectSummary
~ObjectSummary()
DBKey
Definition: dbkey.h:21
SeisIOObjInfo::initDefault
static void initDefault(const char *type=0)
Only does something if there is not yet a default.
mStruct
#define mStruct(module)
Definition: commondefs.h:182
Seis::ObjectSummary::getFullInformation
const SeisIOObjInfo & getFullInformation() const
Definition: seisioobjinfo.h:59
SeisIOObjInfo::hasData
static bool hasData(Pos::GeomID)
SeisIOObjInfo::SeisIOObjInfo
SeisIOObjInfo(const MultiID &)
SeisIOObjInfo::getLinesWithData
static void getLinesWithData(BufferStringSet &lnms, TypeSet< Pos::GeomID > &gids)
IOObj
Definition: ioobj.h:58
SeisIOObjInfo::SeisIOObjInfo
SeisIOObjInfo(const char *ioobjnm, Seis::GeomType)
SeisTrcTranslator
Definition: seistrctr.h:90
BinDataDesc
Description of binary data.
Definition: bindatadesc.h:43
SeisIOObjInfo::getRanges
bool getRanges(TrcKeyZSampling &) const
SeisIOObjInfo::haveAux
bool haveAux(const char *ext) const
SeisIOObjInfo::getPostStackUserInfo
void getPostStackUserInfo(uiStringSet &) const
SeisIOObjInfo::getCompNames
static void getCompNames(const MultiID &, BufferStringSet &)
Seis::ObjectSummary::nrbytestrcheader_
int nrbytestrcheader_
Definition: seisioobjinfo.h:78
Seis::ObjectSummary::geomType
GeomType geomType() const
Definition: seisioobjinfo.h:56
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
Seis::ObjectSummary::datachar_
DataCharacteristics datachar_
Definition: seisioobjinfo.h:66
SeisIOObjInfo::getStats
bool getStats(IOPar &) const
Seis::ObjectSummary::init
void init()
Seis::ObjectSummary::compnms_
BufferStringSet compnms_
Definition: seisioobjinfo.h:69
SeisIOObjInfo::SeisIOObjInfo
mODTextTranslationClass(SeisIOObjInfo) public SeisIOObjInfo(const IOObj &)
SeisIOObjInfo::getDataDistribution
RefMan< FloatDistrib > getDataDistribution() const
SeisIOObjInfo::ioObj
const IOObj * ioObj() const
Definition: seisioobjinfo.h:115
SeisIOObjInfo::getPreStackUserInfo
void getPreStackUserInfo(uiStringSet &) const
SeisIOObjInfo::isCompatibleType
static bool isCompatibleType(const char *omftypestr1, const char *omftypestr2)
Seis::ObjectSummary::hasSameFormatAs
bool hasSameFormatAs(const BinDataDesc &) const
SeisIOObjInfo::isOK
bool isOK() const
Definition: seisioobjinfo.h:109
Seis::ObjectSummary::nrdatabytespertrc_
int nrdatabytespertrc_
Definition: seisioobjinfo.h:77
seistype.h
Seis::RawScaledTrcsSequence
Buffer to a set of entire traces ( header + component data ) Can contain traces for several positions...
Definition: seisrawtrcsseq.h:34
SeisIOObjInfo::expectedMBs
int expectedMBs(const SpaceInfo &) const
SeisIOObjInfo::setDefault
static void setDefault(const MultiID &, const char *type=0)
Seis::RawTrcsSequence
Buffer to a set of entire traces ( header + component data ) Can contain traces for several positions...
Definition: seisparallelreader.h:248
SeisIOObjInfo::getLineNames
void getLineNames(BufferStringSet &b, Opts2D o2d=Opts2D()) const
Definition: seisioobjinfo.h:171
mDeprecatedDef
#define mDeprecatedDef
Definition: plfdefs.h:216
survgeom.h
SeisIOObjInfo::haveStats
bool haveStats() const
Seis::ObjectSummary::ObjectSummary
ObjectSummary(const IOObj &)
Seis::GeomType
GeomType
Definition: seistype.h:32
Seis::ObjectSummary::zsamp_
StepInterval< float > zsamp_
Definition: seisioobjinfo.h:67
SeisIOObjInfo::getFileSize
static od_int64 getFileSize(const char *fnm, int &nrfiles)
Seis::ObjectSummary::refreshCache
void refreshCache(const SeisTrcTranslator &)
Seis::ObjectSummary
Definition: seisioobjinfo.h:38
SeisIOObjInfo::havePars
bool havePars() const
Seis::ObjectSummary::ioobjinfo_
const SeisIOObjInfo & ioobjinfo_
Definition: seisioobjinfo.h:64
Seis::ObjectSummary::is2D
bool is2D() const
Definition: seisioobjinfo.h:50
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
Seis::ObjectSummary::isPS
bool isPS() const
Definition: seisioobjinfo.h:51
SeisIOObjInfo::getAux
bool getAux(const char *ext, const char *ftyp, IOPar &) const
Seis::ObjectSummary::nrsamppertrc_
int nrsamppertrc_
Definition: seisioobjinfo.h:74
Seis::is2D
bool is2D(GeomType gt)
Definition: seistype.h:33
DataCharacteristics
byte-level data characteristics of stored data.
Definition: datachar.h:37
Seis::ObjectSummary::ObjectSummary
ObjectSummary(const ObjectSummary &)
SeisIOObjInfo::getDataSetNamesForLine
static void getDataSetNamesForLine(const char *nm, BufferStringSet &b, Opts2D o2d=Opts2D())
Pos::GeomID
Index_Type GeomID
Definition: commontypes.h:87
SeisIOObjInfo::getComponentNames
void getComponentNames(BufferStringSet &, Pos::GeomID geomid=Survey::GM().cUndefGeomID()) const
Seis::ObjectSummary::getDataChar
const DataCharacteristics getDataChar() const
Definition: seisioobjinfo.h:54
TypeSet< Pos::GeomID >
SeisIOObjInfo
Info on IOObj for seismics.
Definition: seisioobjinfo.h:97
RefMan
Definition: ptrman.h:206
Seis::ObjectSummary::isOK
bool isOK() const
Definition: seisioobjinfo.h:49
Seis::VolPS
@ VolPS
Definition: seistype.h:32

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