vol::MultiDopplerUVWVolumeCreator Class Reference

Inheritance diagram for vol::MultiDopplerUVWVolumeCreator:

vol::MultiDopplerVolumeCreator vol::BlendedVolumeCreator vol::VolumeCreator List of all members.

Detailed Description

This extends the MultiDopplerVolumeCreator to add a vertical wind ("w") component.

Author:
Lakshman
Version:
Id
vol_MultiDopplerUVWVolumeCreator.h,v 1.5 2011/11/03 15:29:23 Valliappa.Lakshmanan Exp


Public Types

typedef std::vector< Observation > ObsList
typedef std::vector< const
Observation * > 
ObservationList

Public Member Functions

 MultiDopplerUVWVolumeCreator (const code::TimeInterval &blendingInterval)
virtual void init (const GridSpecification &gridSpec, const std::string &cacheDir, const std::string &outputDir, code::SmartPtr< code::IndexRecordNotifier > lb)
virtual ~MultiDopplerUVWVolumeCreator ()
virtual std::vector< code::LatLonHeightGrid > getOtherOutputs () const
 Make sure to call this method after calling getCurrentGrid.
virtual void init (const GridSpecification &gridSpec, const std::string &cacheDir, const std::string &outputDir, code::SmartPtr< code::IndexRecordNotifier > lb)
 the real constructor
virtual void actionPerformed (const code::ActionEvent *e)
virtual std::vector< code::SmartPtr<
code::DataType > > 
getNonLatLonGridOutputs () const
 VolumeCreators like the VADVolumeCreator may not return LatLonGrid.
virtual void setGridValueToBlendedValue (const BlendMap &dataValues, code::LatLonHeightGrid &output)=0
 subclasses should implement this method to do their blending.
virtual code::TimeInterval getDataExpiryInterval () const
 How long should data be kept?
void setToUseConstantWindField (bool flag)
void setToIgnoreClearAir (bool flag)
void setToWriteWeightedObservations (bool flag)
void setCalibrationDir (const std::string &dir)
 An empty string indicates that no calibration need be done.
short getBestRange (size_t x, size_t y, size_t z) const
void updateGridWithData (const RadialSetLookup &, const code::DataConverter::RadialSetLookup &, const code::RadialSet &, const code::Time &timeOfNewData)
 subclasses should provide implementation of this method.
void updateGridWithData (const code::LatLonGrid &, const code::Time &timeOfNewData, int ht)
void updateGridWithData (const RawObservationStruct &)
void updateGridWithData (const WeightedObservationStruct &)
virtual void finalizeGrid ()
 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 void computeWeightedValues (const BlendMap &dataValues, WeightedObservationStruct &allobs)
 Subclasses can optionally implement this method to provide a multi-stage tiled merger.
const code::LatLonHeightGrid & getCurrentGrid ()
 returns the result, computing it if necessary.
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)
int getNumLat () const
int getNumLon () const
int getNumHt () const
const GridSpecification & getGridSpec () 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?
float getDegreesPerKmLat () const
float getDegreesPerKmLon () const
float getKmPerPixelLat () const
float getKmPerPixelLon () const

Static Public Member Functions

static void setReflectivityType (const std::string &refType)
 Change the reflectivity type from "MergedReflectivityComposite".
static short estimate_valid_time (int vcp_no)
static void setWindFieldProductName (const std::string &s)

Protected Member Functions

virtual void setGridValueToBlendedValue (const BlendMap &dataValues, code::LatLonHeightGrid &output)
 subclasses should implement this method to do their blending.
void blendUV (const ObservationList &points, int i, int j, int k)
void blendW (int i, int j, int k, double *max_diff)
int getClosestLevel (const code::Length &inht, float tolerance_meters=0.1)
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 w
code::LatLonHeightGrid u
code::LatLonHeightGrid v
std::vector< float > height
code::LatLonHeightGrid refGrid
TerminalVelocity terminalVelocity
code::LatLonHeightGrid myCurrentGrid
TimeUpdater myAgeOffTime
std::string myOutputDir
code::SmartPtr< code::IndexRecordNotifier > myLB

Static Protected Attributes

static std::vector< std::string > myReflectivityType

Friends

class BlendedVolumeCreator::BlendMap


Member Typedef Documentation

typedef std::vector< const Observation* > vol::BlendedVolumeCreator::ObservationList [inherited]

typedef std::vector< Observation > vol::BlendedVolumeCreator::ObsList [inherited]


Constructor & Destructor Documentation

vol::MultiDopplerUVWVolumeCreator::MultiDopplerUVWVolumeCreator ( const code::TimeInterval &  blendingInterval  ) 

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


Member Function Documentation

virtual void vol::MultiDopplerVolumeCreator::actionPerformed ( const code::ActionEvent *  e  )  [virtual, inherited]

Reimplemented from vol::BlendedVolumeCreator.

void vol::MultiDopplerUVWVolumeCreator::blendUV ( const ObservationList points,
int  i,
int  j,
int  k 
) [protected]

Reimplemented from vol::MultiDopplerVolumeCreator.

void vol::MultiDopplerUVWVolumeCreator::blendW ( int  i,
int  j,
int  k,
double *  max_diff 
) [protected]

virtual void vol::BlendedVolumeCreator::computeWeightedValues ( const BlendMap dataValues,
WeightedObservationStruct allobs 
) [virtual, inherited]

Subclasses can optionally implement this method to provide a multi-stage tiled merger.

static short vol::BlendedVolumeCreator::estimate_valid_time ( int  vcp_no  )  [static, inherited]

