154 enum XType { INVALID = -1, FLOAT,
DOUBLE, UINT8, INT8, INT32, INT64, TEXT };
176 Dimension(std::string name, std::vector<size_t> lengths)
191 _lengths.push_back(length);
204 size_t GetLength()
const {
return (_lengths.size() ? _lengths[0] : 0); };
211 size_t GetLength(
size_t index)
const {
return (index < _lengths.size() ? _lengths[index] : 0); };
223 std::vector<size_t> _lengths;
335 _max_nodes_per_face = 0;
336 _max_faces_per_node = 0;
337 _node_dim_name.clear();
338 _face_dim_name.clear();
339 _layers_dim_name.clear();
340 _face_node_var.clear();
341 _node_face_var.clear();
342 _face_edge_var.clear();
343 _face_face_var.clear();
344 _edge_dim_name.clear();
345 _edge_node_var.clear();
346 _edge_face_var.clear();
366 Mesh(std::string name, std::vector<string> dim_names, std::vector<string> coord_vars);
372 Mesh(std::string name,
size_t max_nodes_per_face,
size_t max_faces_per_node, std::string node_dim_name, std::string face_dim_name, std::vector<std::string> coord_vars,
373 std::string face_node_var, std::string node_face_var);
382 Mesh(std::string name,
size_t max_nodes_per_face,
size_t max_faces_per_node, std::string node_dim_name, std::string face_dim_name, std::string layers_dim_name,
383 std::vector<std::string> coord_vars, std::string face_node_var, std::string node_face_var);
392 Mesh(std::string name,
int max_nodes_per_face,
int max_faces_per_node, std::string node_dim_name, std::string face_dim_name, std::vector<string> coord_vars);
433 void SetCoordVars(std::vector<string> coord_vars) { _coord_vars = coord_vars; };
488 if (_mtype == STRUCTURED)
return;
489 _face_node_var = face_node_var;
499 if (_mtype == STRUCTURED)
return;
500 _node_face_var = node_face_var;
512 if (_mtype == STRUCTURED)
return;
513 _edge_dim_name = edge_dim_name;
536 if (_mtype == STRUCTURED)
return;
537 _edge_node_var = edge_node_var;
565 if (_mtype == STRUCTURED)
return;
566 _face_edge_var = face_edge_var;
594 if (_mtype == STRUCTURED)
return;
595 _face_face_var = face_face_var;
622 if (_mtype == STRUCTURED)
return;
623 _edge_face_var = edge_face_var;
654 std::vector<string> _dim_names;
655 std::vector<string> _coord_vars;
656 size_t _max_nodes_per_face;
657 size_t _max_faces_per_node;
658 string _node_dim_name;
659 string _face_dim_name;
660 string _layers_dim_name;
661 string _face_node_var;
662 string _node_face_var;
663 string _face_edge_var;
664 string _face_face_var;
665 string _edge_dim_name;
666 string _edge_node_var;
667 string _edge_face_var;
670 void _Mesh(
string name, std::vector<string> coord_vars,
int max_nodes_per_face,
int max_faces_per_node,
Type type);
747 std::vector<podunion> _values;
784 BaseVar(
string name,
string units,
XType type,
string wname, std::vector<size_t> cratios, std::vector<bool> periodic)
785 : _name(name), _units(units), _type(type), _wname(wname), _cratios(cratios), _periodic(periodic)
787 if (_cratios.size() == 0) _cratios.push_back(1);
808 BaseVar(
string name,
string units,
XType type, std::vector<bool> periodic);
834 std::vector<size_t>
GetCRatios()
const {
return (_cratios); };
839 if (_cratios.size() == 0) _cratios.push_back(1);
845 void SetPeriodic(std::vector<bool> periodic) { _periodic = periodic; };
849 const std::map<string, Attribute> &
GetAttributes()
const {
return (_atts); };
854 std::map<string, Attribute>::const_iterator itr = _atts.find(name);
855 if (itr == _atts.end())
return (
false);
873 std::vector<size_t> _cratios;
874 std::vector<bool> _periodic;
875 std::map<string, Attribute> _atts;
886 _time_dim_name.clear();
916 CoordVar(
string name,
string units,
XType type,
string wname, std::vector<size_t> cratios, std::vector<bool> periodic, std::vector<string> dim_names,
string time_dim_name,
int axis,
918 :
BaseVar(name, units, type, wname, cratios, periodic), _dim_names(dim_names), _time_dim_name(time_dim_name), _axis(axis), _uniform(uniform)
944 CoordVar(
string name,
string units,
XType type, std::vector<bool> periodic,
int axis,
bool uniform, std::vector<string> dim_names,
string time_dim_name)
945 :
BaseVar(name, units, type, periodic), _dim_names(dim_names), _time_dim_name(time_dim_name), _axis(axis), _uniform(uniform)
955 void SetDimNames(std::vector<string> dim_names) { _dim_names = dim_names; };
976 std::vector<string> _dim_names;
977 string _time_dim_name;
992 _time_coord_var.clear();
993 _location = Mesh::NODE;
995 _has_missing =
false;
996 _missing_value = 0.0;
1023 DataVar(
string name,
string units,
XType type,
string wname, std::vector<size_t> cratios, std::vector<bool> periodic,
string mesh,
string time_coord_var,
Mesh::Location location,
1024 double missing_value)
1025 :
BaseVar(name, units, type, wname, cratios, periodic), _mesh(mesh), _time_coord_var(time_coord_var), _location(location), _maskvar(
""), _has_missing(true), _missing_value(missing_value)
1058 DataVar(
string name,
string units,
XType type,
string wname, std::vector<size_t> cratios, std::vector<bool> periodic,
string mesh,
string time_coord_var,
Mesh::Location location,
1059 double missing_value,
string maskvar)
1060 :
BaseVar(name, units, type, wname, cratios, periodic), _mesh(mesh), _time_coord_var(time_coord_var), _location(location), _maskvar(maskvar), _has_missing(true), _missing_value(missing_value)
1087 DataVar(
string name,
string units,
XType type,
string wname, std::vector<size_t> cratios, std::vector<bool> periodic,
string mesh,
string time_coord_var,
Mesh::Location location)
1088 :
BaseVar(name, units, type, wname, cratios, periodic), _mesh(mesh), _time_coord_var(time_coord_var), _location(location), _maskvar(
""), _has_missing(false), _missing_value(0.0)
1115 DataVar(
string name,
string units,
XType type, std::vector<bool> periodic,
string mesh,
string time_coord_var,
Mesh::Location location,
double missing_value)
1116 :
BaseVar(name, units, type, periodic), _mesh(mesh), _time_coord_var(time_coord_var), _location(location), _maskvar(
""), _has_missing(true), _missing_value(missing_value)
1151 DataVar(
string name,
string units,
XType type, std::vector<bool> periodic,
string mesh,
string time_coord_var,
Mesh::Location location,
double missing_value,
string maskvar)
1152 :
BaseVar(name, units, type, periodic), _mesh(mesh), _time_coord_var(time_coord_var), _location(location), _maskvar(maskvar), _has_missing(true), _missing_value(missing_value)
1172 :
BaseVar(name, units, type, periodic), _mesh(mesh), _time_coord_var(time_coord_var), _location(location), _maskvar(
""), _has_missing(false), _missing_value(0.0)
1214 string _time_coord_var;
1218 double _missing_value;
1252 AuxVar(
string name,
string units,
XType type,
string wname, std::vector<size_t> cratios, std::vector<bool> periodic, std::vector<string> dim_names)
1253 :
BaseVar(name, units, type, wname, cratios, periodic), _dim_names(dim_names), _offset(0)
1262 void SetDimNames(std::vector<string> dim_names) { _dim_names = dim_names; };
1274 std::vector<string> _dim_names;
1302 virtual int Initialize(
const std::vector<string> &paths,
const std::vector<string> &options = std::vector<string>()) {
return (initialize(paths, options)); }
1329 virtual std::vector<string>
GetMeshNames()
const {
return (getMeshNames()); }
1340 virtual bool GetMesh(
string mesh_name,
DC::Mesh &mesh)
const {
return (getMesh(mesh_name, mesh)); }
1350 virtual bool GetMeshDimLens(
const string &mesh_name, std::vector<size_t> &dims,
long ts = -1)
const;
1360 virtual bool GetMeshDimNames(
const string &mesh_name, std::vector<string> &dimnames)
const;
1455 virtual size_t GetNumRefLevels(
string varname)
const {
return (getNumRefLevels(varname)); }
1476 virtual bool GetAtt(
string varname,
string attname, vector<double> &values)
const {
return (getAtt(varname, attname, values)); }
1478 virtual bool GetAtt(
string varname,
string attname, vector<long> &values)
const {
return (getAtt(varname, attname, values)); }
1480 virtual bool GetAtt(
string varname,
string attname,
string &values)
const {
return (getAtt(varname, attname, values)); }
1495 virtual std::vector<string>
GetAttNames(
string varname)
const {
return (getAttNames(varname)); }
1508 virtual XType GetAttType(
string varname,
string attname)
const {
return (getAttType(varname, attname)); }
1540 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
1542 return (getDimLensAtLevel(varname, level, dims_at_level, bs_at_level, ts));
1550 virtual int GetDimLens(
string varname, std::vector<size_t> &dims,
long ts = -1)
1552 vector<size_t> dummy;
1553 return (GetDimLensAtLevel(varname, -1, dims, dummy, ts));
1606 virtual int OpenVariableRead(
size_t ts,
string varname,
int level = 0,
int lod = 0) {
return (_openVariableRead(ts, varname, level, lod)); }
1634 int virtual Read(
int fd,
float *data) {
return (_readTemplate(fd, data)); }
1635 int virtual Read(
int fd,
double *data) {
return (_readTemplate(fd, data)); }
1636 int virtual Read(
int fd,
int *data) {
return (_readTemplate(fd, data)); }
1659 virtual int ReadSlice(
int fd,
float *slice) {
return (_readSliceTemplate(fd, slice)); }
1660 virtual int ReadSlice(
int fd,
double *slice) {
return (_readSliceTemplate(fd, slice)); }
1661 virtual int ReadSlice(
int fd,
int *slice) {
return (_readSliceTemplate(fd, slice)); }
1687 virtual int ReadRegion(
int fd,
const vector<size_t> &min,
const vector<size_t> &max,
float *region) {
return (readRegion(fd, min, max, region)); }
1688 virtual int ReadRegion(
int fd,
const vector<size_t> &min,
const vector<size_t> &max,
double *region) {
return (readRegion(fd, min, max, region)); }
1689 virtual int ReadRegion(
int fd,
const vector<size_t> &min,
const vector<size_t> &max,
int *region) {
return (readRegion(fd, min, max, region)); }
1716 virtual int GetVar(
string varname,
int level,
int lod,
float *data) {
return (_getVarTemplate(varname, level, lod, data)); }
1717 virtual int GetVar(
string varname,
int level,
int lod,
double *data) {
return (_getVarTemplate(varname, level, lod, data)); }
1718 virtual int GetVar(
string varname,
int level,
int lod,
int *data) {
return (_getVarTemplate(varname, level, lod, data)); }
1747 virtual int GetVar(
size_t ts,
string varname,
int level,
int lod,
float *data) {
return (_getVarTemplate(ts, varname, level, lod, data)); }
1748 virtual int GetVar(
size_t ts,
string varname,
int level,
int lod,
double *data) {
return (_getVarTemplate(ts, varname, level, lod, data)); }
1749 virtual int GetVar(
size_t ts,
string varname,
int level,
int lod,
int *data) {
return (_getVarTemplate(ts, varname, level, lod, data)); }
1764 virtual bool VariableExists(
size_t ts,
string varname,
int reflevel = 0,
int lod = 0)
const {
return (variableExists(ts, varname, reflevel, lod)); };
1779 virtual int GetHyperSliceInfo(
string varname,
int level, std::vector<size_t> &dims,
size_t &nslice,
long ts = -1);
1810 virtual bool GetVarDimensions(
string varname,
bool spatial, vector<DC::Dimension> &dimensions,
long ts)
const;
1830 virtual bool GetVarDimLens(
string varname,
bool spatial, vector<size_t> &dimlens,
long ts = -1)
const;
1848 virtual bool GetVarDimLens(
string varname, vector<size_t> &sdimlens,
size_t &time_dimlen,
long ts = -1)
const;
1867 virtual bool GetVarDimNames(
string varname,
bool spatial, vector<string> &dimnames)
const;
1886 virtual bool GetVarDimNames(
string varname, vector<string> &sdimnames,
string &time_dimname)
const;
1979 vector<string> names = GetDataVarNames();
1980 return (find(names.begin(), names.end(), varname) != names.end());
1993 vector<string> names = GetCoordVarNames();
1994 return (find(names.begin(), names.end(), varname) != names.end());
2008 vector<string> names = GetAuxVarNames();
2009 return (find(names.begin(), names.end(), varname) != names.end());
2030 virtual bool GetVarCoordVars(
string varname,
bool spatial, std::vector<string> &coord_vars)
const;
2039 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;
2067 FileObject() : _ts(0), _varname(
""), _level(0), _lod(0), _slice(0), _aux(0) {}
2069 FileObject(
size_t ts,
string varname,
int level = 0,
int lod = 0,
int aux = 0) : _ts(ts), _varname(varname), _level(level), _lod(lod), _slice(0), _aux(aux) {}
2094 std::vector<FileTable::FileObject *> _table;
2102 virtual int initialize(
const std::vector<string> &paths,
const std::vector<string> &options = std::vector<string>()) = 0;
2158 virtual bool getAtt(
string varname,
string attname, vector<double> &values)
const = 0;
2162 virtual bool getAtt(
string varname,
string attname, vector<long> &values)
const = 0;
2166 virtual bool getAtt(
string varname,
string attname,
string &values)
const = 0;
2182 virtual int getDimLensAtLevel(
string varname,
int level, std::vector<size_t> &dims_at_level, std::vector<size_t> &bs_at_level)
const = 0;
2186 virtual int getDimLensAtLevel(
string varname,
int level, std::vector<size_t> &dims_at_level, std::vector<size_t> &bs_at_level,
long ts)
const
2188 return getDimLensAtLevel(varname, level, dims_at_level, bs_at_level);
2205 virtual int readRegion(
int fd,
const vector<size_t> &min,
const vector<size_t> &max,
float *region) = 0;
2207 virtual int readRegion(
int fd,
const vector<size_t> &min,
const vector<size_t> &max,
double *region) = 0;
2209 virtual int readRegion(
int fd,
const vector<size_t> &min,
const vector<size_t> &max,
int *region) = 0;
2213 virtual bool variableExists(
size_t ts,
string varname,
int reflevel = 0,
int lod = 0)
const = 0;
2216 virtual bool _getCoordVarDimensions(
string varname,
bool spatial, vector<DC::Dimension> &dimensions,
long ts)
const;
2218 virtual bool _getDataVarDimensions(
string varname,
bool spatial, vector<DC::Dimension> &dimensions,
long ts)
const;
2220 virtual bool _getAuxVarDimensions(
string varname, vector<DC::Dimension> &dimensions,
long ts)
const;
2222 vector<size_t> _getBlockSize()
const;
2224 virtual int _openVariableRead(
size_t ts,
string varname,
int level = 0,
int lod = 0);
2226 virtual int _closeVariable(
int fd);
2228 template<
class T>
int _readSliceTemplate(
int fd, T *slice);
2230 template<
class T>
int _readTemplate(
int fd, T *data);
2232 template<
class T>
int _getVarTemplate(
string varname,
int level,
int lod, T *data);
2234 template<
class T>
int _getVarTemplate(
size_t ts,
string varname,
int level,
int lod, T *data);
Variable or global metadata.
void SetValues(const std::vector< double > &values)
Attribute(string name, XType type, const std::vector< double > &values)
void SetValues(const string &values)
VDF_API void GetValues(std::vector< double > &values) const
string GetName() const
Get attribute name.
VDF_API void GetValues(std::vector< int > &values) const
Attribute(string name, XType type, const std::vector< long > &values)
Attribute(string name, XType type)
void SetValues(const std::vector< long > &values)
VDF_API void GetValues(std::vector< float > &values) const
XType GetXType() const
Get an attribute's external representation type.
void SetValues(const std::vector< float > &values)
VDF_API void GetValues(string &values) const
VDF_API void GetValues(std::vector< long > &values) const
Attribute(string name, XType type, const std::vector< int > &values)
Attribute(string name, XType type, const string &values)
void SetValues(const std::vector< int > &values)
Attribute(string name, XType type, const std::vector< float > &values)
friend std::ostream & operator<<(std::ostream &o, const Attribute &attr)
Auxiliary variable metadata.
void SetDimNames(std::vector< string > dim_names)
void SetOffset(long offset)
AuxVar(string name, string units, XType type, string wname, std::vector< size_t > cratios, std::vector< bool > periodic, std::vector< string > dim_names)
VDF_API friend std::ostream & operator<<(std::ostream &o, const AuxVar &var)
std::vector< string > GetDimNames() const
Access Auxiliary variable dimension names.
Base class for storing variable metadata.
void SetWName(string wname)
void SetCRatios(std::vector< size_t > cratios)
bool GetAttribute(string name, Attribute &att) const
string GetUnits() const
Access variable units.
void SetAttributes(std::map< string, Attribute > &atts)
std::vector< size_t > GetCRatios() const
Access variable's compression ratios.
string GetWName() const
Access variable's wavelet family name.
XType GetXType() const
Access variable external storage type.
void SetXType(XType type)
void SetUnits(string units)
string GetName() const
Get variable name.
void SetName(string name)
friend std::ostream & operator<<(std::ostream &o, const BaseVar &var)
BaseVar(string name, string units, XType type, string wname, std::vector< size_t > cratios, std::vector< bool > periodic)
const std::map< string, Attribute > & GetAttributes() const
Access variable attributes.
void SetAttribute(const Attribute &att)
bool IsCompressed() const
Return true if no wavelet is defined.
std::vector< bool > GetPeriodic() const
void SetPeriodic(std::vector< bool > periodic)
BaseVar(string name, string units, XType type, std::vector< bool > periodic)
Coordinate variable metadata.
string GetTimeDimName() const
void SetDimNames(std::vector< string > dim_names)
void SetUniform(bool uniform)
friend std::ostream & operator<<(std::ostream &o, const CoordVar &var)
bool GetUniform() const
Access coordinate variable uniform sampling flag.
void SetTimeDimName(string time_dim_name)
std::vector< string > GetDimNames() const
CoordVar(string name, string units, XType type, string wname, std::vector< size_t > cratios, std::vector< bool > periodic, std::vector< string > dim_names, string time_dim_name, int axis, bool uniform)
int GetAxis() const
Access coordinate variable axis.
CoordVar(string name, string units, XType type, std::vector< bool > periodic, int axis, bool uniform, std::vector< string > dim_names, string time_dim_name)
DataVar(string name, string units, XType type, string wname, std::vector< size_t > cratios, std::vector< bool > periodic, string mesh, string time_coord_var, Mesh::Location location, double missing_value, string maskvar)
string GetMeshName() const
DataVar(string name, string units, XType type, std::vector< bool > periodic, string mesh, string time_coord_var, Mesh::Location location, double missing_value, string maskvar)
double GetMissingValue() const
Access data variable's missing data value.
void SetMissingValue(double missing_value)
void SetHasMissing(bool has_missing)
DataVar(string name, string units, XType type, string wname, std::vector< size_t > cratios, std::vector< bool > periodic, string mesh, string time_coord_var, Mesh::Location location)
Mesh::Location GetSamplingLocation() const
void SetMeshName(string mesh)
string GetTimeCoordVar() const
void SetTimeCoordVar(string time_coord_var)
DataVar(string name, string units, XType type, string wname, std::vector< size_t > cratios, std::vector< bool > periodic, string mesh, string time_coord_var, Mesh::Location location, double missing_value)
bool GetHasMissing() const
Access data variable's missing data flag.
string GetMaskvar() const
Access data variable's mask variable names.
void SetMaskvar(string maskvar)
DataVar(string name, string units, XType type, std::vector< bool > periodic, string mesh, string time_coord_var, Mesh::Location location, double missing_value)
VDF_API friend std::ostream & operator<<(std::ostream &o, const DataVar &var)
DataVar(string name, string units, XType type, std::vector< bool > periodic, string mesh, string time_coord_var, Mesh::Location location)
Metadata describing a named dimension length.
friend std::ostream & operator<<(std::ostream &o, const Dimension &dimension)
size_t GetLength(size_t index) const
bool IsTimeVarying() const
Dimension(std::string name, std::vector< size_t > lengths)
string GetName() const
Get dimension name.
Dimension(std::string name, size_t length)
FileObject(size_t ts, string varname, int level=0, int lod=0, int aux=0)
string GetVarname() const
vector< int > GetEntries() const
FileObject * GetEntry(int fd) const
int AddEntry(FileObject *obj)
Metadata describing a computational mesh.
size_t GetGeometryDim() const
std::vector< string > GetDimNames() const
void SetEdgeNodeVar(std::string edge_node_var)
Location
Location of sampled data variables within the mesh.
@ FACE
Samples located at mesh face centers.
@ NODE
Samples located at mesh nodes.
@ EDGE
Samples located at mesh edge centers.
string GetFaceDimName() const
std::string GetEdgeDimName() const
size_t GetTopologyDim() const
void SetEdgeFaceVar(std::string edge_face_var)
Mesh(std::string name, int max_nodes_per_face, int max_faces_per_node, std::string node_dim_name, std::string face_dim_name, std::vector< string > coord_vars)
void SetEdgeDimName(std::string edge_dim_name)
size_t GetMaxNodesPerFace() const
string GetLayersDimName() const
Mesh(std::string name, size_t max_nodes_per_face, size_t max_faces_per_node, std::string node_dim_name, std::string face_dim_name, std::vector< std::string > coord_vars, std::string face_node_var, std::string node_face_var)
std::vector< string > GetCoordVars() const
Mesh::Type GetMeshType() const
string GetName() const
Get mesh name.
@ UNSTRUC_2D
An unstructured mesh with 2D topology.
@ UNSTRUC_LAYERED
An unstructured layered mesh.
@ STRUCTURED
A structured mesh.
void SetFaceEdgeVar(std::string face_edge_var)
static string MakeMeshName(std::vector< string > s)
std::string GetFaceFaceVar() const
void SetFaceFaceVar(std::string face_face_var)
std::string GetEdgeFaceVar() const
void SetFaceNodeVar(std::string face_node_var)
Mesh(std::string name, size_t max_nodes_per_face, size_t max_faces_per_node, std::string node_dim_name, std::string face_dim_name, std::string layers_dim_name, std::vector< std::string > coord_vars, std::string face_node_var, std::string node_face_var)
string GetFaceNodeVar() const
std::string GetEdgeNodeVar() const
void SetNodeFaceVar(std::string node_face_var)
friend std::ostream & operator<<(std::ostream &o, const Mesh &mesh)
void SetCoordVars(std::vector< string > coord_vars)
string GetNodeFaceVar() const
size_t GetMaxFacesPerNode() const
string GetNodeDimName() const
std::string GetFaceEdgeVar() const
Mesh(std::string name, std::vector< string > dim_names, std::vector< string > coord_vars)
A Template Method design pattern for reading a collection of data.
virtual int OpenVariableRead(size_t ts, string varname, int level=0, int lod=0)
virtual int GetDimLens(string varname, std::vector< size_t > &dims, long ts=-1)
virtual int GetVar(string varname, int level, int lod, float *data)
XType
External storage types for primitive data.
virtual int ReadRegion(int fd, const vector< size_t > &min, const vector< size_t > &max, float *region)
virtual bool VariableExists(size_t ts, string varname, int reflevel=0, int lod=0) const
virtual int openVariableRead(size_t ts, string varname, int level=0, int lod=0)=0
virtual size_t GetNumDimensions(string varname) const
virtual bool variableExists(size_t ts, string varname, int reflevel=0, int lod=0) const =0
virtual int GetHyperSliceInfo(string varname, int level, std::vector< size_t > &dims, size_t &nslice, long ts=-1)
virtual int Read(int fd, double *data)
virtual int ReadSlice(int fd, int *slice)
virtual std::vector< string > GetDataVarNames(int ndim) const
virtual int Initialize(const std::vector< string > &paths, const std::vector< string > &options=std::vector< string >())
virtual bool IsTimeVarying(string varname) const
virtual XType GetAttType(string varname, string attname) const
virtual std::vector< string > GetDataVarNames() 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 std::vector< string > getAuxVarNames() const =0
virtual size_t getNumRefLevels(string varname) const =0
virtual bool IsDataVar(string varname) const
virtual bool GetVarCoordVars(string varname, bool spatial, std::vector< string > &coord_vars) const
virtual int readRegion(int fd, const vector< size_t > &min, const vector< size_t > &max, int *region)=0
virtual std::vector< size_t > GetCRatios(string varname) const
virtual bool GetAtt(string varname, string attname, vector< long > &values) const
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 std::vector< string > GetCoordVarNames() const
virtual bool GetBaseVarInfo(string varname, DC::BaseVar &var) const
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, float *region)=0
virtual bool IsCompressed(string varname) const
virtual XType getAttType(string varname, string attname) const =0
virtual bool GetCoordVarInfo(string varname, DC::CoordVar &cvar) const
virtual bool GetMeshDimNames(const string &mesh_name, std::vector< string > &dimnames) const
virtual bool getDataVarInfo(string varname, DC::DataVar &datavar) const =0
virtual bool getCoordVarInfo(string varname, DC::CoordVar &cvar) const =0
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 initialize(const std::vector< string > &paths, const std::vector< string > &options=std::vector< string >())=0
virtual int ReadSlice(int fd, double *slice)
virtual bool getMesh(string mesh_name, DC::Mesh &mesh) const =0
virtual bool IsCoordVar(string varname) const
virtual bool getBaseVarInfo(string varname, DC::BaseVar &var) const =0
virtual std::vector< string > getMeshNames() const =0
virtual bool GetDimension(string dimname, DC::Dimension &dimension, long ts) const
virtual std::vector< string > getDimensionNames() const =0
virtual int GetVar(size_t ts, string varname, int level, int lod, double *data)
virtual bool GetDataVarInfo(string varname, DC::DataVar &datavar) const
virtual size_t GetVarTopologyDim(string varname) const
virtual std::vector< string > getDataVarNames() const =0
virtual bool getAtt(string varname, string attname, string &values) const =0
virtual bool GetVarDimensions(string varname, bool spatial, vector< DC::Dimension > &dimensions, long ts) const
virtual string GetMapProjection() const
virtual bool GetVarDimLens(string varname, bool spatial, vector< size_t > &dimlens, long ts=-1) const
virtual size_t GetNumRefLevels(string varname) const
virtual std::vector< string > GetDimensionNames() const
virtual bool getAuxVarInfo(string varname, DC::AuxVar &var) const =0
virtual int closeVariable(int fd)=0
virtual bool GetMeshDimLens(const string &mesh_name, std::vector< size_t > &dims, long ts=-1) const
virtual bool IsAuxVar(string varname) const
virtual std::vector< string > getAttNames(string varname) const =0
virtual bool GetVarDimLens(string varname, vector< size_t > &sdimlens, size_t &time_dimlen, long ts=-1) const
virtual int GetNumTimeSteps(string varname) const
virtual bool getAtt(string varname, string attname, vector< double > &values) const =0
virtual int Read(int fd, float *data)
virtual int CloseVariable(int fd)
virtual bool getDimension(string dimname, DC::Dimension &dimension) const =0
std::vector< string > GetTimeCoordVarNames() const
virtual int ReadSlice(int fd, float *slice)
virtual int readRegion(int fd, const vector< size_t > &min, const vector< size_t > &max, double *region)=0
virtual bool GetVarDimNames(string varname, bool spatial, vector< string > &dimnames) const
virtual size_t GetVarGeometryDim(string varname) const
virtual bool getDimension(string dimname, DC::Dimension &dimension, long ts) const
virtual std::vector< string > GetMeshNames() const
virtual std::vector< string > GetAuxVarNames() const
virtual int GetVar(size_t ts, string varname, int level, int lod, int *data)
virtual int ReadRegion(int fd, const vector< size_t > &min, const vector< size_t > &max, int *region)
virtual std::vector< string > GetAttNames(string varname) const
virtual string getMapProjection() const =0
virtual vector< size_t > getBlockSize() const
virtual int GetVar(string varname, int level, int lod, int *data)
virtual bool GetVarDimNames(string varname, vector< string > &sdimnames, string &time_dimname) const
virtual bool GetAuxVarInfo(string varname, DC::AuxVar &var) const
virtual bool GetAtt(string varname, string attname, vector< double > &values) const
virtual int GetVar(string varname, int level, int lod, double *data)
virtual int GetVar(size_t ts, string varname, int level, int lod, float *data)
virtual int Read(int fd, int *data)
virtual bool GetMesh(string mesh_name, DC::Mesh &mesh) 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 bool GetAtt(string varname, string attname, string &values) const
virtual bool getAtt(string varname, string attname, vector< long > &values) const =0
virtual std::vector< string > getCoordVarNames() const =0