32 #ifndef DOPPLER_AvgExpOP_H_
33 #define DOPPLER_AvgExpOP_H_
35 #include "drain/imageops/ImpulseResponseOp.h"
36 #include "drain/imageops/ImpulseAvgOp.h"
38 #include "data/DataCoder.h"
39 #include "DopplerOp.h"
79 void addLeft(
int i,
double value,
double weight);
82 void addRight(
int i,
double value,
double weight);
85 void addDown(
int i,
double value,
double weight){
90 void addUp(
int i,
double value,
double weight){
113 inline void set(
double x,
double y,
double w){
126 void mix(entry & prev,
const entry & current,
double decay){
128 double w1 = decay*current.w;
129 double w2 = (1.0-decay);
132 prev.x = (w1*current.x + w2*prev.x) / (w1 + w2);
133 prev.y = (w1*current.y + w2*prev.y) / (w1 + w2);
140 prev.w = w1 + w2*prev.w;
144 typedef std::pair<entry,entry> entryPair;
145 typedef std::vector<entryPair> container;
160 parameters.
append(conf.getParameters());
161 parameters.link(
"horzExtension", horzExt = 0,
"pix");
162 parameters.link(
"vertExtension", vertExt = 0,
"pix");
165 dataSelector.setMaxCount(1);
void append(ReferenceMap &rMap, bool replace=true)
Adopts the references of r. If replace==false, only new entries are appended.
Definition: ReferenceMap.h:320
Image with static geometry.
Definition: ImageChannel.h:60
Averaging operator. A simple example implementation of ImpulseBucket.
Definition: ImpulseAvgOp.h:140
Definition: ImpulseResponseOp.h:54
Data structure consisting of plain data and an optional quality data.
Definition: Data.h:1144
Definition: DopplerAvgExpOp.h:156
Averaging operator. A simple example implementation of ImpulseCumulator.
Definition: DopplerAvgExpOp.h:52
virtual void init(const Channel &src, bool horizontal)
Adapt to input geometry, type, and scaling.
Definition: DopplerAvgExpOp.cpp:39
virtual void addUp(int i, double value, double weight)
When traversing up or left, add a encoded value to bucket in position i.
Definition: DopplerAvgExpOp.h:90
virtual void addDown(int i, double value, double weight)
When traversing down or right, add a encoded value to bucket in position i.
Definition: DopplerAvgExpOp.h:85
virtual double getWeight(int i)
Returns the smoothed average of the input weights modulated with quality (non-centrity) of "radial" s...
Definition: DopplerAvgExpOp.cpp:98
virtual void addRight(int i, double value, double weight)
When traversing down or right, add a encoded value to bucket in position i.
Definition: DopplerAvgExpOp.cpp:78
virtual double get(int i)
Return natural (not encoded) value at position i.
Definition: DopplerAvgExpOp.cpp:116
virtual void addLeft(int i, double value, double weight)
When traversing up or left, add a encoded value to bucket in position i.
Definition: DopplerAvgExpOp.cpp:62
virtual void reset()
Clear statistics before traversing each row or column.
Definition: DopplerAvgExpOp.cpp:49
Metadata structure for single-radar data (polar scans, volumes and products).
Definition: PolarODIM.h:45
Base class for flat (2D) products computed in the polar coordinate system. Volume is used as input.
Definition: PolarProductOp.h:61
Definition: DataSelector.cpp:44
Definition: ImpulseAvgOp.h:95