code::CartesianGrid3D Class Reference

Inheritance diagram for code::CartesianGrid3D:

code::Data3D< T2, T3, T4, X > code::DataType List of all members.

Detailed Description

Store float data on an uniformly spaced and arbitrarily oriented grid that defines a 3-D cartesian coordinate system in euclidean 3-D space.

The origin is always located at a corner.

Time is constant across the grid.

See also:
Data3D

CrossSection

Author:
Lakshman
Version:
Author
lakshman
Date
2009/06/02 20:17:37
RCSfile
code_CartesianGrid3D.h,v


Public Types

typedef T2 Dim1Type
typedef T3 Dim2Type
typedef T4 Dim3Type
typedef X ValueType
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

 CartesianGrid3D (const SpaceTimeRef &, const Coord &, const Displacement &, const Displacement &, const Displacement &)
 Build an uninitialized CartesianGrid3D.
 CartesianGrid3D (const SpaceTimeRef &, const Coord &, const Length &, const Length &, const Length &)
 Build an uninitialized CartesianGrid3D.
virtual void invoke (Algorithm &)
 Have an Algorithm process this object.
const DimType & getGridSpacing () const
 Return the grid spacing.
const LocationgetOrigin () const
 Return the Location of the origin.
const TimegetTime () const
 Return the Time corresponding to this grid.
const DisplacementgetXAxis () const
 Return vector from origin to corner along first dimension.
const DisplacementgetYAxis () const
 Return vector from origin to corner along second dimension.
const DisplacementgetZAxis () const
 Return vector from origin to corner along third dimension.
virtual SpaceTimeRef reference (size_t i, size_t j, size_t k) const
 Return the reference corresponding to the grid point offset (i,j,k).
virtual DimType coord_value (size_t i, size_t j, size_t k) const
 Return the parametric displacement of grid point offset (i,j,k) from the origin (0,0,0).
const Coord & size () const
 Return number of grid points along each dimension.
virtual ~CartesianGrid3D ()
 Call descendant's destructor.
virtual SpaceTimeRef getSpaceTimeRef () const
 Returns the reference of the first element.
virtual double getRawValue (const Location &, bool=false) const
 Gets raw value from data set.
Data3D clone () const
 Creates a completely separate copy of the data.
const Data2D< T3, T4, X > & operator[] (size_t i) const
Data2D< T3, T4, X > & operator[] (size_t i)
X & cell_ref (size_t i, size_t j, size_t k)
 Deprecated alternative to data3d[i][j][k].
const X & cell_ref (size_t i, size_t j, size_t k) const
 Deprecated alternative to data3d[i][j][k].
void set_val (size_t i, size_t j, size_t k, const X &value)
 Deprecated alternative to data3d[i][j][k].
void get_1d_bounds (size_t i, size_t j, const X *setme_begin, const X *setme_end) const
void replace_1d (size_t i, size_t j, const X *begin, const X *end)
 Overwrite a 1d of elements.
void replace_1d (size_t i, size_t j, const std::vector< X > &v)
 Overwrite a 1d of elements.
void replace (const X &old_value, const X &new_value)
 Replace any instance of old_value with new_value.
void fill (const X &val)
void fill (const X &val, size_t i_begin, size_t i_end, size_t j_begin, size_t j_end, size_t k_begin, size_t k_end)
 Set the values in the table.
get_val (size_t i, size_t j, size_t k) const
 Return a copy of the specified element.
const std::vector< Data2D<
T3, T4, X > > & 
data () const
 Returns the internal vector of Data2D.
std::vector< Data2D< T3, T4,
X > > & 
data ()
 Returns the internal vector of Data2D.
Datum< X > data (size_t i, size_t j, size_t k) const
 Obtain the datum corresponding to the ith element.
size_t size_d () const
 Returns the number of 2Ds in this Data3D.
size_t size_d (size_t i) const
 Returns the number of 1Ds in the 2D in [i].
size_t size_d (size_t i, size_t j) const
 Returns the number of elements in the 1D in [i][j].
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.
virtual short getType () const
 Get enum type of this class.
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 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 ()

Public Attributes

InitSmartPtr< std::vector<
Data2D< T3, T4, X > > > 
vals
 The array of 2D types that is held.

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.

template<class T2, class T3, class T4, class X>
typedef T2 code::Data3D< T2, T3, T4, X >::Dim1Type [inherited]

template<class T2, class T3, class T4, class X>
typedef T3 code::Data3D< T2, T3, T4, X >::Dim2Type [inherited]

template<class T2, class T3, class T4, class X>
typedef T4 code::Data3D< T2, T3, T4, X >::Dim3Type [inherited]

