w2qcref::QCNN Class Reference

Inheritance diagram for w2qcref::QCNN:

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

Detailed Description

Neural network to perform quality control of radar reflectivity data.

Author:
Lakshman
Version:
Id
w2img_QCNN.h,v 1.35 2010/09/22 21:14:11 lakshman Exp


Public Member Functions

 QCNN (int additionalInputs_through_subclasses=0)
virtual code::PolarGrid computeProbabilityOfPrecip (const std::vector< code::Image< float > > &nnInputs)
 Given the computed parameters, compute the probability of precip .
virtual ~QCNN ()
virtual void reset (bool time_also)
void setPostprocessor (code::SmartPtr< Postprocessor > proc)
 pass in an invalid SmartPtr to avoid post-process.
code::SmartPtr< Postprocessorpostprocessor ()
int getTrainedSize () const
 How many input features are needed by this NN?
int getEchoSizeIndex () const
virtual float getPrecipThreshold () const
 Obtained after analysis of the ROC curve after training the network.
virtual code::SmartPtr< BasicStatisticscreateStatistic (const std::string &typeName, int elevNo)
 Create, and return, the appropriate statistic.
virtual void preprocessData (code::RadialSet &rs)
 In addition to making velocity data match gate-resolution of reflectivity data, it sets reflectivity returns below the noise threshold to be -14dBZ instead of MISSING.
int setupNNInputs (const std::vector< code::Image< float > > &nnInputs, int x, int y, std::vector< float > *final_inputs)
 copy and pre-process the NN params to get a array of inputs to the network (at a pixel).
virtual void cleanInitialScan (code::PolarGrid &result)
 thresholds the input, without doing any thing more fancy.
virtual void addOtherNNInputs (const std::vector< code::PolarGrid > &dbz, std::vector< code::Image< float > > *params)
 Adds distance to high echo and distance to AP.
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?
code::PolarGrid computeProbabilityOfPrecip (const std::vector< code::PolarGrid > &dbz)
 Work-horse function which calls fillNNInput, computes probability of precip.
code::PolarGrid computeQualityComposite (const std::vector< code::PolarGrid > &dbzScans)
 Convenience function that computes prob of precip and uses it.
code::PolarGrid computeQualityComposite (const code::PolarGrid &precipProb, const std::vector< code::PolarGrid > &dbzScans)
code::PolarGrid computeComposite (const std::vector< code::PolarGrid > &dbzScans)
code::PolarGrid computeHybridScan (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)
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.
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 void setPostprocessFlag (bool flag)
 default for this is true.
static void setPixelwiseFlag (bool flag)
 default for this is false.
static void setNeuralNetworkFlag (bool flag)
 default for this is true.
static void setClutterDir (const std::string &dir)
 Set the top-level clutter dir here.
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

Protected Member Functions

virtual code::PolarGrid runNeuralNetwork (const std::vector< code::Image< float > > &nnInputs)
 over-ride if you want to change the network.

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

w2qcref::QCNN::QCNN ( int  additionalInputs_through_subclasses = 0  ) 

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


Member Function Documentation

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

Adds distance to high echo and distance to AP.

Reimplemented from w2qcref::RadarQualityControl.

Reimplemented in w2qcref::CloudCoverNN.

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

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

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

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

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

virtual void w2qcref::QCNN::cleanInitialScan ( code::PolarGrid &  result  )  [virtual]

thresholds the input, without doing any thing more fancy.

Reimplemented from w2qcref::RadarQualityControl.

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

Collapse data to meet target gate width.

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

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

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

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

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

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

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

Given the computed parameters, compute the probability of precip .

..

Implements w2qcref::RadarQualityControl.

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

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

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 
) [inherited]

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::QCNN::createStatistic ( const std::string &  typeName,
int  elevNo 
) [virtual]

Create, and return, the appropriate statistic.

Implements w2qcref::RadarQualityControl.

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

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

int w2qcref::QCNN::getEchoSizeIndex (  )  const

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

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

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

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

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

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, inherited]

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

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

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

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, inherited]

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

How many fields are there in a NN input?

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

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, inherited]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

virtual float w2qcref::QCNN::getPrecipThreshold (  )  const [virtual]

Obtained after analysis of the ROC curve after training the network.

Implements w2qcref::RadarQualityControl.

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

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

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

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

int w2qcref::QCNN::getTrainedSize (  )  const [inline]

How many input features are needed by this NN?

Returns:
<= 0 if the network has not been trained yet.

void w2qcref::RadarQualityControl::handleVolumeStart (  )  [inherited]

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

bool w2qcref::RadarQualityControl::isReadyToComputeResults (  )  const [inherited]

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

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

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

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

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

bool w2qcref::RadarQualityControl::isVolumeComplete (  )  const [inherited]

is the volume complete? a convenience function.

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

code::SmartPtr<Postprocessor> w2qcref::QCNN::postprocessor (  )  [inline]

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

In addition to making velocity data match gate-resolution of reflectivity data, it sets reflectivity returns below the noise threshold to be -14dBZ instead of MISSING.

Reimplemented from w2qcref::RadarQualityControl.

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

Use terrain information to preprocess this scan.

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

Reimplemented from w2qcref::RadarQualityControl.

virtual code::PolarGrid w2qcref::QCNN::runNeuralNetwork ( const std::vector< code::Image< float > > &  nnInputs  )  [protected, virtual]

over-ride if you want to change the network.

Reimplemented in w2qcref::CloudCoverNN.

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

The default value is 0.5.

static void w2qcref::QCNN::setClutterDir ( const std::string &  dir  )  [inline, static]

Set the top-level clutter dir here.

The clutter maps can be created using w2createClutterMap

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

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

By default, hybrid scans are not produced.

static void w2qcref::QCNN::setNeuralNetworkFlag ( bool  flag  )  [inline, static]

default for this is true.

If false, QCNN's results are solely due to the preprocessing.

static void w2qcref::QCNN::setPixelwiseFlag ( bool  flag  )  [inline, static]

default for this is false.

If turned on, blob segmentation will not be done.

static void w2qcref::QCNN::setPostprocessFlag ( bool  flag  )  [inline, static]

default for this is true.

void w2qcref::QCNN::setPostprocessor ( code::SmartPtr< Postprocessor proc  )  [inline]

pass in an invalid SmartPtr to avoid post-process.

By default, a CombineMean() is used.

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

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

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

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

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

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

set the terrain blockage for this radar.

int w2qcref::QCNN::setupNNInputs ( const std::vector< code::Image< float > > &  nnInputs,
int  x,
int  y,
std::vector< float > *  final_inputs 
)

copy and pre-process the NN params to get a array of inputs to the network (at a pixel).

This array should be sized already to be params.size()

Returns:
0 if the point is definitely not weather-related

1 if the point is definitely weather-related

-1 if we do not know at this point -- the point has to be processed by the neural network to be sure.

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

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


Member Data Documentation

BloomPreproc w2qcref::RadarQualityControl::bloomPreproc [inherited]

RadialPreproc w2qcref::RadarQualityControl::radialPreproc [inherited]

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

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

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

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

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


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