OpendTect  6.6
dataclipper.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: Kristofer Tingdahl
8  Date: 09-02-2002
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 
13 -*/
14 
15 #include "algomod.h"
16 #include "typeset.h"
17 #include "ranges.h"
18 template <class T> class ValueSeries;
19 template <class T> class ArrayND;
20 
73 {
74 public:
81  inline bool isEmpty() const { return samples_.isEmpty(); }
82 
83  void setApproxNrValues(od_int64 nrsamples,
84  int statsize=2000);
90  void putData(float);
91  void putData(const float*,od_int64 sz);
93  void putData(const ArrayND<float>&);
94 
95  bool calculateRange(float cliprate,Interval<float>&);
98  bool calculateRange(float lowcliprate,
99  float highcliprate,
100  Interval<float>&);
103  static bool calculateRange(float* vals, od_int64 nrvals,
104  float lowcliprate,
105  float highcliprate,
106  Interval<float>&);
109  bool fullSort();
110  bool getRange(float cliprate,Interval<float>&) const;
111  bool getRange(float lowcliprate,float highcliprate,
112  Interval<float>&) const;
113  bool getSymmetricRange(float cliprate,float midval,
114  Interval<float>&) const;
115  void reset();
116 
117  const LargeValVec<float>& statPts() const { return samples_; }
118 
119 protected:
120 
122  float sampleprob_;
126 };
127 
128 
134 {
135 public:
136  DataClipSampler(int bufsz=10000);
137  ~DataClipSampler() { delete [] vals_; }
138 
139  void reset() { count_ = 0; }
140 
141  void add(float);
142  void add(const float*,od_int64);
143  void finish() const;
144 
145  od_int64 nrVals() const;
146  const float* vals() const { return vals_; }
147 
148  void report(IOPar&) const;
149  Interval<float> getRange(float clipratio) const;
150 
151 
152 protected:
153 
154  float* vals_;
155  const int maxnrvals_;
158  bool finished_;
159 
160  void doAdd(float);
162 };
163 
164 
ValueSeries
Interface to a series of values.
Definition: odmemory.h:16
DataClipSampler::add
void add(float)
DataClipSampler::nrVals
od_int64 nrVals() const
DataClipSampler::getClipRgStr
BufferString getClipRgStr(float) const
DataClipSampler::getRange
Interval< float > getRange(float clipratio) const
DataClipper::fullSort
bool fullSort()
DataClipper::DataClipper
DataClipper()
DataClipSampler::reset
void reset()
Definition: dataclipper.h:139
od_int64
#define od_int64
Definition: plftypes.h:35
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
DataClipper::isEmpty
bool isEmpty() const
Definition: dataclipper.h:81
typeset.h
DataClipper::putData
void putData(float)
DataClipper::approxstatsize_
int approxstatsize_
Definition: dataclipper.h:121
DataClipper::subselect_
bool subselect_
Definition: dataclipper.h:123
DataClipper::calculateRange
static bool calculateRange(float *vals, od_int64 nrvals, float lowcliprate, float highcliprate, Interval< float > &)
DataClipSampler::finished_
bool finished_
Definition: dataclipper.h:158
DataClipper::sampleprob_
float sampleprob_
Definition: dataclipper.h:122
DataClipper::putData
void putData(const ValueSeries< float > &, od_int64 sz)
DataClipSampler::maxnrvals_
const int maxnrvals_
Definition: dataclipper.h:155
DataClipper::putData
void putData(const ArrayND< float > &)
DataClipper
A DataClipper gets a bunch of data and determines at what value to clip if a certain clip percentage ...
Definition: dataclipper.h:73
DataClipper::calculateRange
bool calculateRange(float cliprate, Interval< float > &)
DataClipSampler::add
void add(const float *, od_int64)
DataClipper::getRange
bool getRange(float lowcliprate, float highcliprate, Interval< float > &) const
DataClipSampler::finish
void finish() const
DataClipper::getRange
bool getRange(float cliprate, Interval< float > &) const
DataClipSampler
Data clipping sampler.
Definition: dataclipper.h:134
DataClipper::getSymmetricRange
bool getSymmetricRange(float cliprate, float midval, Interval< float > &) const
DataClipper::putData
void putData(const float *, od_int64 sz)
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
DataClipper::setApproxNrValues
void setApproxNrValues(od_int64 nrsamples, int statsize=2000)
DataClipper::statPts
const LargeValVec< float > & statPts() const
Definition: dataclipper.h:117
DataClipSampler::report
void report(IOPar &) const
ArrayND
An ArrayND is an array with a given number of dimensions and a size.
Definition: arraynd.h:33
DataClipper::samples_
LargeValVec< float > samples_
Definition: dataclipper.h:124
DataClipSampler::vals_
float * vals_
Definition: dataclipper.h:154
DataClipSampler::doAdd
void doAdd(float)
DataClipper::calculateRange
bool calculateRange(float lowcliprate, float highcliprate, Interval< float > &)
DataClipper::absoluterg_
Interval< float > absoluterg_
Definition: dataclipper.h:125
DataClipSampler::rg_
Interval< float > rg_
Definition: dataclipper.h:157
DataClipper::reset
void reset()
DataClipSampler::vals
const float * vals() const
Definition: dataclipper.h:146
ranges.h
Interval< float >
DataClipSampler::DataClipSampler
DataClipSampler(int bufsz=10000)
DataClipSampler::~DataClipSampler
~DataClipSampler()
Definition: dataclipper.h:137
LargeValVec< float >
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
DataClipSampler::count_
od_int64 count_
Definition: dataclipper.h:156

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