VAPoR
0.1
|
A cache based data reader. More...
#include <DataMgrGRIB.h>
Public Member Functions | |
DataMgrGRIB (const vector< string > &files, size_t mem_size) | |
virtual | ~DataMgrGRIB () |
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 |
RegularGrid * | GetGrid (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) |
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 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< double > | _GetTSZCoords (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 |
A cache based data reader.
Definition at line 20 of file DataMgrGRIB.h.
VAPoR::DataMgrGRIB::DataMgrGRIB | ( | const vector< string > & | files, |
size_t | mem_size | ||
) |
|
inlinevirtual |
Definition at line 30 of file DataMgrGRIB.h.
|
inlineprotectedvirtual |
Definition at line 135 of file DataMgrGRIB.h.
References VAPoR::DCReaderGRIB::Read().
|
inlineprotectedvirtual |
Close the currently opened variable.
Implements VAPoR::DataMgr.
Definition at line 141 of file DataMgrGRIB.h.
References VAPoR::DCReaderGRIB::CloseVariable().
|
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.
[in] | reflevel | Refinement level |
bs] | dim Transformed dimension. |
bs | A three element vector containing the voxel dimension of a data block |
Implements VAPoR::DataMgr.
Definition at line 43 of file DataMgrGRIB.h.
References VAPoR::DCReaderGRIB::GetGridDim().
|
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.
Reimplemented from VAPoR::DataMgr.
Definition at line 118 of file DataMgrGRIB.h.
|
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
[in] | reflevel | Refinement level of the variable |
[out] | dim | A three element vector (ordered X, Y, Z) containing the voxel dimensions of the data at the specified resolution. |
Implements VAPoR::DataMgr.
Definition at line 39 of file DataMgrGRIB.h.
References VAPoR::DCReaderGRIB::GetGridDim().
|
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.
[in] | ts | A 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. |
extents | A 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 DataMgrGRIB.h.
References VAPoR::DCReaderGRIB::GetExtents().
|
inlineprotectedvirtual |
Return a three-element integer array indicating the coordinate ordering permutation.
integer-vector |
Reimplemented from VAPoR::DataMgr.
Definition at line 87 of file DataMgrGRIB.h.
References VAPoR::DCReaderGRIB::GetGridPermutation().
|
inlineprotectedvirtual |
Return the grid type. One of regular, stretched, block_amr, or spherical
type |
Reimplemented from VAPoR::DataMgr.
Definition at line 51 of file DataMgrGRIB.h.
References VAPoR::DCReaderGRIB::GetGridType().
|
inlineprotectedvirtual |
Return the Proj4 map projection string.
value | An 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 63 of file DataMgrGRIB.h.
References VAPoR::DCReaderGRIB::GetMapProjection().
|
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
[out] | value | The missing data value. Undefined if no missing value is present. |
returns | true if missing data are present |
Reimplemented from VAPoR::DataMgr.
Definition at line 130 of file DataMgrGRIB.h.
References VAPoR::Metadata::GetMissingValue().
|
inlineprotectedvirtual |
Return the number of time steps in the data collection
value | The number of time steps |
Implements VAPoR::DataMgr.
Definition at line 59 of file DataMgrGRIB.h.
References VAPoR::DCReaderGRIB::GetNumTimeSteps().
|
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.
n | The number of coarsened data approximations available |
Implements VAPoR::DataMgr.
Definition at line 47 of file DataMgrGRIB.h.
|
inlineprotectedvirtual |
Return a three-element boolean array indicating if the X,Y,Z axes have periodic boundaries, respectively.
boolean-vector |
Implements VAPoR::DataMgr.
Definition at line 83 of file DataMgrGRIB.h.
References VAPoR::DCReaderGRIB::GetPeriodicBoundary().
|
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.
[in] | ts | A valid data set time step in the range from zero to GetNumTimeSteps() - 1. |
value | The user time at time step ts . If ts is outside the valid range zero is returned. |
Implements VAPoR::DataMgr.
Definition at line 91 of file DataMgrGRIB.h.
References VAPoR::DCReaderGRIB::GetTSUserTime().
|
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
[in] | ts | A valid data set time step in the range from zero to GetNumTimeSteps() - 1. |
[out] | s | A formated time string. If ts is outside the valid range zero the empty string is returned. |
Implements VAPoR::DataMgr.
Definition at line 95 of file DataMgrGRIB.h.
References VAPoR::DCReaderGRIB::GetTSUserTimeStamp().
|
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
.
[out] | min | A pointer to the minimum bounds of the subvolume |
[out] | max | A pointer to the maximum bounds of the subvolume |
[in] | reflevel | Refinement level of the variable. A value of -1 indicates the maximum refinment level defined for the VDC |
status | Returns a negative value if the volume is not opened for reading. |
Implements VAPoR::DataMgr.
Definition at line 122 of file DataMgrGRIB.h.
References VAPoR::DCReaderGRIB::GetGridDim().
|
inlineprotectedvirtual |
Return the names of the 2D, XY variables in the collection
value | is 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 71 of file DataMgrGRIB.h.
References VAPoR::DCReaderGRIB::GetVariables2DXY().
|
inlineprotectedvirtual |
Return the names of the 2D, XZ variables in the collection
value | is 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 75 of file DataMgrGRIB.h.
References VAPoR::DCReaderGRIB::GetVariables2DXZ().
|
inlineprotectedvirtual |
Return the names of the 2D, YZ variables in the collection
value | is 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 79 of file DataMgrGRIB.h.
References VAPoR::DCReaderGRIB::GetVariables2DYZ().
|
inlineprotectedvirtual |
value | is 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 67 of file DataMgrGRIB.h.
References VAPoR::DCReaderGRIB::GetVariables3D().
|
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.
[in] | timestep | Time step of the variable to read |
[in] | varname | Name of the variable to read |
[in] | reflevel | Refinement level of the variable. A value of -1 indicates the maximum refinment level defined for the VDC |
[in] | lod | Level of detail requested. A value of -1 indicates the lowest compression level available for the VDC |
Implements VAPoR::DataMgr.
Definition at line 109 of file DataMgrGRIB.h.
References VAPoR::DCReaderGRIB::OpenVariableRead().
|
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.
[in] | ts | A valid time step between 0 and GetNumTimesteps()-1 |
[in] | varname | A valid variable name |
[in] | reflevel | Refinement level requested. The coarsest refinement level is 0 (zero). A value of -1 indicates the finest refinement level contained in the VDC. |
[in] | lod | Compression 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 99 of file DataMgrGRIB.h.
References VAPoR::DCReaderGRIB::VariableExists().