template<class T2, class T3, class T4, class X>
typedef X code::Data3D< T2, T3, T4, X >::ValueType [inherited]


Member Enumeration Documentation

enum code::DataType::Type [inherited]

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


Constructor & Destructor Documentation

code::CartesianGrid3D::CartesianGrid3D ( const SpaceTimeRef ,
const Coord &  ,
const Displacement ,
const Displacement ,
const Displacement  
)

Build an uninitialized CartesianGrid3D.

Parameters:
const_SpaceTimeRef& Time for grid as a whole and Location of grid's origin corner.
const_Coord& Number of grid points along each dimension.
const_Displacement& Vector from origin to corner along first dimension (x-axis direction and length of side along x-direction).
const_Displacement& Vector from origin to corner along second dimension (y-axis direction and length of side along y-direction).
const_Displacement& Vector from origin to corner along third dimension (z-axis direction and length of side along z-direction).

code::CartesianGrid3D::CartesianGrid3D ( const SpaceTimeRef ,
const Coord &  ,
const Length ,
const Length ,
const Length  
)

Build an uninitialized CartesianGrid3D.

Consider the SpaceTimeRef to be a point on the surface of a sphere centered at the center of the earth. The CartesianGrid3D constructed here will be tangent to that sphere at that point. The CartesianGrid3D will be oriented so that its x-axis points east at the tangent point and so that its y-axis points north at the tangent point. The z-axis will be perpendicular to the x-y plane and pointed away from the earth's center. The origin will be located at the southwest bottom corner.

Parameters:
const_SpaceTimeRef& Time for grid as a whole and Location of grid's center. Note that this is the center of the grid in all three directions (x,y,z), so you may have to provide a height in the z-direction to avoid specifying a subterranean grid!
const_Coord& Number of grid points along each dimension.
const_Length& Size of grid along east-west direction at tangent point.
const_Length& Size of grid along north-south direction at tangent point.
const_Length& Size of grid along vertical direction at tangent point.

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

Call descendant's destructor.


Member Function Documentation

template<class T2, class T3, class T4, class X>
const X& code::Data3D< T2, T3, T4, X >::cell_ref ( size_t  i,
size_t  j,
size_t  k 
) const [inline, inherited]

Deprecated alternative to data3d[i][j][k].

template<class T2, class T3, class T4, class X>
X& code::Data3D< T2, T3, T4, X >::cell_ref ( size_t  i,
size_t  j,
size_t  k 
) [inline, inherited]

Deprecated alternative to data3d[i][j][k].

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

template<class T2, class T3, class T4, class X>
Data3D code::Data3D< T2, T3, T4, X >::clone (  )  const [inline, inherited]

Creates a completely separate copy of the data.

virtual DimType code::CartesianGrid3D::coord_value ( size_t  i,
size_t  j,
size_t  k 
) const [virtual]

Return the parametric displacement of grid point offset (i,j,k) from the origin (0,0,0).

Implementation of virtual function in Data3D.

Reimplemented from code::Data3D< T2, T3, T4, X >.

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.

template<class T2, class T3, class T4, class X>
Datum<X> code::Data3D< T2, T3, T4, X >::data ( size_t  i,
size_t  j,
size_t  k 
) const [inline, inherited]

Obtain the datum corresponding to the ith element.

template<class T2, class T3, class T4, class X>
std::vector< Data2D<T3,T4,X> >& code::Data3D< T2, T3, T4, X >::data (  )  [inline, inherited]

Returns the internal vector of Data2D.

Avoid using this if possible.

template<class T2, class T3, class T4, class X>
const std::vector< Data2D<T3,T4,X> >& code::Data3D< T2, T3, T4, X >::data (  )  const [inline, inherited]

Returns the internal vector of Data2D.

Avoid using this if possible.

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

template<class T2, class T3, class T4, class X>
void code::Data3D< T2, T3, T4, X >::fill ( const X &  val,
size_t  i_begin,
size_t  i_end,
size_t  j_begin,
size_t  j_end,
size_t  k_begin,
size_t  k_end 
) [inline, inherited]

Set the values in the table.

template<class T2, class T3, class T4, class X>
void code::Data3D< T2, T3, T4, X >::fill ( const X &  val  )  [inline, inherited]

template<class T2, class T3, class T4, class X>
void code::Data3D< T2, T3, T4, X >::get_1d_bounds ( size_t  i,
size_t  j,
const X *  setme_begin,
const X *  setme_end 
) const [inline, inherited]

