OpendTect-6_4  6.4
prestackanglemute.h
Go to the documentation of this file.
1 #ifndef prestackanglemute_h
2 #define prestackanglemute_h
3 
4 /*+
5 ________________________________________________________________________
6 
7  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
8  Author: Y. Liu
9  Date: January 2011
10  RCS: $Id$
11 ________________________________________________________________________
12 
13 
14 -*/
15 
16 #include "prestackprocessingmod.h"
17 
18 #include "iopar.h"
19 #include "prestackprocessor.h"
20 #include "samplingdata.h"
21 
22 class ElasticLayer;
23 class ElasticModel;
24 class Muter;
25 class RayTracer1D;
26 class RayTracerRunner;
27 namespace Vel { class VolumeFunctionSource; }
28 
29 namespace PreStack
30 {
31 
36 mExpClass(PreStackProcessing) AngleCompParams
37 {
38 public:
39  AngleCompParams();
40 
41  float mutecutoff_;
46 };
47 
48 
49 mExpClass(PreStackProcessing) AngleMuteBase
50 {
51 public:
52 
53  static const char* sKeyRayTracer() { return "Raytracer"; }
54  static const char* sKeyVelVolumeID() { return "Velocity vol-mid"; }
55  static const char* sKeyMuteCutoff() { return "Mute cutoff"; }
56 
57  virtual void fillPar(IOPar&) const;
58  virtual bool usePar(const IOPar&);
59 
60 protected:
61  AngleMuteBase();
62  ~AngleMuteBase();
63 
64  bool setVelocityFunction();
65  bool getLayers(const BinID&,ElasticModel&,
66  SamplingData<float>&,int resamplesz=-1);
67  float getOffsetMuteLayer(const RayTracer1D&,int,int,bool,
68  int startlayer=0,bool belowcutoff=true) const;
69 
73 };
74 
75 
80 mExpClass(PreStackProcessing) AngleMute : public Processor, public AngleMuteBase
82 public:
84  AngleMute,"AngleMute", tr("Angle Mute") )
85 
86  AngleMute();
87  ~AngleMute();
88 
89  mStruct(PreStackProcessing) AngleMutePars : public AngleCompParams
90  {
91  AngleMutePars()
92  : tail_(false)
93  , taperlen_(10)
94  {}
95 
96  bool tail_;
97  float taperlen_;
98  };
99 
100  bool doPrepare(int nrthreads);
101 
102  uiString errMsg() const { return errmsg_; }
103 
104  AngleMutePars& params();
105  const AngleMutePars& params() const;
106 
107  static const char* sKeyTaperLength() { return "Taper lenght"; }
108  static const char* sKeyIsTail() { return "Mute tail"; }
109 
110  void fillPar(IOPar&) const;
111  bool usePar(const IOPar&);
112 
113 protected:
114 
115  od_int64 nrIterations() const { return outputs_.size(); }
116  virtual bool doWork(od_int64,od_int64,int);
117 
121 };
122 
123 } // namespace PreStack
124 
125 #endif
#define mExpClass(module)
Definition: commondefs.h:160
Velocity.
Definition: velocityfunction.h:32
IOPar raypar_
Definition: prestackanglemute.h:44
od_int64 nrIterations() const
Definition: prestackanglemute.h:115
A table of elastic prop layers with processing utilities.
Definition: ailayer.h:100
float mutecutoff_
Definition: prestackanglemute.h:41
static const char * sKeyTaperLength()
Definition: prestackanglemute.h:107
static const char * sKeyRayTracer()
Definition: prestackanglemute.h:53
#define mStruct(module)
Definition: commondefs.h:165
#define mODTextTranslationClass(clss)
Definition: uistring.h:38
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:36
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:188
#define od_int64
Definition: plftypes.h:36
Definition: synthseis.h:36
static const char * sKeyMuteCutoff()
Definition: prestackanglemute.h:55
#define mDefaultFactoryInstantiation(baseclss, clss, keywrd, usernm)
Definition: factory.h:289
Definition: uistring.h:89
AngleCompParams * params_
Definition: prestackanglemute.h:70
ObjectSet< Muter > muters_
Definition: prestackanglemute.h:120
uiString errmsg_
Definition: prestackanglemute.h:118
ObjectSet< RayTracerRunner > rtrunners_
Definition: prestackanglemute.h:72
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:47
Definition: velocityfunctionvolume.h:62
MultiID velvolmid_
Definition: prestackanglemute.h:43
static const char * sKeyVelVolumeID()
Definition: prestackanglemute.h:54
static const char * sKeyIsTail()
Definition: prestackanglemute.h:108
Ray tracer in 1D.
Definition: raytrace1d.h:32
void fillPar(IOPar &iop, const ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:175
A table of elastic prop layers.
Definition: ailayer.h:75
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:30
BufferString errmsg_
Definition: horizontracker.h:119
Definition: raytracerrunner.h:22
Base class for AngleMute and AngleMuteComputer.
Definition: prestackanglemute.h:36
uiString errMsg() const
Definition: prestackanglemute.h:102
Vel::VolumeFunctionSource * velsource_
Definition: prestackanglemute.h:71
Angle mute.
Definition: prestackanglemute.h:80
IOPar smoothingpar_
Definition: prestackanglemute.h:45
Interval< int > anglerange_
Definition: prestackanglemute.h:42
bool raytraceparallel_
Definition: prestackanglemute.h:119
Compound key consisting of ints.
Definition: multiid.h:25
Definition: prestackanglemute.h:49
Sets start or end part of a float series to 0.
Definition: muter.h:29

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