32 #ifndef Jamming2_OP_H_
33 #define Jamming2_OP_H_
47 #include "DetectorOp.h"
84 JammingOp(
double smoothnessThreshold = 5.0,
double distanceMin = 80.0,
double refit=
true,
int debugRow=-1) :
85 DetectorOp(__FUNCTION__,
"Detects broad lines caused by electromagnetic interference. Intensities should be smooth, increasing by distance.",
88 parameters.link(
"smoothnessThreshold", this->smoothnessThreshold = smoothnessThreshold,
"dBZ");
89 parameters.link(
"distanceMin", this->distanceMin = distanceMin,
"km");
90 parameters.link(
"refit", this->refit = refit,
"true|false");
95 REQUIRE_STANDARD_DATA =
true;
99 double smoothnessThreshold;
144 return dBZ0 + distance*(0.016/1000.0) + 20.0*log10(distance);
165 int iLower = std::max(i-span, 0);
166 double zLower = src.
get<
double>(iLower,j);
168 int iUpper = std::min(i+span,
static_cast<int>(src.getWidth())-1);
169 double zUpper = src.
get<
double>(iUpper,j);
171 return (zUpper - zLower)/(odimIn.
rscale*
static_cast<double>(iUpper-iLower));
174 return std::numeric_limits<double>::max();
181 double derivativeDBZ_Modelled(
double yModelBase,
double range,
double rangeDifference){
182 return (modelledEmitter(yModelBase, range+rangeDifference) - modelledEmitter(yModelBase, range-rangeDifference)) / (2.0*rangeDifference);
T get(size_t i) const
Gets the intensity at location i. See address().
Definition: ImageFrame.h:254
Class for multi-channel digital images. Supports dynamic typing with base types (char,...
Definition: Image.h:184
Base class for anomaly detectors.
Definition: DetectorOp.h:49
bool isValue(double x) const
Returns true for a valid measurement value, false for undetect and nodata marker values.
Definition: EncodingODIM.h:219
A detector for widespread electromagnetic interference.
Definition: JammingOp.h:64
static double modelledEmitter(double dBZ0, double distance)
Model for radar amplification of an external emitter.
Definition: JammingOp.h:143
static double derivativeDBZ(const PolarODIM &odimIn, const Image &src, int i, int j, int span=10)
Returns the beam-oriented derivative of the dBZ field. In case of no-data, returns std::numeric_limit...
Definition: JammingOp.h:164
int debugRow
Definition: JammingOp.h:135
JammingOp(double smoothnessThreshold=5.0, double distanceMin=80.0, double refit=true, int debugRow=-1)
Definition: JammingOp.h:84
Essential class for storing radar data.
Definition: Data.h:302
Metadata structure for single-radar data (polar scans, volumes and products).
Definition: PolarODIM.h:45
double & rscale
Beam-directional bin length [m].
Definition: PolarODIM.h:77
Namespace for images and image processing tools.
Definition: AccumulationArray.cpp:45
Definition: DataSelector.cpp:44