vol::VolumeCreator Class Reference

Inheritance diagram for vol::VolumeCreator:

vol::AlreadyMergedVolumeCreator vol::BlendedVolumeCreator vol::RawObservationsVolumeCreator vol::AbsMaxVolumeCreator vol::BeamSpreadVolumeCreator vol::DistanceWeightedVolumeCreator vol::DistributeZVolumeCreator vol::ExpTimeDistVolumeCreator vol::MaxVolumeCreator vol::MaxWeightVolumeCreator vol::MinVolumeCreator vol::MultiDopplerVolumeCreator vol::TimeDistVolumeCreator vol::VADVolumeCreator List of all members.

Detailed Description

A class that hangs on to an updated LatLonHeight grid of the appropriate dimension and constantly updates the grid in response to calls to process().

The technique by which variables are combined depends on the subclass. For example, look at LatestVolumeCreator.

Author:
Lakshman
Version:
Id
vol_VolumeCreator.h,v 1.41 2011/11/03 15:29:24 Valliappa.Lakshmanan Exp


Public Member Functions

const code::LatLonHeightGrid & getCurrentGrid ()
 returns the result, computing it if necessary.
virtual std::vector< code::LatLonHeightGrid > getOtherOutputs () const
 Make sure to call this method after calling getCurrentGrid.
virtual std::vector< code::SmartPtr<
code::DataType > > 
getNonLatLonGridOutputs () const
 VolumeCreators like the VADVolumeCreator may not return LatLonGrid.
void process (code::RadialSet &rs)
 Update grid based on radial set data.
void process (code::LatLonGrid &llg)
 Update grid based on lat-lon data.
void process (code::LatLonHeightGrid &llh)
 Update grid based on lat-lon data.
void process (RawObservationStruct &rawobs)
 Update grid based on raw observations.
void process (WeightedObservationStruct &rawobs)
virtual ~VolumeCreator ()
int getNumLat () const
int getNumLon () const
int getNumHt () const
const GridSpecificationgetGridSpec () const
void setScaleCorrectionOn (bool flag)
 If this is turned on, we will correct for difference in scale between radar data and the output grid by averaging radar gates.
void setPrecision (float prec)
 Pass a positive value to set a round-off precision.
float roundOff (float val)
 Subclasses should remember to call roundoff on their final values.
virtual bool isReady () const
 over-ride this to tell clients that we are incomplete, and that functions such as getCurrentGrid() should not be called.
float getFractionAvailable (size_t htno) const
 What fraction of the pixels at this height are not DataUnavailable? Values may either be MissingData or a valid value.
void setAzimuthalAccuracy (float acc)
 How accurate should the azimuths be? By default, this is 0.1.
int getStoredAzimuthToAzNo () const
 Get the scaling factor based on azimuthal accuracy.
virtual bool isExpired (const code::Time &dataTime) const
 Is data at this time expired already?
virtual code::TimeInterval getDataExpiryInterval () const =0
 How long should data be kept?
virtual void init (const GridSpecification &gridSpec, const std::string &cacheDir, const std::string &outputDir, code::SmartPtr< code::IndexRecordNotifier > lb)
 the real constructor
 VolumeCreator ()
 Note: you need to call init().
float getDegreesPerKmLat () const
float getDegreesPerKmLon () const
float getKmPerPixelLat () const
float getKmPerPixelLon () const

Protected Member Functions

int getClosestLevel (const code::Length &inht, float tolerance_meters=0.1)
virtual void updateGridWithData (const RadialSetLookup &, const code::DataConverter::RadialSetLookup &, const code::RadialSet &, const code::Time &timeOfNewData)=0
 subclasses should provide implementation of this method.
virtual void updateGridWithData (const code::LatLonGrid &, const code::Time &timeOfNewData, int ht)
virtual void updateGridWithData (const RawObservationStruct &)
virtual void updateGridWithData (const WeightedObservationStruct &)
virtual void finalizeGrid ()=0
 If any subclass data stores need to do an age off or some such thing to clean out the grid, they can do it here.