Returns:
seconds; -ve if vcp is not known

virtual void vol::BlendedVolumeCreator::finalizeGrid (  )  [virtual, inherited]

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.

Implements vol::VolumeCreator.

short vol::BlendedVolumeCreator::getBestRange ( size_t  x,
size_t  y,
size_t  z 
) const [inline, inherited]

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

Returns:
closest level, -1 if nothing within tolerance

const code::LatLonHeightGrid& vol::VolumeCreator::getCurrentGrid (  )  [inherited]

returns the result, computing it if necessary.

virtual code::TimeInterval vol::BlendedVolumeCreator::getDataExpiryInterval (  )  const [inline, virtual, inherited]

How long should data be kept?

Implements vol::VolumeCreator.

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

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

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

float vol::VolumeCreator::getFractionAvailable ( size_t  htno  )  const [inherited]

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

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

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

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

VolumeCreators like the VADVolumeCreator may not return LatLonGrid.

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

Reimplemented from vol::BlendedVolumeCreator.

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

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

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

virtual std::vector<code::LatLonHeightGrid> vol::MultiDopplerUVWVolumeCreator::getOtherOutputs (  )  const [virtual]

Make sure to call this method after calling getCurrentGrid.

Reimplemented from vol::MultiDopplerVolumeCreator.

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

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

the real constructor

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

Reimplemented from vol::MultiDopplerVolumeCreator.

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

Is data at this time expired already?

Reimplemented in vol::RawObservationsVolumeCreator.

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

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

void vol::VolumeCreator::process ( RawObservationStruct rawobs  )  [inherited]

Update grid based on raw observations.

void vol::VolumeCreator::process ( code::LatLonHeightGrid &  llh  )  [inherited]

Update grid based on lat-lon data.

Does not change the lat-lon.

void vol::VolumeCreator::process ( code::LatLonGrid &  llg  )  [inherited]

Update grid based on lat-lon data.

Does not change the lat-lon.

Reimplemented in vol::AlreadyMergedVolumeCreator.

void vol::VolumeCreator::process ( code::RadialSet &  rs  )  [inherited]

Update grid based on radial set data.

Does not change the radial set.

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

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

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::BlendedVolumeCreator::setCalibrationDir ( const std::string &  dir  )  [inline, inherited]

An empty string indicates that no calibration need be done.

virtual void vol::BlendedVolumeCreator::setGridValueToBlendedValue ( const BlendMap dataValues,
code::LatLonHeightGrid &  output 
) [pure virtual, inherited]

subclasses should implement this method to do their blending.

They should use the dataValues variable to get the Blend points and put their results into the output CurrentGrid.

virtual void vol::MultiDopplerUVWVolumeCreator::setGridValueToBlendedValue ( const BlendMap &  dataValues,
code::LatLonHeightGrid &  output 
) [protected, virtual]

subclasses should implement this method to do their blending.

They should use the dataValues variable to get the Blend points and put their results into the output CurrentGrid.

Reimplemented from vol::MultiDopplerVolumeCreator.

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

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.

static void vol::MultiDopplerVolumeCreator::setReflectivityType ( const std::string &  refType  )  [static, inherited]

Change the reflectivity type from "MergedReflectivityComposite".

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

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

void vol::BlendedVolumeCreator::setToIgnoreClearAir ( bool  flag  )  [inline, inherited]

void vol::BlendedVolumeCreator::setToUseConstantWindField ( bool  flag  )  [inline, inherited]

void vol::BlendedVolumeCreator::setToWriteWeightedObservations ( bool  flag  )  [inline, inherited]

static void vol::BlendedVolumeCreator::setWindFieldProductName ( const std::string &  s  )  [static, inherited]

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

void vol::BlendedVolumeCreator::updateGridWithData ( const WeightedObservationStruct  )  [virtual, inherited]

Reimplemented from vol::VolumeCreator.

void vol::BlendedVolumeCreator::updateGridWithData ( const RawObservationStruct  )  [virtual, inherited]

Reimplemented from vol::VolumeCreator.

void vol::BlendedVolumeCreator::updateGridWithData ( const code::LatLonGrid &  ,
const code::Time &  timeOfNewData,
int  ht 
) [virtual, inherited]

Reimplemented from vol::VolumeCreator.

void vol::BlendedVolumeCreator::updateGridWithData ( const RadialSetLookup ,
const code::DataConverter::RadialSetLookup &  ,
const code::RadialSet &  ,
const code::Time &  timeOfNewData 
) [virtual, inherited]

subclasses should provide implementation of this method.

Implements vol::VolumeCreator.


Friends And Related Function Documentation

friend class BlendedVolumeCreator::BlendMap [friend, inherited]


Member Data Documentation

std::vector<float> vol::MultiDopplerVolumeCreator::height [protected, inherited]

TimeUpdater vol::VolumeCreator::myAgeOffTime [protected, inherited]

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

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

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

std::vector<std::string> vol::MultiDopplerVolumeCreator::myReflectivityType [static, protected, inherited]

code::LatLonHeightGrid vol::MultiDopplerVolumeCreator::refGrid [protected, inherited]

TerminalVelocity vol::MultiDopplerVolumeCreator::terminalVelocity [protected, inherited]

code::LatLonHeightGrid vol::MultiDopplerVolumeCreator::u [protected, inherited]

code::LatLonHeightGrid vol::MultiDopplerVolumeCreator::v [protected, inherited]

code::LatLonHeightGrid vol::MultiDopplerUVWVolumeCreator::w [protected]


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