OpendTect  6.3
prestackanglemute.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: Y. Liu
8  Date: January 2011
9 ________________________________________________________________________
10 
11 
12 -*/
13 
14 #include "prestackprocessingmod.h"
15 
16 #include "iopar.h"
17 #include "prestackprocessor.h"
18 #include "samplingdata.h"
19 
20 class ElasticLayer;
21 class ElasticModel;
22 class Muter;
23 class RayTracer1D;
24 class RayTracerRunner;
25 namespace Vel { class VolumeFunctionSource; }
26 
27 namespace PreStack
28 {
29 
34 mExpClass(PreStackProcessing) AngleCompParams
35 {
36 public:
37  AngleCompParams();
38 
39  float mutecutoff_;
44 };
45 
46 
47 mExpClass(PreStackProcessing) AngleMuteBase
48 {
49 public:
50 
51  static const char* sKeyRayTracer() { return "Raytracer"; }
52  static const char* sKeyVelVolumeID() { return "Velocity vol-mid"; }
53  static const char* sKeyMuteCutoff() { return "Mute cutoff"; }
54 
55  virtual void fillPar(IOPar&) const;
56  virtual bool usePar(const IOPar&);
57 
58 protected:
59  AngleMuteBase();
60  ~AngleMuteBase();
61 
62  bool setVelocityFunction();
63  bool getLayers(const BinID&,ElasticModel&,
64  SamplingData<float>&,int resamplesz=-1);
65  float getOffsetMuteLayer(const RayTracer1D&,int,int,bool,
66  int startlayer=0,bool belowcutoff=true) const;
67 
71 };
72 
73 
78 mExpClass(PreStackProcessing) AngleMute : public Processor, public AngleMuteBase
80 public:
82  AngleMute,"AngleMute", tr("Angle Mute") )
83 
84  AngleMute();
85  ~AngleMute();
86 
87  mStruct(PreStackProcessing) AngleMutePars : public AngleCompParams
88  {
89  AngleMutePars()
90  : tail_(false)
91  , taperlen_(10)
92  {}
93 
94  bool tail_;
95  float taperlen_;
96  };
97 
98  bool doPrepare(int nrthreads);
99 
100  uiString errMsg() const { return errmsg_; }
101 
102  AngleMutePars& params();
103  const AngleMutePars& params() const;
104 
105  static const char* sKeyTaperLength() { return "Taper lenght"; }
106  static const char* sKeyIsTail() { return "Mute tail"; }
107 
108  void fillPar(IOPar&) const;
109  bool usePar(const IOPar&);
110 
111 protected:
112 
113  od_int64 nrIterations() const { return outputs_.size(); }
114  virtual bool doWork(od_int64,od_int64,int);
115 
119 };
120 
121 } // namespace PreStack
#define mExpClass(module)
Definition: commondefs.h:157
Velocity.
Definition: velocityfunction.h:30
IOPar raypar_
Definition: prestackanglemute.h:42
od_int64 nrIterations() const
Definition: prestackanglemute.h:113
A table of elastic prop layers with processing utilities.
Definition: ailayer.h:98
float mutecutoff_
Definition: prestackanglemute.h:39
static const char * sKeyTaperLength()
Definition: prestackanglemute.h:105
static const char * sKeyRayTracer()
Definition: prestackanglemute.h:51
#define mStruct(module)
Definition: commondefs.h:162
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
Processes PreStack data at one cdp location. The algorithm is implemented in subclasses, and can be created by the PreStack::PF() factory.
Definition: prestackprocessor.h:34
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:200
#define od_int64
Definition: plftypes.h:34
Definition: prestackagc.h:18
static const char * sKeyMuteCutoff()
Definition: prestackanglemute.h:53
#define mDefaultFactoryInstantiation(baseclss, clss, keywrd, usernm)
Definition: factory.h:287
Definition: uistring.h:88
AngleCompParams * params_
Definition: prestackanglemute.h:68
ObjectSet< Muter > muters_
Definition: prestackanglemute.h:118
uiString errmsg_
Definition: prestackanglemute.h:116
DBKey velvolmid_
Definition: prestackanglemute.h:41
ObjectSet< RayTracerRunner > rtrunners_
Definition: prestackanglemute.h:70
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
Definition: velocityfunctionvolume.h:59
static const char * sKeyVelVolumeID()
Definition: prestackanglemute.h:52
static const char * sKeyIsTail()
Definition: prestackanglemute.h:106
Ray tracer in 1D.
Definition: raytrace1d.h:30
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:187
A table of elastic prop layers.
Definition: ailayer.h:73
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:28
BufferString errmsg_
Definition: horizontracker.h:117
Definition: raytracerrunner.h:20
Full key to any object in the OpendTect data store.
Definition: dbkey.h:36
Base class for AngleMute and AngleMuteComputer.
Definition: prestackanglemute.h:34
uiString errMsg() const
Definition: prestackanglemute.h:100
Vel::VolumeFunctionSource * velsource_
Definition: prestackanglemute.h:69
Angle mute.
Definition: prestackanglemute.h:78
IOPar smoothingpar_
Definition: prestackanglemute.h:43
Interval< int > anglerange_
Definition: prestackanglemute.h:40
bool raytraceparallel_
Definition: prestackanglemute.h:117
Definition: prestackanglemute.h:47
Sets start or end part of a float series to 0.
Definition: muter.h:27

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