code::PolarGrid Class Reference

Inheritance diagram for code::PolarGrid:

code::DataType List of all members.

Detailed Description

The PolarGrid is a radial set which will not be resized in the future, making it efficient enough for an algorithm to use it as an internal data structure.

It mimics many, but not all the functions, of the RadialSet. The methods that it does not have typically have to do with being able to add new Radials or remove Radials from the RadialSet.

Author:
Lakshman
Version:
Id
code_PolarGrid.h,v 1.21 2011/01/27 20:44:09 lakshman Exp


Public Types

typedef Data2D< Angle, Angle,
float >::Coord 
Coord
 Coord is a 2D structure.
typedef code::Image< float
>::const_iterator 
const_iterator
typedef std::map< std::string,
SmartPtr< DataColumn > > 
AttrMap
 key-value pairs that describe the data.
 RadialSet
 LatLonGrid
 LatLonHeightGrid
 CartesianGrid2D
 Grid2D
 DataTable
 WindField
 WindFieldLLGVolume
 ElevationVolume
 ContourData
 Other
enum  Type {
  RadialSet, LatLonGrid, LatLonHeightGrid, CartesianGrid2D,
  Grid2D, DataTable, WindField, WindFieldLLGVolume,
  ElevationVolume, ContourData, Other
}

Public Member Functions

 PolarGrid ()
 For STL convenience only.
 PolarGrid (const code::RadialSet &rs)
 Make an non-resizeable, efficient representation.
 PolarGrid (const code::RadialSet &rs, const code::Angle &angularResolution, const code::Length &radialResolution, size_t numGates, bool projectToGround)
 This will create a uniform (in az-ran) radial set of the appropriate dimensions and fill it with the data from the radial set.
 PolarGrid (const code::SpaceTimeRef &radarLoc_and_starttime, const code::Length &distanceToFirstGate, const code::Angle &physicalBeamWidth, const code::Angle &elevationOfScan, const code::Angle &angularResolution, const code::Length &radialResolution, size_t numGates, float initValue)
 Makes an uniform (in az-ran) PolarGrid with the appropriate dimensions and fills it with the input initial data value.
virtual void invoke (Algorithm &alg)
 Use this to invoke any algorithm.
Coord size () const
void setElevation (const code::Angle &elev)
const code::AnglegetElevation () const
virtual short getType () const
 Get enum type of this class.
code::SpaceTimeRef getSpaceTimeRef () const
 Return a SpaceTimeRef that best corresponds to this DataType.
const code::LocationgetRadarLocation () const
void setSpaceTimeRef (const SpaceTimeRef &stref)
void setTime (const Time &t)
SpaceTimeRef reference (int i, int j) const
const code::LengthgetDistanceToFirstGate () const
const code::LengthgetGateWidth () const
const code::AnglegetAzimuth (size_t radial_number) const
const code::AnglegetPhysicalBeamWidth (size_t radial_number=0) const
const code::AnglegetAzimuthalSpacing (size_t radial_number=0) const
const code::SpeedgetNyquistVelocity (size_t radial_number=0) const
void replace (const float &old_value, const float &new_value)
const float * operator[] (size_t i) const
float * operator[] (size_t i)
float get_val (size_t i, size_t j) const
 deprecated alternative to grid[i][j]
void set_val (size_t i, size_t j, const float &new_value)
 deprecated alternative to grid[i][j]
void incr (size_t i, size_t j, const float &incr_val)
 deprecated alternative to grid[i][j] += incr_val
void fill (const float &value)
 Fill the entire grid with the specified value.
void fill (const float &value, size_t ifirst, size_t ilast, size_t jfirst, size_t jlast)
 Fill a 2D range with the specified value.
void replace_1d (size_t row, const float *begin, const float *end)
 Overwrite a 'row' of elements.
void replace_1d (size_t row, const std::vector< float > &v)
 Overwrite a 'row' of elements.
void get_1d_bounds (size_t row, float *&setme_begin, float *&setme_end)
void get_1d_bounds (size_t row, const float *&setme_begin, const float *&setme_end) const
size_t getNumRadials () const
size_t getNumGates () const
code::RadialSet getRadialSet () const
 create the corresponding radial set.
