VAPoR
0.1
|
??? More...
#include <DCReaderWRF.h>
Public Member Functions | |
DCReaderWRF (const std::vector< string > &files) | |
virtual | ~DCReaderWRF () |
virtual void | GetGridDim (size_t dim[3]) const |
void | GetBlockSize (size_t bs[3], int) const |
virtual string | GetGridType () const |
virtual std::vector< double > | GetExtents (size_t ts=0) const |
long | GetNumTimeSteps () const |
virtual string | GetMapProjection () const |
virtual std::vector< string > | GetVariables3D () const |
virtual std::vector< string > | GetVariables2DXY () const |
virtual std::vector< string > | GetVariables2DXZ () const |
virtual std::vector< string > | GetVariables2DYZ () const |
virtual std::vector< string > | GetVariables3DExcluded () const |
virtual std::vector< string > | GetVariables2DExcluded () const |
virtual std::vector< string > | GetCoordinateVariables () const |
virtual std::vector< long > | GetPeriodicBoundary () const |
virtual std::vector< long > | GetGridPermutation () const |
double | GetTSUserTime (size_t ts) const |
bool | GetMissingValue (string varname, float &value) const |
void | GetTSUserTimeStamp (size_t ts, string &s) const |
virtual bool | IsCoordinateVariable (string varname) const |
virtual int | OpenVariableRead (size_t timestep, string varname, int reflevel=0, int lod=0) |
virtual int | CloseVariable () |
virtual int | ReadSlice (float *slice) |
virtual int | Read (float *data) |
virtual bool | VariableExists (size_t ts, string varname, int i0=0, int i1=0) const |
void | EnableLegacyTimeConversion () |
virtual void | GetLatLonExtents (size_t ts, double lon_exts[2], double lat_exts[2]) const |
Public Member Functions inherited from VAPoR::DCReader | |
virtual | ~DCReader () |
Public Member Functions inherited from VAPoR::Metadata | |
Metadata () | |
virtual | ~Metadata () |
virtual int | GetNumTransforms () const |
virtual std::vector< size_t > | GetCRatios () const |
virtual std::string | GetCoordSystemType () const |
virtual std::vector< double > | GetTSXCoords (size_t ts) const |
virtual std::vector< double > | GetTSYCoords (size_t ts) const |
virtual std::vector< double > | GetTSZCoords (size_t ts) const |
virtual std::vector< std::string > | GetVariableNames () const |
virtual void | GetTSUserTimeStamp (size_t ts, std::string &s) const =0 |
virtual void | GetDim (size_t dim[3], int reflevel=0) const |
virtual void | GetDimBlk (size_t bdim[3], int reflevel=0) const |
virtual bool | GetMissingValue (std::string varname, float &value) const |
virtual void | MapVoxToBlk (const size_t vcoord[3], size_t bcoord[3], int reflevel=-1) const |
virtual void | MapVoxToUser (size_t timestep, const size_t vcoord0[3], double vcoord1[3], int ref_level=0) const |
void | MapUserToVox (size_t timestep, const double vcoord0[3], size_t vcoord1[3], int reflevel) const |
virtual VarType_T | GetVarType (const std::string &varname) const |
virtual int | IsValidRegion (const size_t min[3], const size_t max[3], int reflevel=0) const |
virtual int | IsValidRegionBlk (const size_t min[3], const size_t max[3], int reflevel=0) const |
virtual bool | IsCoordinateVariable (std::string varname) const |
Public Member Functions inherited from VetsUtil::MyBase | |
MyBase () | |
const string & | getClassName () const |
Additional Inherited Members | |
Public Types inherited from VAPoR::Metadata | |
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 Member Functions inherited from VetsUtil::MyBase | |
void | SetClassName (const string &name) |
Protected Attributes inherited from VAPoR::Metadata | |
bool | _deprecated_get_dim |
VAPoR::DCReaderWRF::DCReaderWRF | ( | const std::vector< string > & | files | ) |
|
virtual |
|
virtual |
Close the currently opened variable.
Implements VAPoR::DCReader.
Referenced by VAPoR::DataMgrWRF::_CloseVariable().
|
inline |
Definition at line 142 of file DCReaderWRF.h.
|
inlinevirtual |
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::Metadata.
Definition at line 43 of file DCReaderWRF.h.
References GetGridDim().
|
inlinevirtual |
Return the names of the coordinate variables.
This method returns a three-element vector naming the X, Y, and Z coordinate variables, respectively. The special name "NONE" indicates that a coordinate variable name does not exist for a particular dimension.
vector | is three-element vector of coordinate variable names. |
Reimplemented from VAPoR::Metadata.
Definition at line 92 of file DCReaderWRF.h.
|
virtual |
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::Metadata.
Referenced by VAPoR::DataMgrWRF::_GetExtents().
|
inlinevirtual |
Get the native dimension of a volume
Returns the X,Y,Z coordinate dimensions of all data variables in grid (voxel) coordinates full resolution.
[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 full resolution. |
Implements VAPoR::Metadata.
Definition at line 39 of file DCReaderWRF.h.
Referenced by VAPoR::DataMgrWRF::_GetBlockSize(), VAPoR::DataMgrWRF::_GetDim(), VAPoR::DataMgrWRF::_GetValidRegion(), and GetBlockSize().
|
inlinevirtual |
Return a three-element integer array indicating the coordinate ordering permutation.
integer-vector |
Implements VAPoR::Metadata.
Definition at line 108 of file DCReaderWRF.h.
Referenced by VAPoR::DataMgrWRF::_GetGridPermutation().
|
inlinevirtual |
Return the grid type. One of regular, stretched, block_amr, or spherical
type |
Reimplemented from VAPoR::Metadata.
Definition at line 47 of file DCReaderWRF.h.
Referenced by VAPoR::DataMgrWRF::_GetGridType().
|
inlinevirtual |
Return the Longitude and Latitude extents of the grid
This method returns the longitude extents (west-most and east-most) points, and the latitude extents (south-most and north-most) in degrees.
If the time step ts
is invalid, or if for any reason the extents can't be calculated, both lat and lon extents will be set to zero.
[in] | timestep | Time step of the grid |
[out] | lon_exts | A two-element array containing the west-most, and east-most points, in that order. Moreover, lon[0] <= lon[1] |
[out] | lat_exts | A two-element array containing the south-most, and north-most points, in that order. Moreover, lat[0] <= lat[1] |
Implements VAPoR::DCReader.
Definition at line 146 of file DCReaderWRF.h.
|
inlinevirtual |
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::Metadata.
Definition at line 57 of file DCReaderWRF.h.
Referenced by VAPoR::DataMgrWRF::_GetMapProjection().
|
inline |
Definition at line 116 of file DCReaderWRF.h.
Referenced by VAPoR::DataMgrWRF::_GetMissingValue().
|
inlinevirtual |
Return the number of time steps in the data collection
value | The number of time steps |
Implements VAPoR::Metadata.
Definition at line 53 of file DCReaderWRF.h.
Referenced by VAPoR::DataMgrWRF::_GetNumTimeSteps().
|
inlinevirtual |
Return a three-element boolean array indicating if the X,Y,Z axes have periodic boundaries, respectively.
boolean-vector |
Implements VAPoR::Metadata.
Definition at line 102 of file DCReaderWRF.h.
Referenced by VAPoR::DataMgrWRF::_GetPeriodicBoundary().
|
virtual |
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::Metadata.
Referenced by VAPoR::DataMgrWRF::_GetTSUserTime().
void VAPoR::DCReaderWRF::GetTSUserTimeStamp | ( | size_t | ts, |
string & | s | ||
) | const |
Referenced by VAPoR::DataMgrWRF::_GetTSUserTimeStamp().
|
inlinevirtual |
Implements VAPoR::DCReader.
Definition at line 82 of file DCReaderWRF.h.
|
inlinevirtual |
Return the names of the 2D, XY variables in the collection
value | is a vector of 2D XY variable names An emptry string is returned if no variables of this type are present |
Implements VAPoR::Metadata.
Definition at line 65 of file DCReaderWRF.h.
Referenced by VAPoR::DataMgrWRF::_GetVariables2DXY().
|
inlinevirtual |
Return the names of the 2D, XZ variables in the collection
value | is a vectort of 2D ZY variable names An emptry string is returned if no variables of this type are present |
Implements VAPoR::Metadata.
Definition at line 70 of file DCReaderWRF.h.
Referenced by VAPoR::DataMgrWRF::_GetVariables2DXZ().
|
inlinevirtual |
Return the names of the 2D, YZ variables in the collection
value | is a vector of 2D YZ variable names An emptry string is returned if no variables of this type are present |
Implements VAPoR::Metadata.
Definition at line 74 of file DCReaderWRF.h.
Referenced by VAPoR::DataMgrWRF::_GetVariables2DYZ().
|
inlinevirtual |
Return the names of the 3D variables in the collection
value | is a vector of 3D variable names. An emptry string is returned if no variables of this type are present |
Implements VAPoR::Metadata.
Definition at line 61 of file DCReaderWRF.h.
Referenced by VAPoR::DataMgrWRF::_GetVariables3D().
|
inlinevirtual |
Implements VAPoR::DCReader.
Definition at line 78 of file DCReaderWRF.h.
|
virtual |
|
virtual |
Open the named variable for reading
This method prepares a data volume (slice), indicated by a variable name and time step pair, for subsequent read operations by methods of this class. The number of the refinement levels parameter, reflevel
, indicates the resolution of the volume in the multiresolution hierarchy. The valid range of values for reflevel
is [0..max_refinement], where max_refinement
is the maximum refinement level of the data set: Metadata::GetNumTransforms(). A value of zero indicates the coarsest resolution data, a value of max_refinement
(or -1) indicates the finest resolution data. The level-of-detail parameter, lod
, selects the approximation level. Valid values for lod
are integers in the range 0..GetCRatios().size()-1, or the value -1 may be used to select the best approximation available: GetCRatios().size()-1.
An error occurs, indicated by a negative return value, if the volume identified by the {varname, timestep, reflevel, lod} tupple is not available. Note the availability of a volume can be tested 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 | Approximation level of the variable. A value of -1 indicates the maximum approximation level defined for the VDC |
status | Returns a non-negative value on success |
Implements VAPoR::DCReader.
Referenced by VAPoR::DataMgrWRF::_OpenVariableRead().
|
virtual |
Referenced by VAPoR::DataMgrWRF::_BlockReadRegion().
|
virtual |
Read the next volume slice from the currently opened file Read in and return a slice (2D array) of voxels from the currently opened data volume at the current refinement level. Subsequent calls will read successive slices until the entire volume has been read. It is the caller's responsibility to ensure that the array pointed to by slice
contains enough space to accomodate an NX by NY dimensioned slice, where NX is the dimesion of the volume along the X axis, specified in voxels, and NY is the Y axis dimension, as returned by GetDim().
[out] | slice | The requested volume slice |
status | Returns a non-negative value on success |
Implements VAPoR::DCReader.
|
inlinevirtual |
Return true if the named variable is available
This method returns true if the variable named by varname
is available in the data collection at the time step given by ts
, and the specified level-of-detail and resolution.. A variable may be contained in a data set, but not exist for all time steps, levels-of-detail, etc..
[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 | Approximation level of the variable. A value of -1 indicates the maximum approximation level defined for the VDC |
status | True if variable is present in the data collection |
Reimplemented from VAPoR::DCReader.
Definition at line 136 of file DCReaderWRF.h.
Referenced by VAPoR::DataMgrWRF::_VariableExists().