31#ifndef RACK_NONMET_OP_H_
32#define RACK_NONMET_OP_H_
36#include "FuzzyDetectorOp.h"
61 DetectorOp(__FUNCTION__,
"Detects clutter. Based on dual-pol parameter RhoHV . Optional post processing: morphological closing. Universal.",
"nonmet"){
67 parameters.link(
"threshold", this->threshold.tuple() = threshold,
"0...1[:0...1]");
68 parameters.link(
"medianWindow", this->medianWindow.tuple() = medianWindow,
"metres,degrees");
69 parameters.link(
"medianPos", this->medianPos = medianPos,
"0...1");
92 void runDetector(
const PlainData<PolarSrc> & srcData, PlainData<PolarDst> & dstProb)
const;
133 ftor_t & functor = bank.clone<ftor_t>();
135 if (rhoHVthreshold.min > rhoHVthreshold.max){
136 functor.set(rhoHVthreshold);
138 else if (rhoHVthreshold.min < rhoHVthreshold.max){
139 functor.set(rhoHVthreshold.max, rhoHVthreshold.min);
142 functor.set(rhoHVthreshold.max, 0.8 * rhoHVthreshold.max);
188 ChaffOp(
double dbzPeak = 10.0,
double vradDevMax = +5.0,
double rhoHVmax = 0.50,
double zdrAbsMin = 0.5,
double windowWidth = 2500,
double windowHeight = 5.0) :
189 FuzzyDetectorOp(__FUNCTION__,
"Estimates chaff probability from DBZH, VRAD, RhoHV and ZDR.",
"nonmet.chaff"){
190 init(dbzPeak, vradDevMax, rhoHVmax, zdrAbsMin, windowWidth, windowHeight);
194 this->parameters.
copyStruct(op.getParameters(), op, *
this);
198 void init(
double dbzPeak,
double vradDevMax,
double rhoHVmax,
double zdrDevMin,
double windowWidth,
double windowHeight);
Something that has width and height.
Definition Frame.h:53
A base class for fuzzy functions; also an unary functor.
Definition Fuzzy.h:55
A basic, linear transition from 0 to scale between (start) and (end) .
Definition Fuzzy.h:154
void copyStruct(const ReferenceMap &m, const T &src, T &dst, extLinkPolicy policy=RESERVE)
Experimental. Copies references and values of a structure to another.
Definition ReferenceMap.h:407
Tuple of N elements of type T.
Definition UniTuple.h:65
Definition NonMetOp.h:172
ChaffOp(double dbzPeak=10.0, double vradDevMax=+5.0, double rhoHVmax=0.50, double zdrAbsMin=0.5, double windowWidth=2500, double windowHeight=5.0)
Definition NonMetOp.h:188
void setQuantities(const std::string &s)
Sets basic quantities and quality quantities. These sets are separated by '/'.
Definition DataSelector.cpp:282
Base class for anomaly detectors.
Definition DetectorOp.h:49
bool REQUIRE_STANDARD_DATA
Set to true if operator expects fixed background intensities instead of "nodata" defined by the Polar...
Definition DetectorOp.h:216
bool UNIVERSAL
If true, applies also to quantities str than the one used in detection. The detection and the accumul...
Definition DetectorOp.h:181
Base class for BirdOp and InsectOp.
Definition FuzzyDetectorOp.h:90
Definition FuzzyDetectorOp.h:65
Marks bins with low RhoHV value as probable anomalies.
Definition NonMetOp.h:103
virtual drain::Fuzzifier< double > & getFuzzifierRHOHV(LocalFunctorBank &bank) const override
Fuzzifier of RHOHV shows response on values lower than 1.0.
Definition NonMetOp.h:131
Marks bins with low RhoHV value as probable anomalies.
Definition NonMetOp.h:46
virtual void runDetector(const PlainData< PolarSrc > &srcData, PlainData< PolarDst > &dstProb) const
Process as sweep (data in one elevation angle)
Definition NonMetOp.cpp:46
NonMetOp(const drain::UniTuple< double, 2 > &threshold={0.7, 0.8}, const drain::UniTuple< double, 2 > &medianWindow={0.0, 0.0}, double medianThreshold=0.95)
Default constructor.
Definition NonMetOp.h:60
Definition DataSelector.cpp:44