virtual code::LatLonHeightGrid getDimensionedGrid (const GridSpecification &)
void setTimeOfGrid (const code::Time &productTime)
virtual code::RadialSet smoothAlongRadials (const code::RadialSet &rs, int half_size)

Protected Attributes

code::LatLonHeightGrid myCurrentGrid
TimeUpdater myAgeOffTime
std::string myOutputDir
code::SmartPtr< code::IndexRecordNotifier > myLB

Classes

struct  GridSpecification
 The dimensions of the grid used by the volume creator are set by the North-West-Top, South-East-Bottom locations and the grid point spacing required. More...


Constructor & Destructor Documentation

virtual vol::VolumeCreator::~VolumeCreator (  )  [inline, virtual]

vol::VolumeCreator::VolumeCreator (  )  [inline]

Note: you need to call init().


Member Function Documentation

virtual void vol::VolumeCreator::finalizeGrid (  )  [protected, pure virtual]

If any subclass data stores need to do an age off or some such thing to clean out the grid, they can do it here.

Implemented in vol::AlreadyMergedVolumeCreator, vol::BlendedVolumeCreator, and vol::RawObservationsVolumeCreator.

int vol::VolumeCreator::getClosestLevel ( const code::Length &  inht,
float  tolerance_meters = 0.1 
) [protected]

Returns:
closest level, -1 if nothing within tolerance

const code::LatLonHeightGrid& vol::VolumeCreator::getCurrentGrid (  ) 

returns the result, computing it if necessary.

virtual code::TimeInterval vol::VolumeCreator::getDataExpiryInterval (  )  const [pure virtual]

How long should data be kept?

Implemented in vol::AlreadyMergedVolumeCreator, vol::BlendedVolumeCreator, and vol::RawObservationsVolumeCreator.

float vol::VolumeCreator::getDegreesPerKmLat (  )  const [inline]

float vol::VolumeCreator::getDegreesPerKmLon (  )  const [inline]

virtual code::LatLonHeightGrid vol::VolumeCreator::getDimensionedGrid ( const GridSpecification  )  [protected, virtual]

float vol::VolumeCreator::getFractionAvailable ( size_t  htno  )  const

What fraction of the pixels at this height are not DataUnavailable? Values may either be MissingData or a valid value.

const GridSpecification& vol::VolumeCreator::getGridSpec (  )  const [inline]

float vol::VolumeCreator::getKmPerPixelLat (  )  const [inline]

float vol::VolumeCreator::getKmPerPixelLon (  )  const [inline]

virtual std::vector< code::SmartPtr<code::DataType> > vol::VolumeCreator::getNonLatLonGridOutputs (  )  const [inline, virtual]

VolumeCreators like the VADVolumeCreator may not return LatLonGrid.

Call this method, but there is no need to invokve VolumeGridAlgorithm on these outputs.

Reimplemented in vol::BlendedVolumeCreator, vol::MultiDopplerVolumeCreator, and vol::VADVolumeCreator.

int vol::VolumeCreator::getNumHt (  )  const [inline]

int vol::VolumeCreator::getNumLat (  )  const [inline]

int vol::VolumeCreator::getNumLon (  )  const [inline]

virtual std::vector< code::LatLonHeightGrid > vol::VolumeCreator::getOtherOutputs (  )  const [inline, virtual]

Make sure to call this method after calling getCurrentGrid.

Reimplemented in vol::MultiDopplerUVWVolumeCreator, vol::MultiDopplerVolumeCreator, and vol::VADVolumeCreator.

int vol::VolumeCreator::getStoredAzimuthToAzNo (  )  const [inline]

Get the scaling factor based on azimuthal accuracy.