code::Image< float > getImage () const
void setImageData (const code::Image< float > &newdata)
PolarGrid clone () const
virtual ~PolarGrid ()
const_iterator begin () const
const_iterator end () const
std::string getTypeClassName () const
 returns a string such as RadialSet, LatLonGrid, etc.
void copyDataType (const DataType &dt)
 A convenience function provided for subclasses that implement clone() -- will copy into this data type all the attributes in the type dt.
const std::string & getTypeName () const
 Return the TypeName of this DataType.
void setTypeName (const std::string &)
 Set the TypeName of this DataType.
SmartPtr< DataCellgetAttributeValue (const std::string &key) const
 Return a single value associated with an attribute key corresponding to the function's argument.
bool getAttributeValue (const std::string &key, std::string &setme) const
 Assign `setme' with the attribute corresponding to `key'.
bool getAttributeValue (const std::string &key, double &setme) const
 Assign `setme' with the attribute corresponding to `key'.
void setAttributeValue (const std::string &key, const std::string &value, const std::string &unit="dimensionless")
 Set a single-valued attribute that describes this DataType.
void setAttributeValue (const std::string &key, double value, const std::string &unit="dimensionless", const std::string &format="%g")
 Set a single-valued attribute that describes this DataType.
void setAttribute (const std::string &key, SmartPtr< DataColumn > value)
 Set a multiple-valued attribute that describes this DataType.
SmartPtr< DataColumngetAttribute (const std::string &key) const
 Get the attribute value for a particular key.
const AttrMapgetAttributes () const
 Get the entire map of attributes available for this data type.
virtual double getRawValue (const Location &, bool=false) const
 Gets raw value from data set.
virtual TimeInterval getExpiryInterval () const
 Return 15 minutes as the length of time for which this DataType is valid.
bool hasQuality () const
const DataTypegetQuality () const
void setQuality (SmartPtr< DataType > dt)
void clearAttributes ()

Static Public Attributes

static const std::string IsTableData
static const std::string Unit
static const std::string ColorMap
static const std::string ExpiryInterval

Protected Member Functions

virtual void deep_copy (const DataType &source)


Member Typedef Documentation

typedef std::map< std::string, SmartPtr<DataColumn> > code::DataType::AttrMap [inherited]

key-value pairs that describe the data.

typedef code::Image<float>::const_iterator code::PolarGrid::const_iterator

typedef Data2D<Angle,Angle,float>::Coord code::PolarGrid::Coord

Coord is a 2D structure.


Member Enumeration Documentation

enum code::DataType::Type [inherited]

Enumerator:
RadialSet 
LatLonGrid 
LatLonHeightGrid 
CartesianGrid2D 
Grid2D 
DataTable 
WindField 
WindFieldLLGVolume 
ElevationVolume 
ContourData 
Other 


Constructor & Destructor Documentation

code::PolarGrid::PolarGrid (  )  [inline]

For STL convenience only.

code::PolarGrid::PolarGrid ( const code::RadialSet rs  ) 

Make an non-resizeable, efficient representation.

code::PolarGrid::PolarGrid ( const code::RadialSet rs,
const code::Angle angularResolution,
const code::Length radialResolution,
size_t  numGates,
bool  projectToGround 
)

This will create a uniform (in az-ran) radial set of the appropriate dimensions and fill it with the data from the radial set.

You can have the data projected to a plane tangential to the earth's surface at the radar, or leave it in the elevation cone of the radial set.

code::PolarGrid::PolarGrid ( const code::SpaceTimeRef radarLoc_and_starttime,
const code::Length distanceToFirstGate,
const code::Angle physicalBeamWidth,
const code::Angle elevationOfScan,
const code::Angle angularResolution,
const code::Length radialResolution,
size_t  numGates,
float  initValue 
)

Makes an uniform (in az-ran) PolarGrid with the appropriate dimensions and fills it with the input initial data value.

Make sure to call setTypeName (and setAttributeValue) after you create this PolarGrid.

virtual code::PolarGrid::~PolarGrid (  )  [inline, virtual]


Member Function Documentation

const_iterator code::PolarGrid::begin (  )  const [inline]

void code::DataType::clearAttributes (  )  [inline, inherited]

PolarGrid code::PolarGrid::clone (  )  const

