VAPoR  0.1
Public Member Functions | Protected Member Functions | List of all members
VAPoR::DataMgrMOM Class Reference

A cache based data reader. More...

#include <DataMgrMOM.h>

Inheritance diagram for VAPoR::DataMgrMOM:
VAPoR::DataMgr VAPoR::DCReaderMOM VetsUtil::MyBase

Public Member Functions

 DataMgrMOM (const vector< string > &files, size_t mem_size)
 
virtual ~DataMgrMOM ()
 
- Public Member Functions inherited from VAPoR::DataMgr
 DataMgr (size_t mem_size)
 
virtual ~DataMgr ()
 
virtual void GetDim (size_t dim[3], int reflevel=0) const
 
int GetNumTransforms () const
 
virtual vector< size_t > GetCRatios () const
 
virtual string GetCoordSystemType () const
 
virtual string GetGridType () const
 
virtual vector< double > GetExtents (size_t ts=0)
 
virtual long GetNumTimeSteps () const
 
virtual string GetMapProjection () const
 
virtual vector< string > GetVariableNames () const
 
virtual vector< string > GetVariables3D () const
 
virtual vector< string > GetVariables2DXY () const
 
virtual vector< string > GetVariables2DXZ () const
 
virtual vector< string > GetVariables2DYZ () const
 
virtual vector< string > GetCoordinateVariables () const
 
virtual vector< long > GetPeriodicBoundary () const
 
virtual vector< long > GetGridPermutation () const
 
virtual double GetTSUserTime (size_t ts) const
 
virtual void GetTSUserTimeStamp (size_t ts, string &s) const
 
virtual RegularGridGetGrid (size_t ts, string varname, int reflevel, int lod, const size_t min[3], const size_t max[3], bool lock=false)
 
void UnlockGrid (const RegularGrid *rg)
 
int UnlockRegion (const float *)
 
void Clear ()
 
int GetDataRange (size_t ts, const char *varname, float range[2], int reflevel=0, int lod=0)
 
int GetValidRegion (size_t ts, const char *varname, int reflevel, size_t min[3], size_t max[3])
 
virtual int VariableExists (size_t ts, const char *varname, int reflevel=0, int lod=0)
 
bool BestMatch (size_t ts, const char *varname, int req_reflevel, int req_lod, int &reflevel, int &lod)
 
int NewPipeline (PipeLine *pipeline)
 
void RemovePipeline (string name)
 
bool IsVariableDerived (string varname) const
 
bool IsVariableNative (string varname) const
 
virtual VarType_T GetVarType (const string &varname) const
 
bool GetMissingValue (string varname, float &value) const
 
void PurgeVariable (string varname)
 
virtual void MapUserToVox (size_t timestep, const double vcoord0[3], size_t vcoord1[3], int reflevel=0, int lod=0)
 
virtual void MapVoxToUser (size_t timestep, const size_t vcoord0[3], double vcoord1[3], int ref_level=0, int lod=0)
 
virtual void GetEnclosingRegion (size_t ts, const double minu[3], const double maxu[3], size_t min[3], size_t max[3], int reflevel=0, int lod=0)
 
virtual bool IsCoordinateVariable (string varname) const
 
void PrintCache (std::ostream &o)
 
void SetInterpolationOrder (int order)
 
int GetInterpolationOrder () const
 
- Public Member Functions inherited from VetsUtil::MyBase
 MyBase ()
 
const string & getClassName () const
 

Protected Member Functions

virtual void _GetDim (size_t dim[3], int) const
 
virtual void _GetBlockSize (size_t bs[3], int reflevel) const
 
virtual int _GetNumTransforms () const
 
virtual string _GetGridType () const
 
virtual vector< double > _GetExtents (size_t) const
 
virtual vector< double > _GetTSZCoords (size_t ts) const
 
virtual long _GetNumTimeSteps () const
 
virtual string _GetMapProjection () const
 
virtual vector< string > _GetVariables3D () const
 
virtual vector< string > _GetVariables2DXY () const
 
virtual vector< string > _GetVariables2DXZ () const
 
virtual vector< string > _GetVariables2DYZ () const
 
virtual vector< long > _GetPeriodicBoundary () const
 
virtual vector< long > _GetGridPermutation () const
 
virtual double _GetTSUserTime (size_t ts) const
 
virtual void _GetTSUserTimeStamp (size_t ts, string &s) const
 
virtual int _VariableExists (size_t ts, const char *varname, int reflevel=0, int lod=0) const
 
virtual int _OpenVariableRead (size_t timestep, const char *varname, int, int)
 
virtual const float * _GetDataRange () const
 
virtual void _GetValidRegion (size_t min[3], size_t max[3], int) const
 
virtual bool _GetMissingValue (string varname, float &value) const
 
virtual int _BlockReadRegion (const size_t *, const size_t *, float *region)
 
virtual int _CloseVariable ()
 
- Protected Member Functions inherited from VAPoR::DataMgr
virtual vector< size_t > _GetCRatios () const
 
virtual string _GetCoordSystemType () const
 
virtual vector< double > _GetTSXCoords (size_t ts) const
 
virtual vector< double > _GetTSYCoords (size_t ts) const
 
virtual vector< string > _GetCoordinateVariables () const
 
virtual int _BlockReadRegion (const size_t bmin[3], const size_t bmax[3], float *region)=0
 
- Protected Member Functions inherited from VetsUtil::MyBase
void SetClassName (const string &name)
 

Additional Inherited Members

- Public Types inherited from VAPoR::DataMgr
enum  VarType_T {
  VARUNKNOWN = -1, VAR3D, VAR2D_XY, VAR2D_XZ,
  VAR2D_YZ
}
 
- Public Types inherited from VetsUtil::MyBase
typedef void(* ErrMsgCB_T) (const char *msg, int err_code)
 
typedef void(* DiagMsgCB_T) (const char *msg)
 
- Static Public Member Functions inherited from VetsUtil::MyBase
static void SetErrMsg (const char *format,...)
 Record a formatted error message. More...
 
static void SetErrMsg (int errcode, const char *format,...)
 Record a formatted error message and an error code. More...
 
static const char * GetErrMsg ()
 
static void SetErrCode (int err_code)
 Record an error code. More...
 
static int GetErrCode ()
 Retrieve the current error code. More...
 
static void SetErrMsgCB (ErrMsgCB_T cb)
 
static ErrMsgCB_T GetErrMsgCB ()
 
static void SetErrMsgFilePtr (FILE *fp)
 
static const FILE * SetErrMsgFilePtr ()
 
static void SetDiagMsg (const char *format,...)
 Record a formatted diagnostic message. More...
 
static const char * GetDiagMsg ()
 
static void SetDiagMsgCB (DiagMsgCB_T cb)
 
static DiagMsgCB_T GetDiagMsgCB ()
 
static void SetDiagMsgFilePtr (FILE *fp)
 
static bool EnableErrMsg (bool enable)
 
- Static Public Attributes inherited from VetsUtil::MyBase
static char * ErrMsg
 
static int ErrCode
 
static int ErrMsgSize
 
static FILE * ErrMsgFilePtr
 
static ErrMsgCB_T ErrMsgCB
 
static char * DiagMsg
 
static int DiagMsgSize
 
static FILE * DiagMsgFilePtr
 
static DiagMsgCB_T DiagMsgCB
 
static bool Enabled
 
- Protected Attributes inherited from VAPoR::DataMgr
const vector< string > emptyVec
 

Detailed Description

A cache based data reader.

Author
John Clyne
Version
$Revision$
Date
$Date$

Definition at line 20 of file DataMgrMOM.h.

Constructor & Destructor Documentation

VAPoR::DataMgrMOM::DataMgrMOM ( const vector< string > &  files,
size_t  mem_size 
)
virtual VAPoR::DataMgrMOM::~DataMgrMOM ( )
inlinevirtual

Definition at line 30 of file DataMgrMOM.h.

Member Function Documentation

virtual int VAPoR::DataMgrMOM::_BlockReadRegion ( const size_t *  ,
const size_t *  ,
float *  region 
)
inlineprotectedvirtual

Definition at line 140 of file DataMgrMOM.h.

References VAPoR::DCReaderMOM::Read().

virtual int VAPoR::DataMgrMOM::_CloseVariable ( )
inlineprotectedvirtual

Close the currently opened variable.

See also
_OpenVariableRead()

Implements VAPoR::DataMgr.

Definition at line 146 of file DataMgrMOM.h.

References VAPoR::DCReaderMOM::CloseVariable().

virtual void VAPoR::DataMgrMOM::_GetBlockSize ( size_t  bs[3],
int  reflevel 
) const
inlineprotectedvirtual

Return the internal blocking factor at a given refinement level

For multi-resolution data this method returns the dimensions of a data block at refinement level reflevel, where reflevel is in the range 0 to GetNumTransforms(). A value of -1 may be specified to indicate the maximum refinement level. In fact, any value outside the valid refinement level range will be treated as the maximum refinement level.

Parameters
[in]reflevelRefinement level

Implements VAPoR::DataMgr.

Definition at line 43 of file DataMgrMOM.h.

References VAPoR::DCReaderMOM::GetGridDim().

virtual const float* VAPoR::DataMgrMOM::_GetDataRange ( ) const
inlineprotectedvirtual

Return the data range for the currently open variable

The method returns the minimum and maximum data values, respectively, for the variable currently opened. If the variable is not opened, or if it is opened for writing, the results are undefined.

Returns
range A pointer to a two-element array containing the Min and Max data values, respectively. If the derived class' implementation of this method returns NULL, the DataMgr class will compute the min and max itself.

Reimplemented from VAPoR::DataMgr.

Definition at line 123 of file DataMgrMOM.h.

virtual void VAPoR::DataMgrMOM::_GetDim ( size_t  dim[3],
int  reflevel 
) const
inlineprotectedvirtual

Get the dimension of a volume

Returns the X,Y,Z coordinate dimensions of all data variables in grid (voxel) coordinates at the resolution level indicated by reflevel. Hence, all variables of a given type (3D or 2D) must have the same dimension. If reflevel is -1 (or the value returned by GetNumTransforms()) the native grid resolution is returned. In fact, any value outside the valid range is treated as the maximum refinement level

Parameters
[in]reflevelRefinement level of the variable
[out]dimA three element vector (ordered X, Y, Z) containing the voxel dimensions of the data at the specified resolution.
See also
GetNumTransforms()

Implements VAPoR::DataMgr.

Definition at line 39 of file DataMgrMOM.h.

References VAPoR::DCReaderMOM::GetGridDim().

virtual vector<double> VAPoR::DataMgrMOM::_GetExtents ( size_t  ts) const
inlineprotectedvirtual

Return the domain extents specified in user coordinates

Return the domain extents specified in user coordinates for the indicated time step. Variables in the data have spatial positions defined in a user coordinate system. These positions may vary with time. This method returns min and max bounds, in user coordinates, of all variables at a given time step.

Parameters
[in]tsA valid data set time step in the range from zero to GetNumTimeSteps() - 1. If ts is out of range, GetExtents() will return a reasonable default value.
Return values
extentsA six-element array containing the min and max bounds of the data domain in user-defined coordinates. The first three elements specify the minimum X, Y, and Z bounds, respectively, the second three elements specify the maximum bounds.

Implements VAPoR::DataMgr.

Definition at line 55 of file DataMgrMOM.h.

References VAPoR::DCReaderMOM::GetExtents().

virtual vector<long> VAPoR::DataMgrMOM::_GetGridPermutation ( ) const
inlineprotectedvirtual

Return a three-element integer array indicating the coordinate ordering permutation.

Return values
integer-vector

Reimplemented from VAPoR::DataMgr.

Definition at line 92 of file DataMgrMOM.h.

References VAPoR::DCReaderMOM::GetGridPermutation().

virtual string VAPoR::DataMgrMOM::_GetGridType ( ) const
inlineprotectedvirtual

Return the grid type. One of regular, stretched, block_amr, or spherical

Return values
type

Reimplemented from VAPoR::DataMgr.

Definition at line 51 of file DataMgrMOM.h.

References VAPoR::DCReaderMOM::GetGridType().

virtual string VAPoR::DataMgrMOM::_GetMapProjection ( ) const
inlineprotectedvirtual

Return the Proj4 map projection string.

Return values
valueAn empty string if a Proj4 map projection is not available, otherwise a properly formatted Proj4 projection string is returned.

Reimplemented from VAPoR::DataMgr.

Definition at line 68 of file DataMgrMOM.h.

References VAPoR::DCReaderMOM::GetMapProjection().