template<class T2, class T3, class T4, class X>
X code::Data3D< T2, T3, T4, X >::get_val ( size_t  i,
size_t  j,
size_t  k 
) const [inline, inherited]

Return a copy of the specified element.

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.

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 DimType& code::CartesianGrid3D::getGridSpacing (  )  const

Return the grid spacing.

const Location& code::CartesianGrid3D::getOrigin (  )  const

Return the Location of the origin.

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

virtual double code::CartesianGrid3D::getRawValue ( const Location ,
bool  = false 
) const [virtual]

Gets raw value from data set.

Reimplemented from code::DataType.

virtual SpaceTimeRef code::CartesianGrid3D::getSpaceTimeRef (  )  const [virtual]

Returns the reference of the first element.

Reimplemented from code::Data3D< T2, T3, T4, X >.

const Time& code::CartesianGrid3D::getTime (  )  const

Return the Time corresponding to this grid.

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

Get enum type of this class.

Reimplemented in code::CartesianGrid2D, code::ContourData, code::DataTable, code::ElevationVolume, code::Grid2D, code::LatLonGrid, code::LatLonHeightGrid, code::PolarGrid, code::RadialSet, code::WindFieldLLGVolume, and code::WindFieldStruct< T >.

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.

const Displacement& code::CartesianGrid3D::getXAxis (  )  const

Return vector from origin to corner along first dimension.

const Displacement& code::CartesianGrid3D::getYAxis (  )  const

Return vector from origin to corner along second dimension.

const Displacement& code::CartesianGrid3D::getZAxis (  )  const

Return vector from origin to corner along third dimension.

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

virtual void code::CartesianGrid3D::invoke ( Algorithm  )  [virtual]

Have an Algorithm process this object.

Reimplemented from code::DataType.

template<class T2, class T3, class T4, class X>
Data2D<T3,T4,X>& code::Data3D< T2, T3, T4, X >::operator[] ( size_t  i  )  [inline, inherited]

template<class T2, class T3, class T4, class X>
const Data2D<T3,T4,X>& code::Data3D< T2, T3, T4, X >::operator[] ( size_t  i  )  const [inline, inherited]

virtual SpaceTimeRef code::CartesianGrid3D::reference ( size_t  i,
size_t  j,
size_t  k 
) const [virtual]

Return the reference corresponding to the grid point offset (i,j,k).

Implementation of virtual function in Data3D.

Reimplemented from code::Data3D< T2, T3, T4, X >.

template<class T2, class T3, class T4, class X>
void code::Data3D< T2, T3, T4, X >::replace ( const X &  old_value,
const X &  new_value 
) [inline, inherited]

Replace any instance of old_value with new_value.

template<class T2, class T3, class T4, class X>
void code::Data3D< T2, T3, T4, X >::replace_1d ( size_t  i,
size_t  j,
const std::vector< X > &  v 
) [inline, inherited]

Overwrite a 1d of elements.

The number of old and new elements must match.

template<class T2, class T3, class T4, class X>
void code::Data3D< T2, T3, T4, X >::replace_1d ( size_t  i,
size_t  j,
const X *  begin,
const X *  end 
) [inline, inherited]

Overwrite a 1d of elements.

The number of old and new elements must match.

template<class T2, class T3, class T4, class X>
void code::Data3D< T2, T3, T4, X >::set_val ( size_t  i,
size_t  j,
size_t  k,
const X &  value 
) [inline, inherited]

Deprecated alternative to data3d[i][j][k].

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::DataType::setQuality ( SmartPtr< DataType dt  )  [inline, inherited]

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

Set the TypeName of this DataType.

const Coord& code::CartesianGrid3D::size (  )  const

Return number of grid points along each dimension.

Reimplemented from code::Data3D< T2, T3, T4, X >.

template<class T2, class T3, class T4, class X>
size_t code::Data3D< T2, T3, T4, X >::size_d ( size_t  i,
size_t  j 
) const [inline, inherited]

Returns the number of elements in the 1D in [i][j].

template<class T2, class T3, class T4, class X>
size_t code::Data3D< T2, T3, T4, X >::size_d ( size_t  i  )  const [inline, inherited]

Returns the number of 1Ds in the 2D in [i].

template<class T2, class T3, class T4, class X>
size_t code::Data3D< T2, T3, T4, X >::size_d (  )  const [inline, inherited]

Returns the number of 2Ds in this Data3D.


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]

template<class T2, class T3, class T4, class X>
InitSmartPtr< std::vector< Data2D<T3,T4,X> > > code::Data3D< T2, T3, T4, X >::vals [inherited]

The array of 2D types that is held.

Use [] to dereference ...


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