void code::DataType::copyDataType ( const DataType dt  )  [inherited]

A convenience function provided for subclasses that implement clone() -- will copy into this data type all the attributes in the type dt.

Attributes with the same name will be over-written, other attributes will remain unchanged.

virtual void code::DataType::deep_copy ( const DataType source  )  [inline, protected, virtual, inherited]

const_iterator code::PolarGrid::end (  )  const [inline]

void code::PolarGrid::fill ( const float &  value,
size_t  ifirst,
size_t  ilast,
size_t  jfirst,
size_t  jlast 
) [inline]

Fill a 2D range with the specified value.

Equivalent to (for i=ifirst; i<iliast; i++) for (j=jfirst; j<jlast; j++) grid[i][j]=val; but much more efficient.

void code::PolarGrid::fill ( const float &  value  )  [inline]

Fill the entire grid with the specified value.

void code::PolarGrid::get_1d_bounds ( size_t  row,
const float *&  setme_begin,
const float *&  setme_end 
) const [inline]

void code::PolarGrid::get_1d_bounds ( size_t  row,
float *&  setme_begin,
float *&  setme_end 
) [inline]

float code::PolarGrid::get_val ( size_t  i,
size_t  j 
) const [inline]

deprecated alternative to grid[i][j]

SmartPtr< DataColumn > code::DataType::getAttribute ( const std::string &  key  )  const [inherited]

Get the attribute value for a particular key.

Parameters:
key attribute key
Returns:
value attribute value in unit-safe manner, or an invalid SmartPtr on error.
See also:
getAttributeValue()

getAttributes() if you don't know the attribute key.

const AttrMap& code::DataType::getAttributes (  )  const [inline, inherited]

Get the entire map of attributes available for this data type.

See also:
getAttribute for a more selective get.

getAttributeValue for a convenient get.

bool code::DataType::getAttributeValue ( const std::string &  key,
double &  setme 
) const [inherited]

Assign `setme' with the attribute corresponding to `key'.

Returns:
true on success; false if no such attribute exists

bool code::DataType::getAttributeValue ( const std::string &  key,
std::string &  setme 
) const [inherited]

Assign `setme' with the attribute corresponding to `key'.

Returns:
true on success; false if no such attribute exists

SmartPtr< DataCell > code::DataType::getAttributeValue ( const std::string &  key  )  const [inherited]

Return a single value associated with an attribute key corresponding to the function's argument.

If no such attribute key exists, then return the NULL SmartPtr. In case multiple values are associated with the key, only the first item is returned.

See also:
getAttribute() to get all values.

const code::Angle& code::PolarGrid::getAzimuth ( size_t  radial_number  )  const [inline]

const code::Angle& code::PolarGrid::getAzimuthalSpacing ( size_t  radial_number = 0  )  const [inline]

const code::Length& code::PolarGrid::getDistanceToFirstGate (  )  const [inline]

const code::Angle& code::PolarGrid::getElevation (  )  const [inline]

virtual TimeInterval code::DataType::getExpiryInterval (  )  const [virtual, inherited]

Return 15 minutes as the length of time for which this DataType is valid.

Override this function in the descendant of DataType as appropriate.

Reimplemented in code::DEM.

const code::Length& code::PolarGrid::getGateWidth (  )  const [inline]

code::Image<float> code::PolarGrid::getImage (  )  const [inline]

size_t code::PolarGrid::getNumGates (  )  const [inline]

size_t code::PolarGrid::getNumRadials (  )  const [inline]

const code::Speed& code::PolarGrid::getNyquistVelocity ( size_t  radial_number = 0  )  const [inline]

const code::Angle& code::PolarGrid::getPhysicalBeamWidth ( size_t  radial_number = 0  )  const [inline]

const DataType& code::DataType::getQuality (  )  const [inline, inherited]

const code::Location& code::PolarGrid::getRadarLocation (  )  const [inline]

code::RadialSet code::PolarGrid::getRadialSet (  )  const

create the corresponding radial set.

virtual double code::DataType::getRawValue ( const Location ,
bool  = false 
) const [inline, virtual, inherited]

Gets raw value from data set.