virtual bool VAPoR::DataMgrMOM::_GetMissingValue ( string  varname,
float &  value 
) const
inlineprotectedvirtual

Return the value of the missing data value

This method returns the value of the missing data value for the currently opened variable. If no missing data are present the method returns false

Parameters
[out]valueThe missing data value. Undefined if no missing value is present.
Return values
returnstrue if missing data are present

Reimplemented from VAPoR::DataMgr.

Definition at line 135 of file DataMgrMOM.h.

References VAPoR::DCReaderMOM::GetMissingValue().

virtual long VAPoR::DataMgrMOM::_GetNumTimeSteps ( ) const
inlineprotectedvirtual

Return the number of time steps in the data collection

Return values
valueThe number of time steps

Implements VAPoR::DataMgr.

Definition at line 64 of file DataMgrMOM.h.

References VAPoR::DCReaderMOM::GetNumTimeSteps().

virtual int VAPoR::DataMgrMOM::_GetNumTransforms ( ) const
inlineprotectedvirtual

Return number of transformations in hierarchy

For multi-resolution data this method returns the number of coarsened approximations present. If no approximations are available - if only the native data are present - the return value is 0.

Return values
nThe number of coarsened data approximations available

Implements VAPoR::DataMgr.

Definition at line 47 of file DataMgrMOM.h.

virtual vector<long> VAPoR::DataMgrMOM::_GetPeriodicBoundary ( ) const
inlineprotectedvirtual

Return a three-element boolean array indicating if the X,Y,Z axes have periodic boundaries, respectively.

Return values
boolean-vector

Implements VAPoR::DataMgr.

Definition at line 88 of file DataMgrMOM.h.

References VAPoR::DCReaderMOM::GetPeriodicBoundary().

virtual double VAPoR::DataMgrMOM::_GetTSUserTime ( size_t  ts) const
inlineprotectedvirtual

Return the time for a time step

This method returns the time, in user-defined coordinates, associated with the time step, ts. Variables such as velocity field components that are expressed in distance per units of time are expected to use the same time coordinates as the values returned by this mehtod.

Parameters
[in]tsA valid data set time step in the range from zero to GetNumTimeSteps() - 1.
Return values
valueThe user time at time step ts. If ts is outside the valid range zero is returned.

Implements VAPoR::DataMgr.

Definition at line 96 of file DataMgrMOM.h.

References VAPoR::DCReaderMOM::GetTSUserTime().

virtual void VAPoR::DataMgrMOM::_GetTSUserTimeStamp ( size_t  ts,
string &  s 
) const
inlineprotectedvirtual

Return the time for a time step

This method returns the user time, associated with the time step, ts, as a formatted string. The returned time stamp is intended to be used for annotation purposes

Parameters
[in]tsA valid data set time step in the range from zero to GetNumTimeSteps() - 1.
[out]sA formated time string. If ts is outside the valid range zero the empty string is returned.

Implements VAPoR::DataMgr.

Definition at line 100 of file DataMgrMOM.h.

References VAPoR::DCReaderMOM::GetTSUserTimeStamp().

virtual vector<double> VAPoR::DataMgrMOM::_GetTSZCoords ( size_t  ts) const
inlineprotectedvirtual

Return the Z dimension coordinate array, if it exists

Reimplemented from VAPoR::DataMgr.

Definition at line 59 of file DataMgrMOM.h.

References VAPoR::DCReaderMOM::GetTSZCoords().

virtual void VAPoR::DataMgrMOM::_GetValidRegion ( size_t  min[3],
size_t  max[3],
int  reflevel 
) const
inlineprotectedvirtual

Return the valid bounds of the currently opened region

The data model permits the storage of volume subregions. This method may be used to query the valid domain of the currently opened volume. Results are returned in voxel coordinates, relative to the refinement level indicated by reflevel.

Parameters
[out]minA pointer to the minimum bounds of the subvolume
[out]maxA pointer to the maximum bounds of the subvolume
[in]reflevelRefinement level of the variable. A value of -1 indicates the maximum refinment level defined for the VDC
Return values
statusReturns a negative value if the volume is not opened for reading.
See also
_OpenVariableRead()

Implements VAPoR::DataMgr.

Definition at line 127 of file DataMgrMOM.h.

References VAPoR::DCReaderMOM::GetGridDim().

