VAPOR3 3.9.4
|
Class for reading a "Brick of Values", explained in section 3.1 (page 11) in the following VisIt document: https://github.com/NCAR/VAPOR/files/6341067/GettingDataIntoVisIt2.0.0.pdf. More...
#include <DCBOV.h>
Public Member Functions | |
DCBOV () | |
virtual | ~DCBOV () |
Public Member Functions inherited from VAPoR::DC | |
DC () | |
virtual | ~DC () |
virtual int | Initialize (const std::vector< string > &paths, const std::vector< string > &options=std::vector< string >()) |
virtual bool | GetDimension (string dimname, DC::Dimension &dimension, long ts) const |
virtual std::vector< string > | GetDimensionNames () const |
virtual std::vector< string > | GetMeshNames () const |
virtual bool | GetMesh (string mesh_name, DC::Mesh &mesh) const |
virtual bool | GetMeshDimLens (const string &mesh_name, std::vector< size_t > &dims, long ts=-1) const |
virtual bool | GetMeshDimNames (const string &mesh_name, std::vector< string > &dimnames) const |
virtual bool | GetCoordVarInfo (string varname, DC::CoordVar &cvar) const |
virtual bool | GetDataVarInfo (string varname, DC::DataVar &datavar) const |
virtual bool | GetAuxVarInfo (string varname, DC::AuxVar &var) const |
virtual bool | GetBaseVarInfo (string varname, DC::BaseVar &var) const |
virtual std::vector< string > | GetDataVarNames () const |
virtual std::vector< string > | GetCoordVarNames () const |
virtual std::vector< string > | GetAuxVarNames () const |
virtual size_t | GetNumRefLevels (string varname) const |
virtual bool | GetAtt (string varname, string attname, vector< double > &values) const |
virtual bool | GetAtt (string varname, string attname, vector< long > &values) const |
virtual bool | GetAtt (string varname, string attname, string &values) const |
virtual std::vector< string > | GetAttNames (string varname) const |
virtual XType | GetAttType (string varname, string attname) const |
virtual int | GetDimLensAtLevel (string varname, int level, std::vector< size_t > &dims_at_level, std::vector< size_t > &bs_at_level, long ts=-1) const |
virtual int | GetDimLens (string varname, std::vector< size_t > &dims, long ts=-1) |
virtual string | GetMapProjection () const |
virtual int | OpenVariableRead (size_t ts, string varname, int level=0, int lod=0) |
virtual int | CloseVariable (int fd) |
virtual int | Read (int fd, float *data) |
virtual int | Read (int fd, double *data) |
virtual int | Read (int fd, int *data) |
virtual int | ReadSlice (int fd, float *slice) |
virtual int | ReadSlice (int fd, double *slice) |
virtual int | ReadSlice (int fd, int *slice) |
virtual int | ReadRegion (int fd, const vector< size_t > &min, const vector< size_t > &max, float *region) |
virtual int | ReadRegion (int fd, const vector< size_t > &min, const vector< size_t > &max, double *region) |
virtual int | ReadRegion (int fd, const vector< size_t > &min, const vector< size_t > &max, int *region) |
virtual int | GetVar (string varname, int level, int lod, float *data) |
virtual int | GetVar (string varname, int level, int lod, double *data) |
virtual int | GetVar (string varname, int level, int lod, int *data) |
virtual int | GetVar (size_t ts, string varname, int level, int lod, float *data) |
virtual int | GetVar (size_t ts, string varname, int level, int lod, double *data) |
virtual int | GetVar (size_t ts, string varname, int level, int lod, int *data) |
virtual bool | VariableExists (size_t ts, string varname, int reflevel=0, int lod=0) const |
virtual int | GetHyperSliceInfo (string varname, int level, std::vector< size_t > &dims, size_t &nslice, long ts=-1) |
virtual std::vector< string > | GetDataVarNames (int ndim) const |
virtual bool | GetVarDimensions (string varname, bool spatial, vector< DC::Dimension > &dimensions, long ts) const |
virtual bool | GetVarDimLens (string varname, bool spatial, vector< size_t > &dimlens, long ts=-1) const |
virtual bool | GetVarDimLens (string varname, vector< size_t > &sdimlens, size_t &time_dimlen, long ts=-1) const |
virtual bool | GetVarDimNames (string varname, bool spatial, vector< string > &dimnames) const |
virtual bool | GetVarDimNames (string varname, vector< string > &sdimnames, string &time_dimname) const |
virtual size_t | GetVarTopologyDim (string varname) const |
virtual size_t | GetVarGeometryDim (string varname) const |
virtual bool | IsTimeVarying (string varname) const |
virtual bool | IsCompressed (string varname) const |
virtual int | GetNumTimeSteps (string varname) const |
virtual std::vector< size_t > | GetCRatios (string varname) const |
virtual bool | IsDataVar (string varname) const |
virtual bool | IsCoordVar (string varname) const |
virtual bool | IsAuxVar (string varname) const |
virtual bool | GetVarCoordVars (string varname, bool spatial, std::vector< string > &coord_vars) const |
bool | GetVarConnVars (string varname, string &face_node_var, string &node_face_var, string &face_edge_var, string &face_face_var, string &edge_node_var, string &edge_face_var) const |
virtual size_t | GetNumDimensions (string varname) const |
std::vector< string > | GetTimeCoordVarNames () const |
Public Member Functions inherited from Wasp::MyBase | |
MyBase () | |
const string & | getClassName () const |
Protected Member Functions | |
virtual int | initialize (const vector< string > &paths, const std::vector< string > &options) |
virtual bool | getDimension (string dimname, DC::Dimension &dimension) const |
virtual std::vector< string > | getDimensionNames () const |
std::vector< string > | getMeshNames () const |
virtual bool | getMesh (string mesh_name, DC::Mesh &mesh) const |
virtual bool | getCoordVarInfo (string varname, DC::CoordVar &cvar) const |
virtual bool | getDataVarInfo (string varname, DC::DataVar &datavar) const |
virtual bool | getAuxVarInfo (string varname, DC::AuxVar &var) const |
virtual bool | getBaseVarInfo (string varname, DC::BaseVar &var) const |
virtual std::vector< string > | getDataVarNames () const |
virtual std::vector< string > | getAuxVarNames () const |
virtual std::vector< string > | getCoordVarNames () const |
virtual size_t | getNumRefLevels (string varname) const |
virtual string | getMapProjection () const |
virtual bool | getAtt (string varname, string attname, vector< double > &values) const |
virtual bool | getAtt (string varname, string attname, vector< long > &values) const |
virtual bool | getAtt (string varname, string attname, string &values) const |
virtual std::vector< string > | getAttNames (string varname) const |
virtual XType | getAttType (string varname, string attname) const |
virtual int | getDimLensAtLevel (string varname, int level, std::vector< size_t > &dims_at_level, std::vector< size_t > &bs_at_level) const |
virtual int | openVariableRead (size_t ts, string varname, int, int) |
virtual int | openVariableRead (size_t ts, string varname) |
virtual int | closeVariable (int fd) |
virtual int | readRegion (int fd, const vector< size_t > &min, const vector< size_t > &max, float *region) |
virtual int | readRegion (int fd, const vector< size_t > &min, const vector< size_t > &max, double *region) |
virtual int | readRegion (int fd, const vector< size_t > &min, const vector< size_t > &max, int *region) |
virtual bool | variableExists (size_t ts, string varname, int reflevel=0, int lod=0) const |
Protected Member Functions inherited from VAPoR::DC | |
virtual int | initialize (const std::vector< string > &paths, const std::vector< string > &options=std::vector< string >())=0 |
virtual bool | getDimension (string dimname, DC::Dimension &dimension) const =0 |
virtual bool | getDimension (string dimname, DC::Dimension &dimension, long ts) const |
virtual std::vector< string > | getDimensionNames () const =0 |
virtual std::vector< string > | getMeshNames () const =0 |
virtual bool | getMesh (string mesh_name, DC::Mesh &mesh) const =0 |
virtual bool | getCoordVarInfo (string varname, DC::CoordVar &cvar) const =0 |
virtual bool | getDataVarInfo (string varname, DC::DataVar &datavar) const =0 |
virtual bool | getAuxVarInfo (string varname, DC::AuxVar &var) const =0 |
virtual bool | getBaseVarInfo (string varname, DC::BaseVar &var) const =0 |
virtual std::vector< string > | getDataVarNames () const =0 |
virtual std::vector< string > | getCoordVarNames () const =0 |
virtual std::vector< string > | getAuxVarNames () const =0 |
virtual size_t | getNumRefLevels (string varname) const =0 |
virtual bool | getAtt (string varname, string attname, vector< double > &values) const =0 |
virtual bool | getAtt (string varname, string attname, vector< long > &values) const =0 |
virtual bool | getAtt (string varname, string attname, string &values) const =0 |
virtual std::vector< string > | getAttNames (string varname) const =0 |
virtual XType | getAttType (string varname, string attname) const =0 |
virtual vector< size_t > | getBlockSize () const |
virtual int | getDimLensAtLevel (string varname, int level, std::vector< size_t > &dims_at_level, std::vector< size_t > &bs_at_level) const =0 |
virtual int | getDimLensAtLevel (string varname, int level, std::vector< size_t > &dims_at_level, std::vector< size_t > &bs_at_level, long ts) const |
virtual string | getMapProjection () const =0 |
virtual int | openVariableRead (size_t ts, string varname, int level=0, int lod=0)=0 |
virtual int | closeVariable (int fd)=0 |
virtual int | readRegion (int fd, const vector< size_t > &min, const vector< size_t > &max, float *region)=0 |
virtual int | readRegion (int fd, const vector< size_t > &min, const vector< size_t > &max, double *region)=0 |
virtual int | readRegion (int fd, const vector< size_t > &min, const vector< size_t > &max, int *region)=0 |
virtual bool | variableExists (size_t ts, string varname, int reflevel=0, int lod=0) const =0 |
Protected Member Functions inherited from Wasp::MyBase | |
void | SetClassName (const string &name) |
Additional Inherited Members | |
Public Types inherited from VAPoR::DC | |
enum | XType { INVALID = -1 , FLOAT , DOUBLE , UINT8 , INT8 , INT32 , INT64 , TEXT } |
External storage types for primitive data. More... | |
Public Types inherited from Wasp::MyBase | |
typedef void(* | ErrMsgCB_T) (const char *msg, int err_code) |
typedef void(* | DiagMsgCB_T) (const char *msg) |
Static Public Member Functions inherited from Wasp::MyBase | |
static void | SetErrMsg (const char *format,...) |
Record a formatted error message. | |
static void | SetErrMsg (int errcode, const char *format,...) |
Record a formatted error message and an error code. | |
static const char * | GetErrMsg () |
static void | SetErrCode (int err_code) |
Record an error code. | |
static int | GetErrCode () |
Retrieve the current error code. | |
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. | |
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 bool | GetEnableErrMsg () |
Static Public Attributes inherited from Wasp::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::DC | |
DC::FileTable | _fileTable |
Class for reading a "Brick of Values", explained in section 3.1 (page 11) in the following VisIt document: https://github.com/NCAR/VAPOR/files/6341067/GettingDataIntoVisIt2.0.0.pdf.
The following BOV tags are mandatory for Vapor to ingest data:
The following BOV tags are optional:
The following BOV tags are currently unsupported. They can be included in a BOV header, but they will be unused.
Each .bov file can only refer to a single data file for a single variable, at a single timestep. If duplicate key/value pairs exist in a BOV header, the value closest to the bottom of the file will be used. If duplicate values exist for whatever reason, all entries must be valid (except for DATA_FILE, which gets validated after parsing) Scientific notation is supported for floating point values like BRICK_ORIGIN and BRICK_SIZE. Scientific notation is not supported for integer values like DATA_SIZE. DATA_SIZE must contain three values greater than 1. Wild card characters are not currently supported in the DATA_FILE token. VARIABLE must be alphanumeric (abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_-)
VAPoR::DCBOV::DCBOV | ( | ) |
Class constuctor
|
virtual |
|
protectedvirtual |
Close the currently opened variable
Close the handle for variable opened with OpenVariableRead()
[in] | fd | A valid file descriptor returned by OpenVariableRead() |
Implements VAPoR::DC.
|
protectedvirtual |
Implements VAPoR::DC.
|
protectedvirtual |
Read an attribute
This method reads an attribute from the DC. The attribute can either be "global", if varname
is the empty string, or bound to a variable if varname
indentifies a variable in the DC.
[in] | varname | The name of the variable the attribute is bound to, or the empty string if the attribute is global |
[in] | attname | The attributes name |
[out] | type | The primitive data type storage format. This is the type that will be used to store the attribute on disk |
[out] | values | A vector to contain the returned floating point attribute values |
status | True is returned on success. False is returned if either the variable or the attribute is undefined. |
Implements VAPoR::DC.
|
protectedvirtual |
Implements VAPoR::DC.
|
protectedvirtual |
Return a list of available attribute's names
Returns a vector of all attribute names for the variable, varname
. If varname
is the empty string the names of all of the global attributes are returned. If varname
is not defined an empty vector is returned.
[in] | varname | The name of the variable to query, or the empty string if the names of global attributes are desired. |
attnames | A vector of returned attribute names |
Implements VAPoR::DC.
|
protectedvirtual |
Return the external data type for an attribute
Returns the external storage type of the named variable attribute.
[in] | varname | The name of the variable to query, or the empty string if the names of global attributes are desired. |
[in] | name | Name of the attribute. |
If | an attribute named by name does not exist, a negative value is returned. |
Implements VAPoR::DC.
|
inlineprotectedvirtual |
Return metadata about an auxiliary variable
If the variable varname
is defined as an auxiliary variable its metadata will be returned in var
.
bool | If the named variable cannot be found false is returned and the values of var are undefined. |
Implements VAPoR::DC.
|
inlineprotectedvirtual |
Return a list of names for all of the defined Auxiliary variables.
Returns a list of names for all Auxiliary variables defined
Implements VAPoR::DC.
|
protectedvirtual |
Return metadata about a data or coordinate variable
If the variable varname
is defined as either a data or coordinate variable its metadata will be returned in var
.
bool | If the named variable cannot be found false is returned and the values of var are undefined. |
Implements VAPoR::DC.
|
protectedvirtual |
Return a coordinate variable's definition
Return a reference to a DC::CoordVar object describing the coordinate variable named by varname
[in] | varname | A string specifying the name of the coordinate variable. |
[out] | coordvar | A CoordVar object containing the definition of the named variable. |
bool | False is returned if the named coordinate variable does not exist, and the contents of cvar will be undefined. |
Implements VAPoR::DC.
|
protectedvirtual |
Return a list of names for all of the defined coordinate variables.
Returns a list of names for all coordinate variables defined
Implements VAPoR::DC.
|
protectedvirtual |
Return a data variable's definition
Return a reference to a DC::DataVar object describing the data variable named by varname
[in] | varname | A string specifying the name of the variable. |
[out] | datavar | A DataVar object containing the definition of the named Data variable. |
bool | If the named data variable cannot be found false is returned and the values of datavar are undefined. |
Implements VAPoR::DC.
|
protectedvirtual |
Return a list of names for all of the defined data variables.
Returns a list of names for all data variables defined
Implements VAPoR::DC.
|
protectedvirtual |
Return a dimensions's definition
This method returns the definition of the dimension named by dimname
as a reference to a DC::Dimension object. If dimname
is not defined as a dimension then the name of dimension
will be the empty string()
[in] | dimname | A string specifying the name of the dimension. |
[out] | dimension | The returned Dimension object reference |
bool | If the named dimension can not be found false is returned. |
Implements VAPoR::DC.
|
protectedvirtual |
|
protectedvirtual |
Return a variable's array dimension lengths at a specified refinement level
Compressed variables may have a multi-resolution grid representation. This method returns the variable's ordered array dimension lengths, and block dimensions at the multiresolution refinement level specified by level
.
If the variable named by varname
is not compressed the variable's native dimensions are returned.
dims_at_level
will match that of bs_at_level
. If the data are not blocked the value of each element of bs_at_level
will be 1.[in] | varname | Data or coordinate variable name. |
[in] | level | Specifies a member of a multi-resolution variable's grid hierarchy as described above. |
[out] | dims_at_level | An ordered vector containing the variable's dimensions at the specified refinement level |
[out] | bs_at_level | An ordered vector containing the variable's block dimensions at the specified refinement level |
status | Zero is returned upon success, otherwise -1. |
Implements VAPoR::DC.
|
inlineprotectedvirtual |
Return default Proj4 map projection string.
For georeference data sets that have map projections this method returns the default properly formatted Proj4 projection string for mapping from geographic to cartographic coordinates. If no projection exists, an empty string is returned.
projstring | An empty string if a Proj4 map projection is not available for the named variable, otherwise a properly formatted Proj4 projection string is returned. |
Implements VAPoR::DC.
|
protectedvirtual |
Return a Mesh's definition
This method returns the definition of the mesh named by mesh_name
as a reference to a DC::Mesh object.
[in] | mesh_name | A string specifying the name of the Mesh. |
[out] | mesh | The returned Mesh object reference |
bool | If the named mesh can not be found false is returned. |
Implements VAPoR::DC.
|
protectedvirtual |
|
inlineprotectedvirtual |
Return a list of names for all of the defined coordinate variables.
Returns a list of names for all coordinate variables defined
Implements VAPoR::DC.
|
protectedvirtual |
Initialize the DCBOV class
Prepare a BOV data set for reading. This method prepares the DCBOV class for reading the files indicated by paths
. The method should be called immediately after the constructor, before any other class methods. This method exists only because C++ constructors can not return error codes.
[in] | path | A single BOV header file describing a the structore of a "Brick of raw IEEE floating point numbers stored in a file. a single CF model run. |
status | A negative int is returned on failure |
|
protectedvirtual |
|
inlineprotectedvirtual |
Open the named variable for reading
This method prepares a data or coordinate variable, indicated by a variable name and time step pair, for subsequent read operations by methods of this class. The value of the refinement levels parameter, level
, indicates the resolution of the volume in the multiresolution hierarchy as described by GetDimLensAtLevel().
The level-of-detail parameter, lod
, selects the approximation level. Valid values for lod
are integers in the range 0..n-1, where n is returned by DC::BaseVar::GetCRatios().size(), or the value -1 may be used to select the best approximation available.
An error occurs, indicated by a negative return value, if the volume identified by the {varname, timestep, level, lod} tupple is not available. Note the availability of a volume can be tested with the VariableExists() method.
[in] | ts | Time step of the variable to read. This is the integer offset into the variable's temporal dimension. If the variable does not have a temporal dimension ts is ignored. |
[in] | varname | Name of the variable to read |
[in] | level | Refinement level of the variable. Ignored if the variable is not compressed. |
[in] | lod | Approximation level of the variable. A value of -1 indicates the maximum approximation level defined for the DC. Ignored if the variable is not compressed. |
status | Returns a non-negative file descriptor on success |
Implements VAPoR::DC.
|
inlineprotectedvirtual |
|
inlineprotectedvirtual |
Read in and return a subregion from the currently opened variable
This method reads and returns a subset of variable data. The min
and max
vectors, whose dimensions must match the spatial rank of the currently opened variable, identify the minimum and maximum extents, in grid coordinates, of the subregion of interest. The minimum and maximum valid values of an element of min or max are 0 and n-1, respectively, where n is the length of the associated dimension at the opened refinement level.
The region returned is stored in the memory region pointed to by region
. It is the caller's responsbility to ensure adequate space is available.
[in] | fd | A valid file descriptor returned by OpenVariableRead() |
[in] | min | Minimum region extents in grid coordinates |
[in] | max | Maximum region extents in grid coordinates |
[out] | region | The requested volume subregion |
status | Returns a non-negative value on success |
Implements VAPoR::DC.
|
inlineprotectedvirtual |
|
protectedvirtual |
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 false if the variable is not available.
[in] | ts | A valid time step between 0 and GetNumTimesteps()-1 |
[in] | varname | A valid variable name |
[in] | reflevel | Refinement level requested. |
[in] | lod | Compression level of detail requested. refinement level contained in the DC. |
Implements VAPoR::DC.