OpendTect  6.3
seisloader.h
Go to the documentation of this file.
1 #pragma once
2 /*
3 ________________________________________________________________________
4 
5  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
6  Author: K. Tingdahl
7  Date: July 2010
8 ________________________________________________________________________
9 
10 */
11 
12 #include "seiscommon.h"
13 #include "datachar.h"
14 #include "executor.h"
15 #include "paralleltask.h"
16 #include "survgeom.h"
17 #include "trckeyzsampling.h"
18 #include "uistring.h"
19 
20 class BinDataDesc;
21 class BinIDValueSet;
22 class IOObj;
24 class Scaler;
25 
26 template <class T> class Array2D;
27 template <class T> class Array3D;
28 class GatherSetDataPack;
29 
30 namespace Seis
31 {
32 
33 class Provider;
34 class SelData;
35 
38 public:
39 
40  virtual ~Loader();
41 
42  void setDataChar(DataCharacteristics::UserType);
43 
44  void setComponents(const TypeSet<int>&);
45  bool setOutputComponents(const TypeSet<int>&);
52  void setComponentScaler(const Scaler&,int compidx);
55  void setScaler(const Scaler*);
56 
57  virtual RegularSeisDataPack* getDataPack() { return dp_; }
58 
59  virtual uiString nrDoneText() const;
60  virtual uiString message() const { return msg_; }
61 
62  od_int64 totalNr() const
63  { return tkzs_.hsamp_.totalNr(); }
64 
65 protected:
66  Loader(const IOObj&,const TrcKeyZSampling*,
67  const TypeSet<int>* components);
68 
69  void adjustDPDescToScalers(const BinDataDesc& trcdesc);
70 
74 
77  ObjectSet<Scaler> compscalers_; //Same size as components_
80 
82 };
83 
84 
90  , public ParallelTask
92 public:
98  const TypeSet<int>& components);
104  void setDataPack(RegularSeisDataPack*);
105 
106  virtual uiString nrDoneText() const;
107  virtual uiString message() const;
108 
109 protected:
110  od_int64 nrIterations() const { return totalnr_; }
111 
112 private:
113  bool doPrepare(int);
114  bool doWork(od_int64,od_int64,int);
115 
118 };
119 
120 
126  , public ParallelTask
128 public:
129  ParallelFSLoader2D(const IOObj&,
130  const TrcKeyZSampling&,
131  const TypeSet<int>* comps=0);
135  RegularSeisDataPack* getDataPack(); // The caller now owns the datapack
136 
137  virtual uiString nrDoneText() const;
138  virtual uiString message() const;
139 
140 protected:
141  od_int64 nrIterations() const { return totalnr_; }
142 
143 private :
144  bool doPrepare(int);
145  bool doWork(od_int64,od_int64,int);
146 
149 };
150 
151 
163  , public Executor
165 public:
166  SequentialFSLoader(const IOObj&,
167  const TrcKeyZSampling* =0,
168  const TypeSet<int>* components=0);
173 
174  bool setDataPack(RegularSeisDataPack&,od_ostream* strm=0);
181  od_int64 nrDone() const { return nrdone_; }
182  virtual uiString nrDoneText() const;
183  virtual uiString message() const;
184 
185 protected:
186  bool init();
187  int nextStep();
188 
192 
193  int queueid_;
194 
197 
198 };
199 
200 
201 /*
202 \brief Loads a Prestack Seismic Dataset into a GatherSetDataPack
203 */
204 
207 public:
208  SequentialPSLoader(const IOObj&,
209  const Interval<int>* linerg=0,
210  Pos::GeomID geomid=mUdfGeomID);
212 
213  GatherSetDataPack* getPSDataPack() { return gatherdp_;}
214 
215  od_int64 totalNr() const;
216  od_int64 nrDone() const { return nrdone_; }
217  virtual uiString nrDoneText() const;
218  virtual uiString message() const { return msg_; }
219 
220 protected:
221  bool init();
222  int nextStep();
223 
225 
230 
233 };
234 
235 } // namespace Seis
RefMan< GatherSetDataPack > gatherdp_
Definition: seisloader.h:224
#define mExpClass(module)
Definition: commondefs.h:157
Seismics.
Definition: segydirectdef.h:20
Seis::Provider * prov_
Definition: seisloader.h:189
const od_int64 totalnr_
Definition: seisloader.h:148
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
virtual RegularSeisDataPack * getDataPack()
Definition: seisloader.h:57
is the access point for seismic traces. Instantiate a subclass and ask for what you need...
Definition: seisprovider.h:54
virtual uiString message() const
Definition: seisloader.h:60
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
#define od_int64
Definition: plftypes.h:34
TypeSet< int > * outcomponents_
Definition: seisloader.h:78
uiString msg_
Definition: seisloader.h:232
bool init()
Interval< int > samprg_
Definition: seisloader.h:191
Pos::GeomID geomid_
Definition: seisloader.h:228
VolumeDataPack for 2D and 3D seismic data.
Definition: seisdatapack.h:42
FPDataRepType
Definition: commontypes.h:63
DataCharacteristics dc_
Definition: seisloader.h:75
bool dpclaimed_
Definition: seisloader.h:147
Definition: uistring.h:88
Seis::SelData * sd_
Definition: seisloader.h:227
Generalization of a task that can be run in parallel.
Definition: paralleltask.h:64
od_int64 nrDone() const
Definition: seisloader.h:181
od_int64 nrdone_
Definition: seisloader.h:195
void message(const char *)
default: to stderr
od_int64 totalNr() const
Definition: seisloader.h:62
FixedString Provider()
Definition: keystrs.h:103
Array2D ( Subclass of ArrayND ) is a two dimensional array.
Definition: arraynd.h:127
Definition: seisloader.h:205
byte-level data characteristics of stored data.
Definition: datachar.h:35
TypeSet< int > components_
Definition: seisloader.h:76
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:32
int queueid_
Definition: seisloader.h:193
Definition: seisloader.h:125
od_int64 nrIterations() const
Definition: seisloader.h:110
Scaling of floating point numbers.
Definition: scaler.h:30
od_int64 nrdone_
Definition: seisloader.h:231
contains input (sub-)selection data from a cube or lineset
Definition: seisselection.h:78
ObjectSet< Scaler > compscalers_
Definition: seisloader.h:77
Seis::Provider * prov_
Definition: seisloader.h:226
Index_Type GeomID
Definition: commontypes.h:48
virtual uiString message() const
Definition: seisloader.h:218
uiString msg_
Definition: seisloader.h:81
bool initialized_
Definition: seisloader.h:196
IOObj * ioobj_
Definition: seisloader.h:229
A Pos::IdxPairValueSet with BinIDs.
Definition: binidvalset.h:21
BinIDValueSet * bidvals_
Definition: seisloader.h:116
Definition: seisloader.h:162
IOObj * ioobj_
Definition: seisloader.h:72
#define mUdfGeomID
Definition: survgeom.h:24
od_int64 nrIterations() const
Definition: seisloader.h:141
Scaler * scaler_
Definition: seisloader.h:79
A DataPack containing an objectset of gathers.
Definition: prestackgather.h:154
Seis::SelData * sd_
Definition: seisloader.h:190
Description of binary data.
Definition: bindatadesc.h:41
Array3D ( Subclass of ArrayND ) is a three dimensional array.
Definition: arraynd.h:149
TrcKeyZSampling tkzs_
Definition: seisloader.h:73
od_int64 nrDone() const
Definition: seisloader.h:216
Definition: seisloader.h:36
const od_int64 totalnr_
Definition: seisloader.h:117
RefMan< RegularSeisDataPack > dp_
Definition: seisloader.h:71
Specification to enable chunkwise execution of a process.
Definition: executor.h:38
Definition: seisloader.h:89
GatherSetDataPack * getPSDataPack()
Definition: seisloader.h:213

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