32 #ifndef PseudoRhiOP_OP_H_
33 #define PseudoRhiOP_OP_H_
37 #include "data/Data.h"
38 #include "data/DataSelector.h"
39 #include "data/PolarODIM.h"
40 #include "data/VerticalODIM.h"
41 #include "product/VolumeOp.h"
55 PseudoRhiOp(
double az_angle=0.0,
long int xsize=500,
long int ysize=250,
double minRange=1.0,
double range=250.0,
56 double minHeight=0,
double maxHeight=10000,
double beamWidth = 0.25,
double beamPowerThreshold = 0.01) :
57 VolumeOp<RhiODIM>(
"PseudoRhiOp",
"Computes vertical intersection in a volume in the beam direction.") {
60 odim.product =
"PRHI";
62 parameters.link(
"az_angle", odim.az_angle = az_angle,
"deg");
63 parameters.link(
"xsize", odim.area.width = xsize,
"pix");
64 parameters.link(
"ysize", odim.area.height = ysize,
"pix");
66 odim.range.set(minRange, range);
67 parameters.link(
"range", odim.range.tuple(),
"km");
69 odim.altitudeRange.set(minHeight, maxHeight);
70 parameters.link(
"height", odim.altitudeRange.tuple(),
"m" );
80 parameters.link(
"beamWidth", this->beamWidth = beamWidth,
"deg");
81 parameters.link(
"beamPowerThreshold", this->weightThreshold = beamPowerThreshold,
"0..1");
88 allowedEncoding.link(
"type", odim.type =
"C");
89 allowedEncoding.link(
"gain", odim.scaling.scale);
90 allowedEncoding.link(
"offset", odim.scaling.offset);
92 dataSelector.setQuantities(
"^DBZH$");
102 double weightThreshold;
121 return beamWidth2 / (beamWidth2 + angle*angle);
A map of radar data, indexed by quantity code (DBZH, VRAD, etc).
Definition: Data.h:1213
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
Pseudo Range-Height indicator.
Definition: PseudoRhiOp.h:51
static double relativeBeamPower(double angle, double beamWidth2)
Definition: PseudoRhiOp.h:120
Base class for radar data processors.
Definition: VolumeOp.h:88
Namespace for images and image processing tools.
Definition: AccumulationArray.cpp:45
Definition: DataSelector.cpp:44