OpendTect  6.6
prestackprop.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: Jan 2008
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "prestackprocessingmod.h"
15 
16 #include "datapack.h"
17 #include "enums.h"
18 #include "ranges.h"
19 #include "stattype.h"
20 
21 class SeisPSReader;
22 
23 namespace PreStack
24 {
25 
26 class Gather;
27 
32 mExpClass(PreStackProcessing) PropCalc
33 {
34 public:
35 
36  enum CalcType { Stats, LLSQ };
38  enum AxisType { Norm, Log, Exp, Sqr, Sqrt, Abs, Sinsq };
40  enum LSQType { A0, Coeff, StdDevA0, StdDevCoeff,
41  CorrCoeff };
43 
44  mExpClass(PreStackProcessing) Setup
45  {
46  public:
47  Setup()
48  : calctype_(LLSQ)
49  , stattype_(Stats::Average)
50  , lsqtype_(A0)
51  , offsaxis_(Norm)
52  , valaxis_(Norm)
53  , offsrg_(0,mUdf(float))
54  , xscaler_(1.f)
55  , anglerg_(0,30)
56  , useangle_(false)
57  , aperture_(0) {}
58 
59  mDefSetupMemb(CalcType,calctype)
60  mDefSetupMemb(Stats::Type,stattype)
61  mDefSetupMemb(LSQType,lsqtype)
62  mDefSetupMemb(AxisType,offsaxis)
63  mDefSetupMemb(AxisType,valaxis)
65  mDefSetupMemb(float,xscaler)
67  mDefSetupMemb(bool,useangle)
68  mDefSetupMemb(int,aperture)
69  };
70  PropCalc(const Setup&);
71  virtual ~PropCalc();
72 
73  Setup& setup() { return setup_; }
74  const Setup& setup() const { return setup_; }
75  const Gather* getGather() const { return gather_; }
76 
77  bool hasAngleData() const { return angledata_; }
85  float getVal(int sampnr) const;
86  float getVal(float z) const;
87 
88  static float getVal(const PropCalc::Setup& su,
89  TypeSet<float>& vals,TypeSet<float>& offs);
90 
91 protected:
92 
93  void removeGather();
94 
95  Gather* gather_ = nullptr;
98  Gather* angledata_ = nullptr;;
99 
101  bool anglevalinradians_ = false;
103 
104 private:
105 
106  void init();
109 
110 public:
111 
112  void setAngleValuesInRadians( bool yn )
113  { anglevalinradians_ = yn; }
114 };
115 
116 } // namespace PreStack
117 
PreStack::PropCalc::PropCalc
PropCalc(const Setup &)
Stats::Average
@ Average
Definition: stattype.h:23
PreStack::PropCalc::CalcType
CalcType
Definition: prestackprop.h:36
PreStack::PropCalc::setAngleData
void setAngleData(const PreStack::Gather &)
PreStack::Gather
PreStack gather.
Definition: prestackgather.h:36
PreStack::PropCalc::removeGather
void removeGather()
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
PreStack::PropCalc::hasAngleData
bool hasAngleData() const
Definition: prestackprop.h:77
mDefSetupMemb
#define mDefSetupMemb(typ, memb)
Definition: commondefs.h:154
PreStack::PropCalc::getAngleFromMainGather
bool getAngleFromMainGather() const
PreStack::PropCalc::setup
const Setup & setup() const
Definition: prestackprop.h:74
sKey::Setup
FixedString Setup()
Definition: keystrs.h:139
Math::Abs
unsigned int Abs(unsigned int i)
Definition: math2.h:79
PreStack::PropCalc::axisvalsrg_
Interval< float > axisvalsrg_
Definition: prestackprop.h:102
Stats::Type
Type
Definition: stattype.h:21
PreStack::PropCalc::mDeclareEnumUtils
mDeclareEnumUtils(CalcType) enum AxisType
Definition: prestackprop.h:37
PreStack::PropCalc::mDeclareEnumUtils
mDeclareEnumUtils(LSQType) class Setup
Definition: prestackprop.h:42
PreStack::PropCalc::getGather
const Gather * getGather() const
Definition: prestackprop.h:75
PreStack::PropCalc::setGather
void setGather(DataPack::ID)
PreStack::PropCalc::mDeclareEnumUtils
mDeclareEnumUtils(AxisType) enum LSQType
Definition: prestackprop.h:39
PreStack::PropCalc::setAngleValuesInRadians
void setAngleValuesInRadians(bool yn)
Definition: prestackprop.h:112
PreStack::PropCalc::getVal
float getVal(float z) const
PreStack::PropCalc::setGather
void setGather(const PreStack::Gather &)
Setup
Definition: ceemdalgo.h:161
PreStack::PropCalc::getVal
float getVal(int sampnr) const
stattype.h
File::Log
@ Log
Definition: file.h:122
Math::Exp
float Exp(float)
datapack.h
PreStack
Definition: synthseis.h:35
PreStack::PropCalc::Stats
@ Stats
Definition: prestackprop.h:36
PreStack::PropCalc::outermutes_
int * outermutes_
Definition: prestackprop.h:97
DataPack::ID
int ID
Definition: datapack.h:37
PreStack::PropCalc::handleNewGather
void handleNewGather()
PreStack::PropCalc::innermutes_
int * innermutes_
Definition: prestackprop.h:96
SeisPSReader
reads from a prestack seismic data store.
Definition: seispsread.h:34
enums.h
PreStack::PropCalc::setup
Setup & setup()
Definition: prestackprop.h:73
PreStack::PropCalc::getVal
static float getVal(const PropCalc::Setup &su, TypeSet< float > &vals, TypeSet< float > &offs)
mUdf
#define mUdf(type)
Use this macro to get the undefined for simple types.
Definition: undefval.h:274
PreStack::PropCalc::setAngleData
void setAngleData(DataPack::ID)
PreStack::PropCalc::~PropCalc
virtual ~PropCalc()
PreStack::PropCalc::setup_
Setup setup_
Definition: prestackprop.h:98
PreStack::PropCalc
Calculates 'post-stack' properties of a PreStack data store.
Definition: prestackprop.h:33
ranges.h
Math::Sqrt
float Sqrt(float)
Interval< float >
PreStack::PropCalc::init
void init()
TypeSet< float >

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