Reimplemented in code::CartesianGrid2D, code::CartesianGrid3D, code::ElevationVolume, code::LatLonGrid, code::LatLonHeightGrid, code::RadialSet, code::SparseGrid, and code::WindFieldLLGVolume.

code::SpaceTimeRef code::PolarGrid::getSpaceTimeRef (  )  const [inline, virtual]

Return a SpaceTimeRef that best corresponds to this DataType.

The Time component corresponds to the beginning of the TimeInterval during which this DataType is valid.

Implements code::DataType.

virtual short code::PolarGrid::getType (  )  const [inline, virtual]

Get enum type of this class.

Reimplemented from code::DataType.

std::string code::DataType::getTypeClassName (  )  const [inherited]

returns a string such as RadialSet, LatLonGrid, etc.

See the enum Type for all the possible options. Subclasses need only to over-ride getType()

const std::string& code::DataType::getTypeName (  )  const [inherited]

Return the TypeName of this DataType.

bool code::DataType::hasQuality (  )  const [inline, inherited]

void code::PolarGrid::incr ( size_t  i,
size_t  j,
const float &  incr_val 
) [inline]

deprecated alternative to grid[i][j] += incr_val

virtual void code::PolarGrid::invoke ( Algorithm alg  )  [inline, virtual]

Use this to invoke any algorithm.

Reimplemented from code::DataType.

float* code::PolarGrid::operator[] ( size_t  i  )  [inline]

const float* code::PolarGrid::operator[] ( size_t  i  )  const [inline]

SpaceTimeRef code::PolarGrid::reference ( int  i,
int  j 
) const

void code::PolarGrid::replace ( const float &  old_value,
const float &  new_value 
) [inline]

void code::PolarGrid::replace_1d ( size_t  row,
const std::vector< float > &  v 
) [inline]

Overwrite a 'row' of elements.

There must be as many new elements as before.

void code::PolarGrid::replace_1d ( size_t  row,
const float *  begin,
const float *  end 
) [inline]

Overwrite a 'row' of elements.

There must be as many new elements as before.

void code::PolarGrid::set_val ( size_t  i,
size_t  j,
const float &  new_value 
) [inline]

deprecated alternative to grid[i][j]

void code::DataType::setAttribute ( const std::string &  key,
SmartPtr< DataColumn value 
) [inherited]

Set a multiple-valued attribute that describes this DataType.

If value is 0 (i.e. invalid), this attribute will be removed from the map.

void code::DataType::setAttributeValue ( const std::string &  key,
double  value,
const std::string &  unit = "dimensionless",
const std::string &  format = "%g" 
) [inherited]

Set a single-valued attribute that describes this DataType.

This is a convenience function that allows you to set a dimensionless number as the value of an attribute.

If the attribute key does not already exist, then it will be constructed.

See also:
setAttribute() to set multiple values for an attribute.

void code::DataType::setAttributeValue ( const std::string &  key,
const std::string &  value,
const std::string &  unit = "dimensionless" 
) [inherited]

Set a single-valued attribute that describes this DataType.

This is a convenience function that allows you to set a text string as the value of an attribute.

If the attribute key does not already exist, then it will be constructed. The empty string may NOT be used as a value for the attribute; this function will return immediately if the value is the empty string.

See also:
setAttribute() to set multiple values for an attribute.

void code::PolarGrid::setElevation ( const code::Angle elev  )  [inline]

void code::PolarGrid::setImageData ( const code::Image< float > &  newdata  ) 

void code::DataType::setQuality ( SmartPtr< DataType dt  )  [inline, inherited]

void code::PolarGrid::setSpaceTimeRef ( const SpaceTimeRef stref  )  [inline]

void code::PolarGrid::setTime ( const Time t  )  [inline]

void code::DataType::setTypeName ( const std::string &   )  [inherited]

Set the TypeName of this DataType.

Coord code::PolarGrid::size (  )  const [inline]


Member Data Documentation

const std::string code::DataType::ColorMap [static, inherited]

const std::string code::DataType::ExpiryInterval [static, inherited]

const std::string code::DataType::IsTableData [static, inherited]

const std::string code::DataType::Unit [static, inherited]


Generated on Fri May 4 13:40:11 2012 for WDSS-IIw2 by  doxygen 1.4.7