Public Member Functions | Public Attributes | Protected Member Functions | List of all members
ConvOp Class Reference

Computes Cb s or bottoms in kilometers for a given dBZ threshold, typically 20, 40 or 45 dBZ. More...

#include <ConvOp.h>

Inheritance diagram for ConvOp:
Inheritance graph
[legend]
Collaboration diagram for ConvOp:
Collaboration graph
[legend]

Public Member Functions

 ConvOp (double maxEchoThreshold=25.0, double cellDiameter=3.0, double echoTopThreshold=2.0, double echoTopDBZ=20.0, double smoothRad=0.0, double smoothAzm=0.0)
 Currently type and gain are not handled due to char<=> int mapping problem. 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 >
getParameter (const std::string &p) const
 Gets a single parameter.
 
const ReferenceMapgetParameters () const
 
ReferenceMapgetParameters ()
 
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.
 
BeanLikeoperator= (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 maxEchoThreshold
 
double echoTopDBZ
 
double cellDiameter
 
double echoTopThreshold
 
double smoothAzm
 
double smoothRad
 
const bool top
 
- Public Attributes inherited from PixelVectorOp
std::string functorDef
 
- Public Attributes inherited from ImageMod
bool physicalScale
 

Protected Member Functions

void computeSingleProduct (const DataSetMap< PolarSrc > &srcSweeps, DataSet< PolarDst > &dstProduct) const
 
- Protected Member Functions inherited from PolarProductOp
void copyPolarGeometry (const PolarODIM &srcODIM, PlainData< PolarDst > &dstData) const
 
virtual void setGeometry (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 PolarProductOp
static const CoordinatePolicy polarCoordPolicy
 
- Static Protected Member Functions inherited from ImageOp
static void adaptCoordinateHandler (const Channel &src, CoordinateHandler2D &handler)
 
- 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
 

Detailed Description

Computes Cb s or bottoms in kilometers for a given dBZ threshold, typically 20, 40 or 45 dBZ.

Constructor & Destructor Documentation

◆ ConvOp()

ConvOp ( double  maxEchoThreshold = 25.0,
double  cellDiameter = 3.0,
double  echoTopThreshold = 2.0,
double  echoTopDBZ = 20.0,
double  smoothRad = 0.0,
double  smoothAzm = 0.0 
)
inline

Currently type and gain are not handled due to char<=> int mapping problem.

Parameters
echoTopDBZ- threshold for Cb
cellDiameter- minimum convection cell area
minHeight- minimum height of cells of echoTopDBZ
smoothRad- radial smoothing width for intermediate results
smoothAzm- azimuthal smoothing width for intermediate results Probability of convection based on reflectivity and echo tops. This convection detection algorithm is based on the following assumptions
  1. The reflectivity is typically high, over 30 dBZ
  2. Convection occurs in cells, that is, circular areas having diameters around 1-5 kms.
  3. The height of a convective cell typically reaches at least 5km

The user-defined parameters for the algorithm are:

  1. $ maxEcho $ : minimum reflectivity directly indicating convection
  2. $ zCell $ : minimum reflectivity of convective area and its top
  3. $ cellHeight $ : minimum top height of a convective cell (having reflectivity > $ zCell $)
  4. $ cellDiameter $ : typical diameter of a convective cell (having reflectivity > $ zCell $)
Parameters of the convection product.

Computationally, these properties are handled as fuzzy membership functions.

  • $ f_{\mathrm{zMin}}$ : minimum reflectivity; a fuzzy threshold at location $z$ (minimum dBZ) and steepness $ z_w $
  • $ f_{\mathrm{echoTop}}$ : echo top for $z$ ; a fuzzy threshold at location $h$ (minimum height) and steepness $ z_w $
  • $ f_{\mathrm{area}}$ : size of cells of at least $z$ ; a fuzzy peak at location $a$ (minimum area) and steepness $ a_w $

The resulting quantity

\[ p_{conv} = f_{\mathrm{zMin}}(z,z_w)f_{echoTop}(z)f_{area}(a,a_w) \]

The quality (confidence) of the probability estimation is defined likewise as a product of the component qualities:

\[ q_{conv} = q_{zMax}(z,z_w)q_{echoTop}(z)q_{area}(a,a_w) \]

Member Function Documentation

◆ computeSingleProduct()

void computeSingleProduct ( const DataSetMap< PolarSrc > &  srcSweeps,
DataSet< PolarDst > &  dstProduct 
) const
protected

Use always maxEcho (consider changing to cappi?) cell and echo top are optional, but used by default.

Step 2: fuzzification


The documentation for this class was generated from the following files: