OpendTect-6_4  6.4
volprocstatscomputer.h
Go to the documentation of this file.
1 #ifndef volprocstatscomputer_h
2 #define volprocstatscomputer_h
3 
4 /*+
5 ________________________________________________________________________
6 
7  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
8  Author: Helene Huck
9  Date: September 2015
10  RCS: $Id$
11 ________________________________________________________________________
12 
13 
14 -*/
15 
16 
17 #include "volumeprocessingmod.h"
18 #include "volprocstep.h"
19 #include "trckeyzsampling.h"
20 #include "paralleltask.h"
21 
22 template<class T> class Array3D;
23 
24 namespace VolProc
25 {
26 
31 mExpClass(VolumeProcessing) StatsCalculator : public Step
33 public:
36  "Volume Statistics",
37  tr("Volume Statistics") )
38 
40 
41  static const char* sZSampMargin() { return "Z samples margin"; }
42 
43  bool needsInput() const { return true; }
44  void setStepout( BinID bid ) { stepout_ = bid; }
45  void setZMargin( int nsamp ) { nzsampextra_ = nsamp;}
47  { statstype_ = str; }
48 
49  void fillPar(IOPar&) const;
50  bool usePar(const IOPar&);
51 
52  TrcKeySampling getInputHRg(const TrcKeySampling&) const;
53 // StepInterval<int> getInputZRg(const StepInterval<int>&) const;
54 
55  Task* createTask();
56  virtual bool needsFullVolume() const { return false; }
57 
58  /* mDeprecated (this function will be protected virtual after 6.0) */
59  od_int64 extraMemoryUsage(OutputSlotID,const TrcKeySampling&,
60  const StepInterval<int>&) const;
61 
62 protected:
63 
65  int nzsampextra_; //extra on both sides
67 };
68 
69 
70 mClass(VolumeProcessing) StatsCalculatorTask : public ParallelTask
72 public:
74  const TrcKeyZSampling& tkzsin,
75  const TrcKeyZSampling& tkzsout,
76  BinID,int,BufferString,
77  Array3D<float>& out);
78 
79  static const char* sKeyEllipse() { return "Ellipse"; }
80  //for now
81 
82  od_int64 totalNr() const { return totalnr_; }
83  uiString uiMessage() const;
84 
85 protected:
86  bool doWork(od_int64,od_int64,int);
87  void prepareWork();
88 
89  od_int64 nrIterations() const { return totalnr_; }
90 
92 
95 
97  int nzsampextra_; //extra on both sides
100 
102 
105 
107 };
108 
109 } // namespace VolProc
110 
111 #endif
#define mExpClass(module)
Definition: commondefs.h:160
int nzsampextra_
Definition: volprocstatscomputer.h:97
Definition: volprocstatscomputer.h:70
od_int64 totalNr() const
Definition: volprocstatscomputer.h:82
Array3D< float > & output_
Definition: volprocstatscomputer.h:94
TrcKeyZSampling tkzsout_
Definition: volprocstatscomputer.h:104
A lock of a type that (hopefully) suits your needs. To use it, you need the Locker class...
Definition: threadlock.h:53
const Array3D< float > & input_
Definition: volprocstatscomputer.h:93
#define mODTextTranslationClass(clss)
Definition: uistring.h:38
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:188
#define od_int64
Definition: plftypes.h:36
Threads::Lock datalock_
Definition: volprocstatscomputer.h:106
static const char * sZSampMargin()
Definition: volprocstatscomputer.h:41
#define mDefaultFactoryInstantiation(baseclss, clss, keywrd, usernm)
Definition: factory.h:289
virtual bool needsFullVolume() const
Definition: volprocstatscomputer.h:56
Definition: uistring.h:89
void setStepout(BinID bid)
Definition: volprocstatscomputer.h:44
BinID stepout_
Definition: volprocstatscomputer.h:96
od_int64 totalnr_
Definition: volprocstatscomputer.h:91
Generalization of a task that can be run in parallel.
Definition: paralleltask.h:66
od_int64 nrIterations() const
Definition: volprocstatscomputer.h:89
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:47
Horizontal sampling (inline and crossline range and steps).
Definition: trckeysampling.h:27
Adapter for a VolProc chain to external attribute calculation.
Definition: seisdatapackwriter.h:25
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:35
int OutputSlotID
Definition: volprocstep.h:47
int nzsampextra_
Definition: volprocstatscomputer.h:65
BufferString statstype_
Definition: volprocstatscomputer.h:98
bool needsInput() const
Definition: volprocstatscomputer.h:43
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:175
BinID stepout_
Definition: volprocstatscomputer.h:64
An algorithm/calculation/transformation that takes one scalar volume as input, processes it...
Definition: volprocstep.h:42
Processor for Volume Statistics.
Definition: volprocstatscomputer.h:31
TypeSet< BinID > positions_
Definition: volprocstatscomputer.h:101
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:40
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:30
void setStatsType(BufferString str)
Definition: volprocstatscomputer.h:46
void setZMargin(int nsamp)
Definition: volprocstatscomputer.h:45
BufferString shape_
Definition: volprocstatscomputer.h:99
BufferString statstype_
Definition: volprocstatscomputer.h:66
static const char * sKeyEllipse()
Definition: volprocstatscomputer.h:79
#define mClass(module)
Definition: commondefs.h:164
Array3D ( Subclass of ArrayND ) is a three dimensional array.
Definition: arraynd.h:153
TrcKeyZSampling tkzsin_
Definition: volprocstatscomputer.h:103
Generalization of something (e.g. a computation) that needs to be done in multiple steps...
Definition: task.h:28

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