w2img::CleanRef Class Reference

Inheritance diagram for w2img::CleanRef:

w2img::PolarGridAlgorithm< code::PolarGrid > w2img::VolumeAlgorithm< code::PolarGrid > w2img::VolumeAlgorithmInterface List of all members.

Detailed Description

Removes AP and clutter from reflectivity data.

To make it use cloud-cover information, derived from satellite and model data, set a CloudCoverProvider

Author:
Lakshman
Version:
Id
w2img_CleanRef.h,v 1.5 2009/06/02 20:18:01 lakshman Exp


Public Member Functions

 CleanRef (const code::Angle &angular_resolution, const code::Length &gate_width, const code::Length &total_range)
 specify the dimensions and resolution of the output polar grid.
virtual ~CleanRef ()
void setElevationsFlag (bool)
 turn on or off writing of cleaned reflectivity products.
void setQualityCompositeFlag (bool)
 turn on or off Quality Composite processing.
void setEnhancedCompositeFlag (bool)
 turn on or off EnhancedComposite computation.
void setIntermediatesFlag (bool)
 turn on or off writing intermediate products.
void setVirtualVolumeFlag (bool)
 process virtual volumes or only complete volumes? by default, process only complete volumes.
void setConservativeFlag (bool flag)
 Should we be conservative when flagging AP or not? By default, we are not conservative -- we will run the risk of losing some data at the lowest tilt to get rid of chaff and "rock rain".
void setQualityHeight (const code::Length &qualityHeight)
 Set the height above mean-sea-level above which any data for the composite can be assumed meteorological.
void setVelocityData (const code::RadialSet &velocity)
 sets the velocity data that will be used in quality-controlled composite creation.
void setCloudCover (const code::LatLonGrid &cloudcover)
 sets the CloudCover field that will be used in quality-controlled composite creation.
void setCloudCoverProvider (code::SmartPtr< CloudCoverProvider > cpr)
 use this cloud-cover provider to obtain the latest value of the cloud-cover field at the current time.
virtual std::vector< code::SmartPtr<
code::DataType > > 
process (const std::vector< code::PolarGrid > &elevations)
 does the cleaning and writing tasks.
code::SmartPtr< code::DataType > computeQualityComposite (const std::vector< code::PolarGrid > &elevations)
 computes and returns a quality-controlled ReflectivityComposite.
code::SmartPtr< code::DataType > computeEnhancedComposite (const code::PolarGrid &compositeField)
 enhances the input ReflectivityComposite.
code::SmartPtr< code::DataType > computeQualityElevation (const code::PolarGrid &elevation, const code::PolarGrid &composite)
 computes and returns a quality-controlled version of the elevation scan.
void computeProbabilityOfAP (const code::PolarGrid &pg)
 given an elevation scan, computes a (num_radials x num_gates) grid with fuzzy numbers in [0,1] such that 0 means definitely not AP and 1 means definitely AP.
virtual code::PolarGrid preprocess (const code::RadialSet &rs)
 Over-rides implementation in VolumeAlgorithm to do clutter removal.
virtual bool atLastTilt () const
void setElevationTimeCorrection (bool flag)
void setTimeOfEarliest (bool flag)
void setRoundOffPrecision (float p)
float shouldUseTimeOfEarliest () const
void roundOff (code::PolarGrid &p)
std::vector< code::SmartPtr<
code::DataType > > 
processRecord (const code::Index::Record &inputRecord)
 process the input record, and return data corresponding to input.
std::vector< code::SmartPtr<
code::DataType > > 
processElevation (const code::PolarGrid &inputData)
 process the input data, and return data corresponding to input.
virtual std::vector< code::SmartPtr<
code::DataType > > 
process (const std::vector< code::PolarGrid > &elevations, int index_of_latest)=0
 helper method to the processRecord method.
const code::Angle & getCurrentElevation () const
 Returns the most current elevation scan seen.

Static Public Member Functions

static code::Image< float > wrapBoundary (const code::PolarGrid &pg, int half_size)
 repeats the gates and wraps the radials.
static code::Image< float > unwrapBoundary (const code::Image< float > &input, int half_sz)
static void removeClutter (code::PolarGrid &result, float min_validval=0, float badval=code::Constants::MISSING_DATA)

Protected Attributes

code::Angle myAngularResolution
code::Length myRadialResolution
int numAngles
int numGates

Classes

struct  Intermediates


Constructor & Destructor Documentation

w2img::CleanRef::CleanRef ( const code::Angle &  angular_resolution,
const code::Length &  gate_width,
const code::Length &  total_range 
)

specify the dimensions and resolution of the output polar grid.

virtual w2img::CleanRef::~CleanRef (  )  [virtual]


Member Function Documentation

virtual bool w2img::VolumeAlgorithm< code::PolarGrid >::atLastTilt (  )  const [virtual, inherited]

Implements w2img::VolumeAlgorithmInterface.

code::SmartPtr< code::DataType > w2img::CleanRef::computeEnhancedComposite ( const code::PolarGrid &  compositeField  ) 

enhances the input ReflectivityComposite.

void w2img::CleanRef::computeProbabilityOfAP ( const code::PolarGrid &  pg  ) 

given an elevation scan, computes a (num_radials x num_gates) grid with fuzzy numbers in [0,1] such that 0 means definitely not AP and 1 means definitely AP.

The elevation scan should correspond to the same elevation as the velocity scan.

code::SmartPtr< code::DataType > w2img::CleanRef::computeQualityComposite ( const std::vector< code::PolarGrid > &  elevations  ) 

computes and returns a quality-controlled ReflectivityComposite.