virtual void vol::VolumeCreator::init ( const GridSpecification gridSpec,
const std::string &  cacheDir,
const std::string &  outputDir,
code::SmartPtr< code::IndexRecordNotifier >  lb 
) [virtual]

the real constructor

virtual bool vol::VolumeCreator::isExpired ( const code::Time &  dataTime  )  const [virtual]

Is data at this time expired already?

Reimplemented in vol::RawObservationsVolumeCreator.

virtual bool vol::VolumeCreator::isReady (  )  const [inline, virtual]

over-ride this to tell clients that we are incomplete, and that functions such as getCurrentGrid() should not be called.

Reimplemented in vol::AlreadyMergedVolumeCreator.

void vol::VolumeCreator::process ( WeightedObservationStruct rawobs  ) 

void vol::VolumeCreator::process ( RawObservationStruct rawobs  ) 

Update grid based on raw observations.

void vol::VolumeCreator::process ( code::LatLonHeightGrid &  llh  ) 

Update grid based on lat-lon data.

Does not change the lat-lon.

void vol::VolumeCreator::process ( code::LatLonGrid &  llg  ) 

Update grid based on lat-lon data.

Does not change the lat-lon.

Reimplemented in vol::AlreadyMergedVolumeCreator.

void vol::VolumeCreator::process ( code::RadialSet &  rs  ) 

Update grid based on radial set data.

Does not change the radial set.

float vol::VolumeCreator::roundOff ( float  val  )  [inline]

Subclasses should remember to call roundoff on their final values.

The value passed in should not be missing, dataunavailable, etc.

void vol::VolumeCreator::setAzimuthalAccuracy ( float  acc  ) 

How accurate should the azimuths be? By default, this is 0.1.

Using lower values, such as 0.05 will result in thin fine lines where the beams are spaced further apart than 0.05 degrees.

void vol::VolumeCreator::setPrecision ( float  prec  )  [inline]

Pass a positive value to set a round-off precision.

For example, setting a precision of 0.5 means that output values in the merger grid (not derived quantities) will be rounded off to the nearest 0.5.

By default, precision is negative i.e. no rounding off is done.

void vol::VolumeCreator::setScaleCorrectionOn ( bool  flag  )  [inline]

If this is turned on, we will correct for difference in scale between radar data and the output grid by averaging radar gates.

void vol::VolumeCreator::setTimeOfGrid ( const code::Time &  productTime  )  [protected]

virtual code::RadialSet vol::VolumeCreator::smoothAlongRadials ( const code::RadialSet &  rs,
int  half_size 
) [protected, virtual]

virtual void vol::VolumeCreator::updateGridWithData ( const WeightedObservationStruct  )  [inline, protected, virtual]

Reimplemented in vol::BlendedVolumeCreator.

virtual void vol::VolumeCreator::updateGridWithData ( const RawObservationStruct  )  [inline, protected, virtual]

Reimplemented in vol::BlendedVolumeCreator.

virtual void vol::VolumeCreator::updateGridWithData ( const code::LatLonGrid &  ,
const code::Time &  timeOfNewData,
int  ht 
) [inline, protected, virtual]

Reimplemented in vol::BlendedVolumeCreator.

virtual void vol::VolumeCreator::updateGridWithData ( const RadialSetLookup ,
const code::DataConverter::RadialSetLookup &  ,
const code::RadialSet &  ,
const code::Time &  timeOfNewData 
) [protected, pure virtual]

subclasses should provide implementation of this method.

Implemented in vol::AlreadyMergedVolumeCreator, vol::BlendedVolumeCreator, and vol::RawObservationsVolumeCreator.


Member Data Documentation

TimeUpdater vol::VolumeCreator::myAgeOffTime [protected]

code::LatLonHeightGrid vol::VolumeCreator::myCurrentGrid [protected]

code::SmartPtr<code::IndexRecordNotifier> vol::VolumeCreator::myLB [protected]

std::string vol::VolumeCreator::myOutputDir [protected]


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