|
A quick emitter detection based on subtracting horizontal window medians by vertical ones. More...
#include <EmitterOp.h>
Public Member Functions | |
EmitterOp (double lengthMin=5.0, double thicknessMax=5.0, double sensitivity=0.5) | |
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 | lengthMin |
double | thicknessMax |
double | sensitivity |
int | samplingDistance |
int | samplingDistanceWidth |
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 > &srcData, PlainData< PolarDst > &dstProb) 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 |
A quick emitter detection based on subtracting horizontal window medians by vertical ones.
|
inline |
Default constructor
thicknessMax | - azimuthal width [degrees] |
samplingDistance | - position [km] of fuzzy peak weighting the sampling |
samplingDistanceWidth | - halfwidth of the weighting curve |
|
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. |
Minimum segment width in pixels.
Maximum segment height in pixels.
Maximum segment thickness in degrees, relative to full circle (360deg)
Essentially, morphological closing, horizontally.
Horizontal run lengths are computed on the vertical run lengths; using src would give too long lines (inside clouds)
Reimplemented from DetectorOp.