virtual vector<string> VAPoR::DataMgrMOM::_GetVariables2DXY ( ) const
inlineprotectedvirtual

Return the names of the 2D, XY variables in the collection

Return values
valueis a space-separated list of 2D XY variable names An emptry string is returned if no variables of this type are present

Implements VAPoR::DataMgr.

Definition at line 76 of file DataMgrMOM.h.

References VAPoR::DCReaderMOM::GetVariables2DXY().

virtual vector<string> VAPoR::DataMgrMOM::_GetVariables2DXZ ( ) const
inlineprotectedvirtual

Return the names of the 2D, XZ variables in the collection

Return values
valueis a space-separated list of 2D ZY variable names An emptry string is returned if no variables of this type are present

Implements VAPoR::DataMgr.

Definition at line 80 of file DataMgrMOM.h.

References VAPoR::DCReaderMOM::GetVariables2DXZ().

virtual vector<string> VAPoR::DataMgrMOM::_GetVariables2DYZ ( ) const
inlineprotectedvirtual

Return the names of the 2D, YZ variables in the collection

Return values
valueis a space-separated list of 2D YZ variable names An emptry string is returned if no variables of this type are present

Implements VAPoR::DataMgr.

Definition at line 84 of file DataMgrMOM.h.

References VAPoR::DCReaderMOM::GetVariables2DYZ().

virtual vector<string> VAPoR::DataMgrMOM::_GetVariables3D ( ) const
inlineprotectedvirtual
Return values
valueis a space-separated list of 3D variable names. An emptry string is returned if no variables of this type are present

Implements VAPoR::DataMgr.

Definition at line 72 of file DataMgrMOM.h.

References VAPoR::DCReaderMOM::GetVariables3D().

virtual int VAPoR::DataMgrMOM::_OpenVariableRead ( size_t  timestep,
const char *  varname,
int  reflevel,
int  lod 
)
inlineprotectedvirtual

Open the named variable for reading

This method prepares the multi-resolution, multi-lod data volume, indicated by a variable name and time step pair, for subsequent read operations by methods of this class. Furthermore, the number of the refinement level parameter, reflevel indicates the resolution of the volume in the multiresolution hierarchy, and the lod parameter indicates the level of detail.

The valid range of values for reflevel is [0..max_refinement], where max_refinement is the maximum finement level of the data set: GetNumTransforms(). A value of zero indicates the coarsest resolution data, a value of max_refinement indicates the finest resolution data.

The valid range of values for lod is [0..max_lod], where max_lod is the maximum lod of the data set: GetCRatios().size() - 1. A value of zero indicates the highest compression ratio, a value of max_lod indicates the lowest compression ratio.

An error occurs, indicated by a negative return value, if the volume identified by the {varname, timestep, reflevel, lod} tupple is not present on disk. Note the presence of a volume can be tested for with the VariableExists() method.

Parameters
[in]timestepTime step of the variable to read
[in]varnameName of the variable to read
[in]reflevelRefinement level of the variable. A value of -1 indicates the maximum refinment level defined for the VDC
[in]lodLevel of detail requested. A value of -1 indicates the lowest compression level available for the VDC
See also
GetVariables3D(), GetVariables2DXY(), GetNumTransforms()

Implements VAPoR::DataMgr.

Definition at line 114 of file DataMgrMOM.h.

References VAPoR::DCReaderMOM::OpenVariableRead().

virtual int VAPoR::DataMgrMOM::_VariableExists ( size_t  ts,
const char *  varname,
int  reflevel = 0,
int  lod = 0 
) const
inlineprotectedvirtual

Returns true if indicated data volume is available

Returns true if the variable identified by the timestep, variable name, refinement level, and level-of-detail is present in the data set. Returns 0 if the variable is not present.

Parameters
[in]tsA valid time step between 0 and GetNumTimesteps()-1
[in]varnameA valid variable name
[in]reflevelRefinement level requested. The coarsest refinement level is 0 (zero). A value of -1 indicates the finest refinement level contained in the VDC.
[in]lodCompression level of detail requested. The coarsest approximation level is 0 (zero). A value of -1 indicates the finest refinement level contained in the VDC.

Implements VAPoR::DataMgr.

Definition at line 104 of file DataMgrMOM.h.

References VAPoR::DCReaderMOM::VariableExists().


The documentation for this class was generated from the following file: