w2qcref::RadarQualityControl Class Reference

Inheritance diagram for w2qcref::RadarQualityControl:

w2qcref::QCNN w2qcref::CloudCoverNN List of all members.

Detailed Description

Abstract base class of objects that perform quality-control on reflectivity data.

based on other radar data moments.

Use as follows:

  1. create
  2. call addReflectivity, addVelocity, addSpectrumWidth as you get data
  3. remember to call addReflectivity for all tilts, but the other two only for the lowest tilt
  4. call computeResults typically after you call addReflectivity but maybe on completion of a volume (you can check whether a volume is complete by calling isVolumeComplete() )

Author:
Lakshman
Version:
Id
w2img_RadarQualityControl.h,v 1.39 2011/07/11 18:02:15 Kevin.Manross Exp


Public Member Functions

virtual void cleanInitialScan (code::PolarGrid &result)
 To clean up the initial elevation scans, before the QC algorithm has init'ed itself.
std::vector< code::PolarGrid > computeResults (bool with_precip, bool with_volume_products, bool with_cleaned_elev)
 The output function meant for end-users.
bool isVolumeComplete () const
 is the volume complete? a convenience function.
bool isReadyToComputeResults () const
 are we ready to compute, or are we waiting for some input?
virtual code::PolarGrid computeProbabilityOfPrecip (const std::vector< code::Image< float > > &nnInputs)=0
 Given the computed parameters, compute the probability of precip .
virtual ~RadarQualityControl ()
virtual code::SmartPtr< BasicStatisticscreateStatistic (const std::string &typeName, int elevNo)=0
 Create, and return, the appropriate statistic.
code::PolarGrid computeProbabilityOfPrecip (const std::vector< code::PolarGrid > &dbz)
 Work-horse function which calls fillNNInput, computes probability of precip.
virtual void addOtherNNInputs (const std::vector< code::PolarGrid > &dbz, std::vector< code::Image< float > > *params)
 This method is called by fillNNInput after all the three radar moment-based attributes have been filled in.
virtual float getPrecipThreshold () const =0
 At what value should the precip values be thresholded if we want to make binary decisions?
code::PolarGrid computeQualityComposite (const std::vector< code::PolarGrid > &dbzScans)
 Convenience function that computes prob of precip and uses it.
code::PolarGrid computeComposite (const std::vector< code::PolarGrid > &dbzScans)
code::PolarGrid computeHybridScan (const std::vector< code::PolarGrid > &dbzScans)
code::PolarGrid computeQualityComposite (const code::PolarGrid &precipProb, const std::vector< code::PolarGrid > &dbzScans)
code::PolarGrid computeHybridScan (const code::PolarGrid &precipProb, const std::vector< code::PolarGrid > &dbzScans)
code::PolarGrid computeCleanedElevation (const code::PolarGrid &precipProb, const code::RadialSet &elev)
virtual void reset (bool time_also)
void handleVolumeStart ()
bool isChangeAbnormal () const
void setTerrain (code::SmartPtr< vol::TerrainBlockage > terrainBlockage)
 set the terrain blockage for this radar.
virtual void preprocessDataWithTerrain (code::RadialSet &rs)
 Use terrain information to preprocess this scan.
 RadarQualityControl ()
virtual void preprocessData (code::RadialSet &rs)
 Call this on the input RadialSet _before_ converting it to a PolarGrid.
void addReflectivity (const code::PolarGrid &dbz)
void addVelocity (const code::PolarGrid &vel)
void addSpectrumWidth (const code::PolarGrid &spw)
void addRhoHV (const code::PolarGrid &rhohv)
void addZdr (const code::PolarGrid &zdr)
bool isVelocityKnown (int x, int y) const
bool isSpectrumWidthKnown (int x, int y) const
bool isRhoHVKnown (int x, int y) const
bool isZdrKnown (int x, int y) const
int getFirstVelocityIndex () const
 Index of the entry in the NN table that corresponds to the first velocity data if it exists.
int getNumVelocityFields () const
size_t getNumVelocityElevations () const
 the number of velocity elevations from current volume, not the number of velocity statistics being maintained.
int getFirstSpectrumWidthIndex () const
 Index of the entry in the NN table that corresponds to the first spectrum-width data if it exists.
int getNumSpectrumWidthFields () const
size_t getNumSpectrumWidthElevations () const
 the number of spw elevations from current volume, not the number of spw statistics being maintained.
int getFirstZdrIndex () const
 Index of the entry in the NN table that corresponds to the first Zdr data if it exists.
int getNumZdrFields () const
size_t getNumZdrElevations () const
int getFirstRhoHVIndex () const
 Index of the entry in the NN table that corresponds to the first RhoHV data if it exists.
int getNumRhoHVFields () const
size_t getNumRhoHVElevations () const
int getFirstReflectivityIndex () const
 Index of the entry in the NN table that corresponds to the first reflectivity data if it exists.
int getNumReflectivityFields () const
size_t getNumReflectivityElevations () const
 note that is not truly the total number of reflectivity elevations, just the number that statistics are computed for.
int getFirstVerticalIndex () const
int getNumVerticalFields () const
int getNumFields () const
 How many fields are there in a NN input?
const code::SpaceTimeRef & getLatestSTRef () const
void fillNNInput (const std::vector< code::PolarGrid > &dbz, std::vector< code::Image< float > > *params)
 Fills in a vector of inputs that can be passed to computeQualityComposite() or used for training the network.

Static Public Member Functions

static const code::Length & getTargetGateWidth ()
static code::Angle getTargetAzSpacing ()
static int getTargetNumGates ()
static code::Length getTargetMaxRange ()
static void setTargetResolution (const code::Length &gw, const code::Angle &az, const code::Length &maxRange)
static void setBeamBlockageThreshold (float thresh)
 The default value is 0.5.
static void setHybridScanFlag (bool h)
 By default, hybrid scans are not produced.
static code::PolarGrid collapseData (const code::PolarGrid &pg, const code::Length &targetGateWidth)
 Collapse data to meet target gate width.
static void setReflectivityOnly (int numZElevationsRequired)
static void setDualPol (bool flag)
static bool isReflectivityOnly ()
static size_t getNumVelocityElevationsRequired ()
static size_t getNumSpectrumWidthElevationsRequired ()
static size_t getNumRhoHVElevationsRequired ()
static size_t getNumZdrElevationsRequired ()
static void setRefType (const std::string &s)
static void setVelType (const std::string &s)
static void setSpwType (const std::string &s)
static void setRhoHVType (const std::string &s)
static void setZdrType (const std::string &s)

Public Attributes

RadialPreproc radialPreproc
BloomPreproc bloomPreproc

Static Protected Attributes

static std::string REF_TYPE
static std::string VEL_TYPE
static std::string SPW_TYPE
static std::string RHOHV_TYPE
static std::string ZDR_TYPE


Constructor & Destructor Documentation

virtual w2qcref::RadarQualityControl::~RadarQualityControl (  )  [inline, virtual]

w2qcref::RadarQualityControl::RadarQualityControl (  ) 


Member Function Documentation

virtual void w2qcref::RadarQualityControl::addOtherNNInputs ( const std::vector< code::PolarGrid > &  dbz,
std::vector< code::Image< float > > *  params 
) [virtual]

This method is called by fillNNInput after all the three radar moment-based attributes have been filled in.

Reimplemented in w2qcref::CloudCoverNN, and w2qcref::QCNN.

void w2qcref::RadarQualityControl::addReflectivity ( const code::PolarGrid &  dbz  ) 

void w2qcref::RadarQualityControl::addRhoHV ( const code::PolarGrid &  rhohv  ) 

void w2qcref::RadarQualityControl::addSpectrumWidth ( const code::PolarGrid &  spw  ) 

void w2qcref::RadarQualityControl::addVelocity ( const code::PolarGrid &  vel  ) 

void w2qcref::RadarQualityControl::addZdr ( const code::PolarGrid &  zdr  ) 

virtual void w2qcref::RadarQualityControl::cleanInitialScan ( code::PolarGrid &  result  )  [inline, virtual]

To clean up the initial elevation scans, before the QC algorithm has init'ed itself.

By default, doesn't do anything.

Reimplemented in w2qcref::QCNN.

static code::PolarGrid w2qcref::RadarQualityControl::collapseData ( const code::PolarGrid &  pg,
const code::Length &  targetGateWidth 
) [static]

Collapse data to meet target gate width.

code::PolarGrid w2qcref::RadarQualityControl::computeCleanedElevation ( const code::PolarGrid &  precipProb,
const code::RadialSet &  elev 
)

code::PolarGrid w2qcref::RadarQualityControl::computeComposite ( const std::vector< code::PolarGrid > &  dbzScans  ) 

code::PolarGrid w2qcref::RadarQualityControl::computeHybridScan ( const code::PolarGrid &  precipProb,
const std::vector< code::PolarGrid > &  dbzScans 
)

code::PolarGrid w2qcref::RadarQualityControl::computeHybridScan ( const std::vector< code::PolarGrid > &  dbzScans  ) 

code::PolarGrid w2qcref::RadarQualityControl::computeProbabilityOfPrecip ( const std::vector< code::PolarGrid > &  dbz  )  [inline]

Work-horse function which calls fillNNInput, computes probability of precip.

virtual code::PolarGrid w2qcref::RadarQualityControl::computeProbabilityOfPrecip ( const std::vector< code::Image< float > > &  nnInputs  )  [pure virtual]

Given the computed parameters, compute the probability of precip .

..

Implemented in w2qcref::QCNN.

code::PolarGrid w2qcref::RadarQualityControl::computeQualityComposite ( const code::PolarGrid &  precipProb,
const std::vector< code::PolarGrid > &  dbzScans 
)

code::PolarGrid w2qcref::RadarQualityControl::computeQualityComposite ( const std::vector< code::PolarGrid > &  dbzScans  )  [inline]

Convenience function that computes prob of precip and uses it.

std::vector<code::PolarGrid> w2qcref::RadarQualityControl::computeResults ( bool  with_precip,
bool  with_volume_products,
bool  with_cleaned_elev 
)

The output function meant for end-users.

Specify what you want. They will be in the order of the input parameters.

virtual code::SmartPtr<BasicStatistics> w2qcref::RadarQualityControl::createStatistic ( const std::string &  typeName,
int  elevNo 
) [pure virtual]

Create, and return, the appropriate statistic.

Implemented in w2qcref::QCNN.

void w2qcref::RadarQualityControl::fillNNInput ( const std::vector< code::PolarGrid > &  dbz,
std::vector< code::Image< float > > *  params 
)

Fills in a vector of inputs that can be passed to computeQualityComposite() or used for training the network.

int w2qcref::RadarQualityControl::getFirstReflectivityIndex (  )  const [inline]

Index of the entry in the NN table that corresponds to the first reflectivity data if it exists.

int w2qcref::RadarQualityControl::getFirstRhoHVIndex (  )  const [inline]

Index of the entry in the NN table that corresponds to the first RhoHV data if it exists.

int w2qcref::RadarQualityControl::getFirstSpectrumWidthIndex (  )  const [inline]

Index of the entry in the NN table that corresponds to the first spectrum-width data if it exists.

int w2qcref::RadarQualityControl::getFirstVelocityIndex (  )  const [inline]

Index of the entry in the NN table that corresponds to the first velocity data if it exists.

int w2qcref::RadarQualityControl::getFirstVerticalIndex (  )  const [inline]

int w2qcref::RadarQualityControl::getFirstZdrIndex (  )  const [inline]

Index of the entry in the NN table that corresponds to the first Zdr data if it exists.

const code::SpaceTimeRef& w2qcref::RadarQualityControl::getLatestSTRef (  )  const [inline]

int w2qcref::RadarQualityControl::getNumFields (  )  const [inline]

How many fields are there in a NN input?

size_t w2qcref::RadarQualityControl::getNumReflectivityElevations (  )  const [inline]

note that is not truly the total number of reflectivity elevations, just the number that statistics are computed for.

int w2qcref::RadarQualityControl::getNumReflectivityFields (  )  const [inline]

size_t w2qcref::RadarQualityControl::getNumRhoHVElevations (  )  const [inline]

static size_t w2qcref::RadarQualityControl::getNumRhoHVElevationsRequired (  )  [inline, static]

int w2qcref::RadarQualityControl::getNumRhoHVFields (  )  const [inline]

size_t w2qcref::RadarQualityControl::getNumSpectrumWidthElevations (  )  const [inline]

the number of spw elevations from current volume, not the number of spw statistics being maintained.

static size_t w2qcref::RadarQualityControl::getNumSpectrumWidthElevationsRequired (  )  [inline, static]

int w2qcref::RadarQualityControl::getNumSpectrumWidthFields (  )  const [inline]

size_t w2qcref::RadarQualityControl::getNumVelocityElevations (  )  const [inline]

the number of velocity elevations from current volume, not the number of velocity statistics being maintained.

static size_t w2qcref::RadarQualityControl::getNumVelocityElevationsRequired (  )  [inline, static]

int w2qcref::RadarQualityControl::getNumVelocityFields (  )  const [inline]

int w2qcref::RadarQualityControl::getNumVerticalFields (  )  const [inline]

size_t w2qcref::RadarQualityControl::getNumZdrElevations (  )  const [inline]

static size_t w2qcref::RadarQualityControl::getNumZdrElevationsRequired (  )  [inline, static]

int w2qcref::RadarQualityControl::getNumZdrFields (  )  const [inline]

virtual float w2qcref::RadarQualityControl::getPrecipThreshold (  )  const [pure virtual]

At what value should the precip values be thresholded if we want to make binary decisions?

Implemented in w2qcref::QCNN.

static code::Angle w2qcref::RadarQualityControl::getTargetAzSpacing (  )  [inline, static]

static const code::Length& w2qcref::RadarQualityControl::getTargetGateWidth (  )  [inline, static]

static code::Length w2qcref::RadarQualityControl::getTargetMaxRange (  )  [inline, static]

static int w2qcref::RadarQualityControl::getTargetNumGates (  )  [inline, static]

void w2qcref::RadarQualityControl::handleVolumeStart (  ) 

bool w2qcref::RadarQualityControl::isChangeAbnormal (  )  const [inline]

bool w2qcref::RadarQualityControl::isReadyToComputeResults (  )  const

are we ready to compute, or are we waiting for some input?

static bool w2qcref::RadarQualityControl::isReflectivityOnly (  )  [static]

bool w2qcref::RadarQualityControl::isRhoHVKnown ( int  x,
int  y 
) const [inline]

bool w2qcref::RadarQualityControl::isSpectrumWidthKnown ( int  x,
int  y 
) const [inline]

bool w2qcref::RadarQualityControl::isVelocityKnown ( int  x,
int  y 
) const [inline]

bool w2qcref::RadarQualityControl::isVolumeComplete (  )  const

is the volume complete? a convenience function.

bool w2qcref::RadarQualityControl::isZdrKnown ( int  x,
int  y 
) const [inline]

virtual void w2qcref::RadarQualityControl::preprocessData ( code::RadialSet &  rs  )  [virtual]

Call this on the input RadialSet _before_ converting it to a PolarGrid.

The base class function averages velocity gates such that the resolution matches that of reflectivity data.

Reimplemented in w2qcref::QCNN.

virtual void w2qcref::RadarQualityControl::preprocessDataWithTerrain ( code::RadialSet &  rs  )  [virtual]

Use terrain information to preprocess this scan.

virtual void w2qcref::RadarQualityControl::reset ( bool  time_also  )  [virtual]

Reimplemented in w2qcref::QCNN.

static void w2qcref::RadarQualityControl::setBeamBlockageThreshold ( float  thresh  )  [static]

The default value is 0.5.

static void w2qcref::RadarQualityControl::setDualPol ( bool  flag  )  [static]

static void w2qcref::RadarQualityControl::setHybridScanFlag ( bool  h  )  [inline, static]

By default, hybrid scans are not produced.

static void w2qcref::RadarQualityControl::setReflectivityOnly ( int  numZElevationsRequired  )  [static]

static void w2qcref::RadarQualityControl::setRefType ( const std::string &  s  )  [inline, static]

static void w2qcref::RadarQualityControl::setRhoHVType ( const std::string &  s  )  [inline, static]

static void w2qcref::RadarQualityControl::setSpwType ( const std::string &  s  )  [inline, static]

static void w2qcref::RadarQualityControl::setTargetResolution ( const code::Length &  gw,
const code::Angle &  az,
const code::Length &  maxRange 
) [inline, static]

void w2qcref::RadarQualityControl::setTerrain ( code::SmartPtr< vol::TerrainBlockage terrainBlockage  ) 

set the terrain blockage for this radar.

static void w2qcref::RadarQualityControl::setVelType ( const std::string &  s  )  [inline, static]

static void w2qcref::RadarQualityControl::setZdrType ( const std::string &  s  )  [inline, static]


Member Data Documentation

BloomPreproc w2qcref::RadarQualityControl::bloomPreproc

RadialPreproc w2qcref::RadarQualityControl::radialPreproc

std::string w2qcref::RadarQualityControl::REF_TYPE [static, protected]

std::string w2qcref::RadarQualityControl::RHOHV_TYPE [static, protected]

std::string w2qcref::RadarQualityControl::SPW_TYPE [static, protected]

std::string w2qcref::RadarQualityControl::VEL_TYPE [static, protected]

std::string w2qcref::RadarQualityControl::ZDR_TYPE [static, protected]


Generated on Fri May 4 13:40:25 2012 for WDSS-IIw2algs by  doxygen 1.4.7