OpendTect  6.3
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 ________________________________________________________________________
10 
11 -*/
12 
13 #include "seiscommon.h"
14 #include "samplingdata.h"
15 #include "seistype.h"
16 #include "survgeom.h"
17 #include "bufstring.h"
18 
19 
21 class IOObj;
22 class TrcKeyZSampling;
23 class BinIDValueSet;
24 class BufferStringSet;
25 namespace ZDomain { class Def; }
26 
30 {
31 public:
32  SeisIOObjInfo(const IOObj*);
33  SeisIOObjInfo(const IOObj&);
34  SeisIOObjInfo(const DBKey&);
35  SeisIOObjInfo(const char* ioobjnm,Seis::GeomType);
36  SeisIOObjInfo(const SeisIOObjInfo&);
37  ~SeisIOObjInfo();
38 
39  SeisIOObjInfo& operator =(const SeisIOObjInfo&);
40 
41  inline bool isOK() const { return !bad_; }
42  inline bool is2D() const { return geomtype_ > Seis::VolPS; }
43  inline bool isPS() const { return geomtype_ == Seis::VolPS
44  || geomtype_ == Seis::LinePS; }
45 
46  Seis::GeomType geomType() const { return geomtype_; }
47  const IOObj* ioObj() const { return ioobj_; }
48  bool isTime() const;
49  bool isDepth() const;
50  const ZDomain::Def& zDomainDef() const;
51 
52  mStruct(Seis) SpaceInfo
53  {
54  SpaceInfo(int ns=-1,int ntr=-1,int bps=4);
55  int expectedMBs() const;
56 
57  int expectednrsamps;
58  int expectednrtrcs;
59  int maxbytespsamp;
60  };
61 
62  bool getDefSpaceInfo(SpaceInfo&) const;
63  int expectedMBs(const SpaceInfo&) const;
64  od_int64 getFileSize() const;
65  static od_int64 getFileSize(const char* fnm,int& nrfiles);
66  bool getRanges(TrcKeyZSampling&) const;
67  bool isFullyRectAndRegular() const; // Only CBVS
68  bool getDataChar(DataCharacteristics&) const;
69  bool getBPS(int&,int icomp) const;
71  bool getPars(IOPar&) const;
72  bool getStats(IOPar&) const;
73  bool getDisplayPars( IOPar& iop ) const
74  { return getPars(iop); }
75  void saveDisplayPars(const IOPar&);
76 
77  int nrComponents(Pos::GeomID geomid=mUdfGeomID) const;
78  void getComponentNames(BufferStringSet&,
79  Pos::GeomID geomid=mUdfGeomID) const;
80 
81  mStruct(Seis) Opts2D
82  {
83  Opts2D()
84  : bvs_(0), steerpol_(2) {}
85  const BinIDValueSet* bvs_;
86  BufferString zdomky_;
87  int steerpol_;
89  };
91 
92  // 2D only
93  void getGeomIDs(TypeSet<Pos::GeomID>&) const;
95  Opts2D o2d=Opts2D() ) const
96  { getNms(b,o2d); }
97  bool getRanges(const Pos::GeomID geomid,
98  StepInterval<int>& trcrg,
99  StepInterval<float>& zrg) const;
100 
101  static void initDefault(const char* type=0);
103  static DBKey getDefault(const char* type=0);
104  static void setDefault(const DBKey&,const char* type=0);
105 
106  static bool hasData(Pos::GeomID);
107  static void getDataSetNamesForLine( Pos::GeomID geomid,
108  BufferStringSet& b,
109  Opts2D o2d=Opts2D() );
110  static void getDataSetNamesForLine( const char* nm,
111  BufferStringSet& b,
112  Opts2D o2d=Opts2D() );
113  static void getCompNames(const DBKey&,BufferStringSet&);
116  static void getLinesWithData(BufferStringSet& lnms,
117  TypeSet<Pos::GeomID>& gids);
118 
119 protected:
120 
122  bool bad_;
124 
125  void setType();
126 
127  void getNms(BufferStringSet&,const Opts2D&) const;
128  int getComponentInfo(Pos::GeomID,BufferStringSet*) const;
129 
130 };
#define mExpClass(module)
Definition: commondefs.h:157
Seismics.
Definition: segydirectdef.h:20
Definition: ioobj.h:57
Info on IOObj for seismics.
Definition: seisioobjinfo.h:29
#define mStruct(module)
Definition: commondefs.h:162
IOObj * ioobj_
Definition: seisioobjinfo.h:123
#define od_int64
Definition: plftypes.h:34
Definition: seistype.h:31
Set of BufferString objects.
Definition: bufstringset.h:25
bool isOK() const
Definition: seisioobjinfo.h:41
bool getDisplayPars(IOPar &iop) const
Definition: seisioobjinfo.h:73
Definition: seistype.h:31
Seis::GeomType geomtype_
Definition: seisioobjinfo.h:121
GeomType
Definition: seistype.h:31
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
const IOObj * ioObj() const
Definition: seisioobjinfo.h:47
byte-level data characteristics of stored data.
Definition: datachar.h:35
bool isDepth(const IOPar &)
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:32
bool isPS() const
Definition: seisioobjinfo.h:43
int64_t getFileSize(const char *fnm, bool followlink=true)
bytes
Seis::GeomType geomType() const
Definition: seisioobjinfo.h:46
bool is2D() const
Definition: seisioobjinfo.h:42
bool bad_
Definition: seisioobjinfo.h:122
void getLineNames(BufferStringSet &b, Opts2D o2d=Opts2D()) const
Definition: seisioobjinfo.h:94
Index_Type GeomID
Definition: commontypes.h:48
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
bool isTime(const IOPar &)
A Pos::IdxPairValueSet with BinIDs.
Definition: binidvalset.h:21
Full key to any object in the OpendTect data store.
Definition: dbkey.h:36
#define mUdfGeomID
Definition: survgeom.h:24
Definition of z-domain.
Definition: zdomain.h:39
Definition: zdomain.h:18

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