OpendTect  6.3
volprocstatscomputer.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: Helene Huck
8  Date: September 2015
9 ________________________________________________________________________
10 
11 
12 -*/
13 
14 
15 #include "volumeprocessingmod.h"
16 #include "volprocstep.h"
17 #include "trckeyzsampling.h"
18 #include "paralleltask.h"
19 
20 template<class T> class Array3D;
21 
22 namespace VolProc
23 {
24 
29 mExpClass(VolumeProcessing) StatsCalculator : public Step
31 public:
34  "Volume Statistics",
35  tr("Volume Statistics") )
36 
38 
39  static const char* sZSampMargin() { return "Z samples margin"; }
40 
41  void setStepout( BinID bid ) { stepout_ = bid; }
42  void setZMargin( int nsamp ) { nzsampextra_ = nsamp;}
44  { statstype_ = str; }
45 
46  void fillPar(IOPar&) const;
47  bool usePar(const IOPar&);
48 
49  TrcKeySampling getInputHRg(const TrcKeySampling&) const;
50 
51  Task* createTask();
52 
53  virtual bool needsInput() const { return true; }
54  virtual bool needsFullVolume() const { return false;}
55  virtual bool canInputAndOutputBeSame() const { return false;}
56  virtual bool areSamplesIndependent() const { return true; }
57 
58 protected:
59 
60  virtual od_int64 extraMemoryUsage(OutputSlotID,
61  const TrcKeySampling&,
62  const StepInterval<int>&) const;
63 
65  int nzsampextra_; //extra on both sides
67 
68 };
69 
70 
71 mClass(VolumeProcessing) StatsCalculatorTask : public ParallelTask
73 public:
74 
76  const TrcKeyZSampling& tkzsin,
77  const TrcKeyZSampling& tkzsout,
78  BinID,int,BufferString,
79  Array3D<float>& out);
80 
81  static const char* sKeyEllipse() { return "Ellipse"; }
82  //for now
83 
84  od_int64 totalNr() const { return totalnr_; }
85  uiString message() const;
86 
87 protected:
88 
89  bool doWork(od_int64,od_int64,int);
90  void prepareWork();
91 
92  od_int64 nrIterations() const { return totalnr_; }
93 
95 
98 
100  int nzsampextra_; //extra on both sides
103 
105 
108 };
109 
110 } // namespace VolProc
#define mExpClass(module)
Definition: commondefs.h:157
int nzsampextra_
Definition: volprocstatscomputer.h:100
Definition: volprocstatscomputer.h:71
od_int64 totalNr() const
Definition: volprocstatscomputer.h:84
Array3D< float > & output_
Definition: volprocstatscomputer.h:97
TrcKeyZSampling tkzsout_
Definition: volprocstatscomputer.h:107
const Array3D< float > & input_
Definition: volprocstatscomputer.h:96
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:200
#define od_int64
Definition: plftypes.h:34
static const char * sZSampMargin()
Definition: volprocstatscomputer.h:39
#define mDefaultFactoryInstantiation(baseclss, clss, keywrd, usernm)
Definition: factory.h:287
virtual bool needsFullVolume() const
Definition: volprocstatscomputer.h:54
Definition: uistring.h:88
void setStepout(BinID bid)
Definition: volprocstatscomputer.h:41
BinID stepout_
Definition: volprocstatscomputer.h:99
od_int64 totalnr_
Definition: volprocstatscomputer.h:94
Generalization of a task that can be run in parallel.
Definition: paralleltask.h:64
void message(const char *)
default: to stderr
od_int64 nrIterations() const
Definition: volprocstatscomputer.h:92
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
Horizontal sampling (inline and crossline range and steps).
Definition: trckeysampling.h:25
Adapter for a VolProc chain to external attribute calculation.
Definition: velocitygridder.h:29
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:32
int OutputSlotID
Definition: volprocstep.h:47
int nzsampextra_
Definition: volprocstatscomputer.h:65
BufferString statstype_
Definition: volprocstatscomputer.h:101
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:187
BinID stepout_
Definition: volprocstatscomputer.h:64
virtual bool needsInput() const
Definition: volprocstatscomputer.h:53
virtual bool canInputAndOutputBeSame() const
Definition: volprocstatscomputer.h:55
An algorithm/calculation/transformation that takes one scalar volume as input, processes it...
Definition: volprocstep.h:39
Processor for Volume Statistics.
Definition: volprocstatscomputer.h:29
TypeSet< BinID > positions_
Definition: volprocstatscomputer.h:104
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:28
void setStatsType(BufferString str)
Definition: volprocstatscomputer.h:43
void setZMargin(int nsamp)
Definition: volprocstatscomputer.h:42
BufferString shape_
Definition: volprocstatscomputer.h:102
BufferString statstype_
Definition: volprocstatscomputer.h:66
static const char * sKeyEllipse()
Definition: volprocstatscomputer.h:81
#define mClass(module)
Definition: commondefs.h:161
Array3D ( Subclass of ArrayND ) is a three dimensional array.
Definition: arraynd.h:149
TrcKeyZSampling tkzsin_
Definition: volprocstatscomputer.h:106
Generalization of something (e.g. a computation) that needs to be done in multiple steps...
Definition: task.h:26
virtual bool areSamplesIndependent() const
Definition: volprocstatscomputer.h:56

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