|
Computes attenuation caused by precipitation. More...
#include <AttenuationOp.h>
Public Member Functions | |
AttenuationOp () | |
Public Member Functions inherited from DetectorOp | |
DetectorOp (const std::string &name=__FUNCTION__, const std::string &description="", const std::string &echoClass="") | |
DetectorOp (const DetectorOp &op) | |
virtual const std::string & | getOutputQuantity (const std::string &inputQuantity="") const |
Returns the quantity name, by default the name of the class in upper case letters. More... | |
virtual void | computeProducts (const DataSetMap< PolarSrc > &srcVolume, DataSetMap< PolarDst > &dstVolume) const |
virtual void | runDetection (const DataSetMap< PolarSrc > &srcVolume, DataSetMap< PolarDst > &dstVolume) const |
virtual void | runDetection (const DataSet< PolarSrc > &srcDataSet, PlainData< PolarDst > &dstProb, DataSet< PolarDst > &aux) const |
Process as sweep (data in one elevation angle) More... | |
virtual void | processData (const Data< src_t > &srcData, Data< dst_t > &dstData) const |
Public Member Functions inherited from VolumeTraversalOp | |
VolumeTraversalOp (const std::string &name, const std::string &description="") | |
virtual void | traverseVolume (const Hi5Tree &src, Hi5Tree &dst) const |
Base class for radar data processors. More... | |
Public Member Functions inherited from PolarProductOp | |
PolarProductOp (const std::string &name=__FUNCTION__, const std::string &description="") | |
PolarProductOp (const PolarProductOp &op) | |
Public Member Functions inherited from VolumeOp< PolarODIM > | |
VolumeOp (const std::string &name, const std::string &description="") | |
virtual void | processVolume (const Hi5Tree &src, Hi5Tree &dst) const |
Traverse through given volume and create new, processed data (volume or polar product). More... | |
Public Member Functions inherited from BinaryPixelVectorOp< MultiplicationFunctor > | |
BinaryPixelVectorOp (const std::string &name, const std::string &description) | |
virtual void | process (const ImageFrame &src, Image &dst) const |
Main interface. Typically splits processing to each channel. More... | |
virtual void | process (const ImageFrame &src1, const ImageFrame &src2, Image &dst) const |
virtual void | traverseChannels (const ImageTray< const Channel > &srcTray, ImageTray< Channel > &dstTray) const |
virtual void | traverseChannels (const ImageTray< const Channel > &src, const ImageTray< const Channel > &src2, ImageTray< Channel > &dst) const |
void | traverseFrame (const ImageFrame &src1, const ImageFrame &src2, ImageFrame &dst) const |
Public Member Functions inherited from PixelVectorOp | |
virtual void | getDstConf (const ImageConf &srcConf, ImageConf &dstConf) const |
Given source image, determine respective dest image configuration. More... | |
Public Member Functions inherited from ImageOp | |
virtual void | process (const ImageFrame &src, const ImageFrame &srcWeight, Image &dst, Image &dstWeight) const |
virtual void | process (const ImageTray< const Channel > &src, ImageTray< Image > &dst, bool checkOverlap=true) const |
Run the operator on a series of images. Geometry and type may be changed. UNDER CONSTR. More... | |
virtual void | traverseChannel (const Channel &src, Channel &dst) const |
Apply to single channel. | |
virtual void | traverseChannel (const Channel &src, const Channel &srcAlpha, Channel &dst, Channel &dstAlpha) const |
Apply to single channel with alpha. | |
virtual void | makeCompatible (const ImageConf &src, Image &dst) const |
Depending on the operator, modifies the geometry and type of dst. More... | |
virtual void | makeCompatible2 (const ImageFrame &src1, const ImageFrame &src2, Image &dst) const |
Modifies the geometry and type of dst to fit the computation result. | |
virtual void | help (std::ostream &ostr=std::cout) const |
Prints name, description and parameters using BeanLike::toOStr(). Virtual, so derived classes may extend output. | |
Public Member Functions inherited from ImageMod | |
virtual int | srcAlpha () const |
Tell if alpha channel(s) is required in input. More... | |
virtual void | process (Image &dst) const |
Run this modifier for an image. More... | |
virtual void | traverseChannels (ImageTray< Channel > &dst) const |
Run this modifier for a set of channels. More... | |
virtual void | traverseChannel (Channel &dst) const |
Run this modifier for an image frame. More... | |
virtual void | traverseChannel (Channel &dst, Channel &dstAlpha) const |
Run this modifier for an image frame. More... | |
virtual void | traverseChannels (ImageFrame &dst) const |
Converts dst to ImageTray<Channel> and calls traverseFrame(ImageTray<Channel> &) . | |
Public Member Functions inherited from BeanLike | |
virtual const std::string & | getName () const |
Return the name of an instance. | |
virtual const std::string & | getDescription () const |
Return a brief description. | |
bool | hasParameters () const |
template<class F > | |
F | getParameter (const std::string &p) const |
Gets a single parameter. | |
const ReferenceMap & | getParameters () const |
ReferenceMap & | getParameters () |
template<class F > | |
void | setParametersFromEntries (const F &args) |
void | setParameters (std::initializer_list< Variable::init_pair_t > args) |
Grants access to (if above hidden) | |
virtual void | setParameters (const std::string &p, char assignmentSymbol='=', char separatorSymbol=0) |
Sets comma-separated parameters in a predetermined order "a,b,c" or by specifing them "b=2". More... | |
template<class T > | |
void | setParameters (const std::map< std::string, T > &args) |
Set parameters. | |
template<class T > | |
void | setParameters (const SmartMap< T > &args) |
Set parameters. | |
void | setParameter (const std::string &p, const Castable &value) |
Sets a single parameter. | |
template<class T > | |
void | setParameter (const std::string &p, const VariableT< T > &value) |
template<class F > | |
void | setParameter (const std::string &p, const F &value) |
Sets a single parameter. More... | |
template<class F > | |
void | setParameter (const std::string &p, std::initializer_list< F > value) |
Sets a single parameter. | |
BeanLike & | operator= (const BeanLike &b) |
virtual std::ostream & | toStream (std::ostream &ostr, bool compact=true) const |
BeanLike (const BeanLike &b) | |
BeanLike (const std::string &name, const std::string &description="") | |
Public Attributes | |
double | reflHalfWidth |
double | p |
double | c |
double | p2 |
double | c2 |
Public Attributes inherited from DetectorOp | |
const drain::image::Palette::value_type & | classEntry |
Index applied in the legend of the classification results. More... | |
bool | UNIVERSAL |
If true, applies also to quantities str than the one used in detection. The detection and the accumulation will be stored one step upwards. | |
Public Attributes inherited from PixelVectorOp | |
std::string | functorDef |
Public Attributes inherited from ImageMod | |
bool | physicalScale |
Protected Member Functions | |
virtual void | runDetector (const PlainData< PolarSrc > &src, PlainData< PolarDst > &dst) const |
Process as sweep (data in one elevation angle) More... | |
Protected Member Functions inherited from DetectorOp | |
virtual void | initDataDst (const PlainData< PolarSrc > &srcData, PlainData< PolarDst > &dstData, const std::string &quantity="") const |
If raised, make template? Cf. Volume::initDst ? | |
void | storeDebugData (int debugLevel, const ImageFrame &srcImage, const std::string &label) const |
void | storeDebugData (const ImageFrame &srcImage, PlainData< PolarDst > &dstData, const std::string &quantityLabel) const |
virtual void | writeHow (PlainData< PolarDst > &dstData) const |
After running a cmd, write execution details. | |
void | _enhanceDirectionally (Image &data, float medianPos, int windowWidth) const |
Enhances the detection result by reinforcing sectors of strong response, attenuating others. Optional utility for derived classes. More... | |
void | _infect (Image &data, int windowWidth, int windowHeight, double enhancement) const |
Protected Member Functions inherited from AndreOp | |
AndreOp (const std::string &name, const std::string &description) | |
Generally, the whole data structure can be traversed. More... | |
virtual void | setGeometry (const PolarODIM &srcODIM, PlainData< PolarDst > &dstData) const |
Protected Member Functions inherited from VolumeTraversalOp | |
void | collect (const Hi5Tree &src, Hi5Tree &dst) const |
Protected Member Functions inherited from PolarProductOp | |
void | copyPolarGeometry (const PolarODIM &srcODIM, PlainData< PolarDst > &dstData) const |
virtual void | deriveDstGeometry (const DataSetMap< PolarSrc > &srcSweeps, PolarODIM &dstOdim, bool MINIMISE_RSCALE=false) const |
Based on input data, find geometry that maximises range and ray count. More... | |
virtual void | determineMetadata (const DataSetMap< PolarSrc > &srcSweeps, PolarODIM &dstOdim) const |
Update timestamps etc. More... | |
Protected Member Functions inherited from PixelVectorOp | |
PixelVectorOp (const std::string &name, const std::string &description) | |
Protected Member Functions inherited from ImageOp | |
ImageOp (const std::string &name=__FUNCTION__, const std::string &description="") | |
ImageOp (const ImageOp &op) | |
virtual bool | processOverlappingWithTemp (const ImageFrame &src, Image &dst) const |
virtual bool | processOverlappingWithTemp (const ImageTray< const Channel > &src, ImageTray< Image > &dst) const |
bool | traverseOverlappingWithTemp (const Channel &src, Channel &dst) const |
bool | traverseOverlappingWithTemp (const Channel &src, const Channel &srcWeight, Channel &dst, Channel &dstWeight) const |
void | traverseChannelsEqually (const ImageTray< const Channel > &src, ImageTray< Channel > &dst) const |
Calls processWithTemp() if the frames overlap. More... | |
void | traverseChannelsRepeated (const ImageTray< const Channel > &src, ImageTray< Channel > &dst) const |
Recycle channels until all dst channels completed. | |
void | traverseChannelsSeparately (const ImageTray< const Channel > &src, ImageTray< Channel > &dst) const |
Process each (src,dst) channel pair independently. Raise error if their counts differ. More... | |
void | traverseAsChannelTrays (const ImageFrame &src, ImageFrame &dst) const |
Redirect to processing as trays. This is the opposite of processChannels...() functions. | |
void | traverseAsChannelTrays (const ImageFrame &src, const ImageFrame &srcWeight, ImageFrame &dst, ImageFrame &dstWeight) const |
Redirect to processing as trays. This is the opposite of processChannels...() functions. | |
virtual void | initializeParameters (const ImageFrame &src, const ImageFrame &dst) const |
Set applicable internal parameters before calling traverse(). | |
virtual void | initializeParameters (const ImageFrame &src, const ImageFrame &src2, const ImageFrame &dst) const |
Set applicable internal parameters before calling traverse(). | |
Protected Member Functions inherited from ImageMod | |
ImageMod (const std::string &name=__FUNCTION__, const std::string &description="") | |
ImageMod (const ImageMod &op) | |
virtual void | processChannelsSeparately (ImageTray< Channel > &dst) const |
Run this modifier by calling traverseChannel(Channel &) for each image. | |
virtual void | initialize (Image &dst) const |
Modifies the geometry and the type of dst such that traverseChannel(Channel &) can be called. | |
virtual void | initializeAlpha (const Image &srcAlpha, Image &dstAlpha) const |
Modifies the geometry and the type of dst such that traverseChannel(Channel &) can be called. | |
Protected Member Functions inherited from BeanLike | |
virtual void | storeLastArguments (const std::string &p) |
Called after setParameters() | |
virtual void | updateBean () const |
Called after setParameters() | |
Additional Inherited Members | |
Static Public Attributes inherited from DetectorOp | |
static bool | SUPPORT_UNIVERSAL |
Static Public Attributes inherited from PolarProductOp | |
static const CoordinatePolicy | polarCoordPolicy |
Static Protected Member Functions inherited from ImageOp | |
static void | adaptCoordinateHandler (const Channel &src, CoordinateHandler2D &handler) |
Protected Attributes inherited from DetectorOp | |
std::string | upperCaseName |
bool | REQUIRE_STANDARD_DATA |
Set to true if operator expects fixed background intensities instead of "nodata" defined by the PolarODIM. Affects getValidData(). More... | |
Protected Attributes inherited from PolarProductOp | |
bool | aboveSeaLevel |
Protected Attributes inherited from BinaryPixelVectorOp< MultiplicationFunctor > | |
MultiplicationFunctor | binaryFunctor |
Protected Attributes inherited from PixelVectorOp | |
double | rescale |
double | POW |
double | INVPOW |
Protected Attributes inherited from BeanLike | |
const std::string | name |
const std::string | description |
ReferenceMap | parameters |
Static Protected Attributes inherited from DetectorOp | |
static unsigned short int | _count |
Computes attenuation caused by precipitation.
By Ulrich Blahak (and Isztar Zawadski, Heikki Pohjola, Jarmo Koistinen), for liquid precipitation (including bright band):
and for snow:
Hence, the general expression for precipitation attenuation is
|
inline |
prob | - maximum expected reflectance of biometeors |
maxAltitude | - maximum expected altitude of biometeors |
reflDev | - fuzzy width of reflMax |
devAltitude | - fuzzy width of maxAltitude |
|
protectedvirtual |
Process as sweep (data in one elevation angle)
srcDataSet | - input data of one elevation; possibly several quantities (measurement parameters). |
dstProb | - probability field ie. the result of the detection algorithm |
aux | - auxialiary DatasetDst for keeping a copy of normalized data. Process using single data only (no quality "involved", because it is created here...) |
srcData | - input data of one elevation; possibly several quantities (measurement parameters). |
dstProb | - output data, typically in the same dataset as srcData. |
Actual Z derived from the actual dBZ,
one-way attenuation per one bin two-way attenuation per one bin
Reimplemented from DetectorOp.