code::SmartPtr< code::DataType > w2img::CleanRef::computeQualityElevation ( const code::PolarGrid &  elevation,
const code::PolarGrid &  composite 
)

computes and returns a quality-controlled version of the elevation scan.

The composite is a composite that includes this elevation scan.

const code::Angle& w2img::VolumeAlgorithm< code::PolarGrid >::getCurrentElevation (  )  const [inline, virtual, inherited]

Returns the most current elevation scan seen.

If for some reason the data are not available, may return the zero angle.

Implements w2img::VolumeAlgorithmInterface.

virtual code::PolarGrid w2img::CleanRef::preprocess ( const code::RadialSet &  rs  )  [virtual]

Over-rides implementation in VolumeAlgorithm to do clutter removal.

Reimplemented from w2img::PolarGridAlgorithm< code::PolarGrid >.

virtual std::vector< code::SmartPtr< code::DataType > > w2img::VolumeAlgorithm< code::PolarGrid >::process ( const std::vector< code::PolarGrid > &  elevations,
int  index_of_latest 
) [pure virtual, inherited]

helper method to the processRecord method.

The input elevations are all preprocessed.

Implemented in w2img::PolarCAPPI, w2img::PolarHail, w2img::PolarVAD, and w2img::PolarVIL.

virtual std::vector< code::SmartPtr< code::DataType > > w2img::CleanRef::process ( const std::vector< code::PolarGrid > &  elevations  )  [virtual]

does the cleaning and writing tasks.

std::vector< code::SmartPtr< code::DataType > > w2img::VolumeAlgorithm< code::PolarGrid >::processElevation ( const code::PolarGrid &  inputData  )  [inherited]

process the input data, and return data corresponding to input.

std::vector< code::SmartPtr< code::DataType > > w2img::VolumeAlgorithm< code::PolarGrid >::processRecord ( const code::Index::Record &  inputRecord  )  [virtual, inherited]

process the input record, and return data corresponding to input.

Implements w2img::VolumeAlgorithmInterface.

static void w2img::CleanRef::removeClutter ( code::PolarGrid &  result,
float  min_validval = 0,
float  badval = code::Constants::MISSING_DATA 
) [static]

void w2img::VolumeAlgorithm< code::PolarGrid >::roundOff ( code::PolarGrid &  p  )  [inherited]

void w2img::CleanRef::setCloudCover ( const code::LatLonGrid &  cloudcover  ) 

sets the CloudCover field that will be used in quality-controlled composite creation.

See also:
setCloudCoverProvider

void w2img::CleanRef::setCloudCoverProvider ( code::SmartPtr< CloudCoverProvider >  cpr  ) 

use this cloud-cover provider to obtain the latest value of the cloud-cover field at the current time.

void w2img::CleanRef::setConservativeFlag ( bool  flag  )  [inline]

Should we be conservative when flagging AP or not? By default, we are not conservative -- we will run the risk of losing some data at the lowest tilt to get rid of chaff and "rock rain".

In areas of the country (such as the Plains) where chaff/rock-rain is not likely, you should set this flag to "true"

void w2img::CleanRef::setElevationsFlag ( bool   ) 

turn on or off writing of cleaned reflectivity products.

True by default. If false, only the derived products will be written out.

void w2img::VolumeAlgorithm< code::PolarGrid >::setElevationTimeCorrection ( bool  flag  )  [inline, inherited]

void w2img::CleanRef::setEnhancedCompositeFlag ( bool   ) 

turn on or off EnhancedComposite computation.

True by default. The enhanced composite provides a "staging area" for such things as storm location. This is a good field to threshold for yes/no type decisions.

void w2img::CleanRef::setIntermediatesFlag ( bool   ) 

turn on or off writing intermediate products.

False by default.

void w2img::CleanRef::setQualityCompositeFlag ( bool   ) 

turn on or off Quality Composite processing.

True by default. The QualityComposite field is the vertical maximum of the cleaned reflectivity volume scan.

void w2img::CleanRef::setQualityHeight ( const code::Length &  qualityHeight  ) 

Set the height above mean-sea-level above which any data for the composite can be assumed meteorological.

A fuzzy quality control will be applied to data below this threshold.

2000m by default.

void w2img::VolumeAlgorithm< code::PolarGrid >::setRoundOffPrecision ( float  p  )  [inline, inherited]

void w2img::VolumeAlgorithm< code::PolarGrid >::setTimeOfEarliest ( bool  flag  )  [inline, inherited]

void w2img::CleanRef::setVelocityData ( const code::RadialSet &  velocity  ) 

sets the velocity data that will be used in quality-controlled composite creation.

void w2img::CleanRef::setVirtualVolumeFlag ( bool   )  [virtual]

process virtual volumes or only complete volumes? by default, process only complete volumes.

Reimplemented from w2img::VolumeAlgorithm< code::PolarGrid >.

float w2img::VolumeAlgorithm< code::PolarGrid >::shouldUseTimeOfEarliest (  )  const [inline, inherited]

static code::Image<float> w2img::CleanRef::unwrapBoundary ( const code::Image< float > &  input,
int  half_sz 
) [static]

static code::Image<float> w2img::CleanRef::wrapBoundary ( const code::PolarGrid &  pg,
int  half_size 
) [static]

repeats the gates and wraps the radials.


Member Data Documentation

code::Angle w2img::PolarGridAlgorithm< code::PolarGrid >::myAngularResolution [protected, inherited]

code::Length w2img::PolarGridAlgorithm< code::PolarGrid >::myRadialResolution [protected, inherited]

int w2img::PolarGridAlgorithm< code::PolarGrid >::numAngles [protected, inherited]

int w2img::PolarGridAlgorithm< code::PolarGrid >::numGates [protected, inherited]


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