OpendTect  6.3
seisbayesclass.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: Bert
8  Date: Feb 2010
9 ________________________________________________________________________
10 
11 */
12 
13 #include "seiscommon.h"
14 #include "executor.h"
15 #include "bufstringset.h"
16 class SeisTrc;
17 class SeisTrcBuf;
18 class ProbDenFunc;
19 class SeisTrcWriter;
20 namespace Seis { class Provider; }
21 
22 
41 public:
42 
43  SeisBayesClass(const IOPar&);
44  ~SeisBayesClass();
45 
46  static const char* sKeyPDFID();
47  static const char* sKeyAPProbID();
48  static const char* sKeySeisInpID();
49  static const char* sKeySeisOutID();
50  static const char* sKeyPreNorm();
51  static const char* sKeyPostNorm();
52  static const char* sKeyPreScale();
53 
54  int nextStep();
55  uiString message() const;
56  uiString nrDoneText() const;
57  od_int64 nrDone() const;
58  od_int64 totalNr() const;
59 
60 protected:
61 
62  bool is2d_;
71  const IOPar& pars_;
73  bool doprenorm_;
76 
77  const int nrdims_;
78  const int nrpdfs_;
79  const bool needclass_;
84  int initstep_;
86 
87  bool getPDFs();
88  void preScalePDFs();
89  void postScaleProbs();
90  bool getReaders();
91  bool getWriters();
92 
93  Seis::Provider* getProvider(const char*,bool,int);
94  int readInpTrcs(bool forinptrcs);
95  int createOutput();
96  int closeDown();
97 
98  float getPDFValue(int ipdf,int isamp,int icomp,
99  bool inp=false) const;
100  float getAPTrcVal(int ipdf,int isamp,int icomp);
101  void calcPerBinProbs();
102  void calcProbs(int);
103  void calcClass();
104  void calcDet();
105  void cleanUp();
106  void prepOutTrc(SeisTrc&,bool) const;
107  void getClass(const TypeSet<float>&,int&,
108  float&) const;
109 
110 };
111 
112 #define mGetSeisBayesKey(ky,nr) \
113  IOPar::compKey(SeisBayesClass::sKey##ky(),nr)
114 #define mGetSeisBayesIDKey(ky,nr) mGetSeisBayesKey(ky##ID,nr)
115 
116 #define mGetSeisBayesPreScaleKey(nr) mGetSeisBayesKey(PreScale,nr)
117 #define mGetSeisBayesPDFIDKey(nr) mGetSeisBayesIDKey(PDF,nr)
118 #define mGetSeisBayesAPProbIDKey(nr) mGetSeisBayesIDKey(APProb,nr)
119 #define mGetSeisBayesSeisInpIDKey(nr) mGetSeisBayesIDKey(SeisInp,nr)
120 #define mGetSeisBayesSeisOutIDKey(nr) mGetSeisBayesIDKey(SeisOut,nr)
#define mExpClass(module)
Definition: commondefs.h:157
Seismics.
Definition: segydirectdef.h:20
int initstep_
Definition: seisbayesclass.h:84
is the access point for seismic traces. Instantiate a subclass and ask for what you need...
Definition: seisprovider.h:54
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
Base class for Probability Density Functions.
Definition: probdenfunc.h:29
#define od_int64
Definition: plftypes.h:34
ObjectSet< Seis::Provider > approvs_
Definition: seisbayesclass.h:66
TypeSet< float > prescales_
Definition: seisbayesclass.h:75
Definition: seiswrite.h:38
const bool needclass_
Definition: seisbayesclass.h:79
uiString msg_
Definition: seisbayesclass.h:82
od_int64 nrdone_
Definition: seisbayesclass.h:80
Definition: uistring.h:88
SeisTrcBuf & aptrcs_
Definition: seisbayesclass.h:69
const int nrdims_
Definition: seisbayesclass.h:77
Set of BufferString objects.
Definition: bufstringset.h:25
void message(const char *)
default: to stderr
FixedString Provider()
Definition: keystrs.h:103
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
od_int64 totalnr_
Definition: seisbayesclass.h:81
SeisTrcBuf & outtrcs_
Definition: seisbayesclass.h:70
const IOPar & pars_
Definition: seisbayesclass.h:71
const int nrpdfs_
Definition: seisbayesclass.h:78
TypeSet< float > pdfinpvals_
Definition: seisbayesclass.h:85
ObjectSet< SeisTrcWriter > wrrs_
Definition: seisbayesclass.h:67
Bayesian inversion/classification for seismic data using PDFs.
Definition: seisbayesclass.h:39
SeisTrcBuf & inptrcs_
Definition: seisbayesclass.h:68
Seismic trace.
Definition: seistrc.h:31
bool doprenorm_
Definition: seisbayesclass.h:73
set of seismic traces.
Definition: seisbuf.h:28
ObjectSet< TypeSet< int > > pdfxtbls_
Definition: seisbayesclass.h:72
ObjectSet< ProbDenFunc > pdfs_
Definition: seisbayesclass.h:64
BufferStringSet pdfnames_
Definition: seisbayesclass.h:83
bool is2d_
Definition: seisbayesclass.h:62
ObjectSet< Seis::Provider > provs_
Definition: seisbayesclass.h:65
bool dopostnorm_
Definition: seisbayesclass.h:74
ObjectSet< ProbDenFunc > inppdfs_
Definition: seisbayesclass.h:63
Specification to enable chunkwise execution of a process.
Definition: executor.h:38

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