|
OPeNDAP Hyrax Back End Server (BES)
Updated for version 3.8.3
|
This class retrieves all information from an HDF5 file. More...
#include <HDF5CF.h>


Public Member Functions | |
| virtual void | Add_Supplement_Attrs (bool) throw (Exception) |
| Add supplemental attributes such as fullpath and original name. More... | |
| virtual void | Adjust_Dim_Name ()=0 |
| Adjust dimension names based on different products. More... | |
| virtual void | Adjust_Obj_Name ()=0 |
| Adjust object names based on different products. More... | |
| virtual void | Flatten_Obj_Name (bool) throw (Exception) |
| Flatten the object name. More... | |
| const vector< Attribute * > & | getAttributes () const |
| Public interface to obtain information of all attributes under the root group. More... | |
| const hid_t | getFileID () const |
| Obtain the HDF5 file ID. More... | |
| const vector< Group * > & | getGroups () const |
| Public interface to obtain all the group info. More... | |
| const string & | getPath () const |
| Obtain the path of the file. More... | |
| const vector< Var * > & | getVars () const |
| Public interface to obtain information of all variables. More... | |
| virtual void | Handle_Coor_Attr ()=0 |
| Handle "coordinates" attributes. More... | |
| virtual void | Handle_CVar ()=0 |
| Handle coordinate variables. More... | |
| virtual void | Handle_DimNameClashing ()=0 |
| Handle dimension name clashing. Since COARDS requires the change of cv names, So we need to handle dimension name clashing specially. More... | |
| virtual void | Handle_SpVar ()=0 |
| Handle special variables. More... | |
| virtual void | Handle_SpVar_Attr ()=0 |
| Handle special variable attributes. More... | |
| virtual void | Handle_Unsupported_Dspace () throw (Exception) |
| Handle unsupported HDF5 dataspaces for datasets. More... | |
| virtual void | Handle_Unsupported_Dtype (bool) throw (Exception) |
| Handle unsupported HDF5 datatypes. More... | |
| virtual void | Retrieve_H5_Info (const char *path, hid_t file_id, bool include_attr) throw (Exception) |
| Retrieve DDS information from the HDF5 file. The reason to separate reading DDS from DAS is: DAP needs to hold all values of attributes in the memory, building DDS doesn't need the attributes. So to reduce huge memory allocation for some HDF5 files, we separate the access of DAS from DDS although internally they still share common routines. More... | |
| virtual void | Retrieve_H5_Supported_Attr_Values () throw (Exception) |
| Retrieve attribute values for the supported HDF5 datatypes. More... | |
| virtual | ~File () |
Protected Member Functions | |
| void | Add_One_FakeDim_Name (Dimension *dim) throw (Exception) |
| void | Add_One_Float_Attr (Attribute *attr, const string &attrname, float float_value) throw (Exception) |
| void | Add_Str_Attr (Attribute *attr, const string &attrname, const string &strvalue) throw (Exception) |
| void | Adjust_Duplicate_FakeDim_Name (Dimension *dim) throw (Exception) |
| void | Change_Attr_One_Str_to_Others (Attribute *attr, Var *var) throw (Exception) |
| File (const char *path, hid_t file_id) | |
| virtual string | get_CF_string (string) |
| template<typename T > | |
| void | Handle_General_NameClashing (set< string > &objnameset, vector< T * > &objvec) throw (Exception) |
| void | Handle_GeneralObj_NameClashing (bool, set< string > &objnameset) throw (Exception) |
| void | Handle_Obj_AttrNameClashing () throw (Exception) |
| void | Handle_RootGroup_NameClashing (set< string > &objnameset) throw (Exception) |
| void | Handle_Var_NameClashing (set< string > &objnameset) throw (Exception) |
| void | Insert_One_NameSizeMap_Element (string name, hsize_t size) throw (Exception) |
| void | Insert_One_NameSizeMap_Element2 (map< string, hsize_t > &, string name, hsize_t size) throw (Exception) |
| virtual void | Replace_Var_Attrs (Var *src, Var *target) |
| virtual void | Replace_Var_Info (Var *src, Var *target) |
| void | Retrieve_H5_Attr_Info (Attribute *, hid_t obj_id, const int j, bool &unsup_attr_dtype) throw (Exception) |
| void | Retrieve_H5_Attr_Value (Attribute *attr, string) throw (Exception) |
| void | Retrieve_H5_Obj (hid_t grp_id, const char *gname, bool include_attr) throw (Exception) |
| void | Retrieve_H5_VarDim (Var *, hid_t dset_id, const string &varname, bool &unsup_var_dspace) throw (Exception) |
| void | Retrieve_H5_VarType (Var *, hid_t dset_id, const string &varname, bool &unsup_var_dtype) throw (Exception) |
Protected Attributes | |
| int | addeddimindex |
| map< string, hsize_t > | dimname_to_dimsize |
| set< string > | dimnamelist |
| map< hsize_t, string > | dimsize_to_fakedimname |
| Handle added dimension names. More... | |
| hid_t | fileid |
| vector< Group * > | groups |
| Non-root group vectors. More... | |
| string | path |
| vector< Attribute * > | root_attrs |
| Root attribute vectors. More... | |
| hid_t | rootid |
| bool | unsupported_attr_dtype |
| bool | unsupported_var_dspace |
| bool | unsupported_var_dtype |
| vector< Var * > | vars |
| Var vectors. More... | |
|
virtual |
|
inlineprotected |
Definition at line 1077 of file HDF5CF.cc.
References HDF5CFUtil::gen_unique_name(), throw2, and throw4.
Referenced by HDF5CF::GMFile::Add_Dim_Name_ACOS_L2S(), HDF5CF::GMFile::Add_Dim_Name_GPM(), HDF5CF::GMFile::Add_Dim_Name_Mea_Ozonel3z(), and HDF5CF::GMFile::Add_Dim_Name_SMAP().

|
protected | ||||||||||||||||||||||||
Definition at line 1177 of file HDF5CF.cc.
References H5FLOAT32.
Referenced by HDF5CF::GMFile::Add_Aqu_Attrs(), HDF5CF::GMFile::Add_GPM_Attrs(), and HDF5CF::GMFile::Add_SeaWiFS_Attrs().
|
protected | ||||||||||||||||||||||||
Definition at line 1163 of file HDF5CF.cc.
References H5FSTRING.
Referenced by HDF5CF::GMFile::Add_Aqu_Attrs(), HDF5CF::GMFile::Add_GPM_Attrs(), HDF5CF::GMFile::Handle_Coor_Attr(), HDF5CF::EOS5File::Handle_Coor_Attr(), HDF5CF::EOS5File::Handle_EOS5CVar_Unit_Attr(), and HDF5CF::GMFile::Handle_GPM_l1_Coor_Attr().
|
virtual | ||||||||||||||
Add supplemental attributes such as fullpath and original name.
Reimplemented in HDF5CF::EOS5File, and HDF5CF::GMFile.
Definition at line 1322 of file HDF5CF.cc.
Referenced by HDF5CF::GMFile::Add_Supplement_Attrs(), and HDF5CF::EOS5File::Add_Supplement_Attrs().
|
pure virtual |
Adjust dimension names based on different products.
Implemented in HDF5CF::EOS5File, and HDF5CF::GMFile.
Definition at line 1130 of file HDF5CF.cc.
References HDF5CFUtil::gen_unique_name(), and throw2.
Referenced by HDF5CF::GMFile::Add_Dim_Name_ACOS_L2S(), HDF5CF::GMFile::Add_Dim_Name_Mea_Ozonel3z(), and HDF5CF::GMFile::Add_Dim_Name_SMAP().

|
pure virtual |
Adjust object names based on different products.
Implemented in HDF5CF::EOS5File, and HDF5CF::GMFile.
|
virtual | ||||||||||||||
Flatten the object name.
Reimplemented in HDF5CF::EOS5File, and HDF5CF::GMFile.
Definition at line 866 of file HDF5CF.cc.
Referenced by HDF5CF::GMFile::Flatten_Obj_Name(), and HDF5CF::EOS5File::Flatten_Obj_Name().
|
protectedvirtual |
Reimplemented in HDF5CF::EOS5File, and HDF5CF::GMFile.
Definition at line 1026 of file HDF5CF.cc.
Referenced by HDF5CF::GMFile::get_CF_string(), and HDF5CF::EOS5File::get_CF_string().
|
inline |
Public interface to obtain information of all attributes under the root group.
Definition at line 578 of file HDF5CF.h.
References root_attrs.
Referenced by gen_eos5_cfdas(), and gen_gmh5_cfdas().
|
inline |
Obtain the HDF5 file ID.
Definition at line 559 of file HDF5CF.h.
References fileid.
Referenced by gen_eos5_cfdds(), and gen_gmh5_cfdds().
|
inline |
Public interface to obtain all the group info.
Definition at line 584 of file HDF5CF.h.
References groups.
Referenced by gen_eos5_cfdas(), and gen_gmh5_cfdas().
|
inline |
Obtain the path of the file.
Definition at line 566 of file HDF5CF.h.
References path.
Referenced by gen_eos5_cfdds(), and gen_gmh5_cfdds().
|
inline |
Public interface to obtain information of all variables.
Definition at line 572 of file HDF5CF.h.
References vars.
Referenced by gen_eos5_cfdas(), gen_eos5_cfdds(), gen_gmh5_cfdas(), and gen_gmh5_cfdds().
|
pure virtual |
Handle "coordinates" attributes.
Implemented in HDF5CF::EOS5File, and HDF5CF::GMFile.
|
pure virtual |
Handle coordinate variables.
Implemented in HDF5CF::EOS5File, and HDF5CF::GMFile.
|
pure virtual |
Handle dimension name clashing. Since COARDS requires the change of cv names, So we need to handle dimension name clashing specially.
Implemented in HDF5CF::EOS5File, and HDF5CF::GMFile.
|
protected | ||||||||||||||||||||
Definition at line 971 of file HDF5CF.cc.
References HDF5CFUtil::gen_unique_name().
Referenced by HDF5CF::EOS5File::Handle_EOS5CVar_AttrNameClashing(), HDF5CF::GMFile::Handle_GMCVar_AttrNameClashing(), HDF5CF::GMFile::Handle_GMSPVar_AttrNameClashing(), and Handle_Obj_AttrNameClashing().

|
protected | ||||||||||||||||||||
Definition at line 1016 of file HDF5CF.cc.
Referenced by HDF5CF::GMFile::Handle_Obj_NameClashing(), and HDF5CF::EOS5File::Handle_Obj_NameClashing().
|
protected | |||||||||||||
Definition at line 939 of file HDF5CF.cc.
References groups, Handle_General_NameClashing(), root_attrs, and vars.

|
protected | ||||||||||||||
Definition at line 911 of file HDF5CF.cc.
References HDF5CFUtil::gen_unique_name().

|
pure virtual |
Handle special variables.
Implemented in HDF5CF::EOS5File, and HDF5CF::GMFile.
|
pure virtual |
Handle special variable attributes.
Implemented in HDF5CF::EOS5File, and HDF5CF::GMFile.
|
virtual | |||||||||||||
Handle unsupported HDF5 dataspaces for datasets.
Reimplemented in HDF5CF::EOS5File, and HDF5CF::GMFile.
Definition at line 850 of file HDF5CF.cc.
References unsupported_var_dspace, and vars.
Referenced by HDF5CF::GMFile::Handle_Unsupported_Dspace(), and HDF5CF::EOS5File::Handle_Unsupported_Dspace().
|
virtual | ||||||||||||||
Handle unsupported HDF5 datatypes.
Reimplemented in HDF5CF::EOS5File, and HDF5CF::GMFile.
Definition at line 776 of file HDF5CF.cc.
References HDF5CFUtil::cf_strict_support_type().
Referenced by HDF5CF::GMFile::Handle_Unsupported_Dtype(), and HDF5CF::EOS5File::Handle_Unsupported_Dtype().

|
protected | ||||||||||||||
|
protected | ||||||||||||||||||||
Definition at line 1044 of file HDF5CF.cc.
References throw4.
Referenced by HDF5CF::GMFile::Add_Dim_Name_Dimscale_General_Product(), HDF5CF::GMFile::Add_Dim_Name_GPM(), HDF5CF::GMFile::Add_Dim_Name_Mea_Ozonel3z(), HDF5CF::GMFile::Add_Dim_Name_Mea_SeaWiFS(), HDF5CF::GMFile::Add_Dim_Name_SMAP(), and HDF5CF::GMFile::Handle_CVar_GPM_L1().
|
protected | ||||||||||||||||||||||||
Definition at line 1424 of file HDF5CF.cc.
References HDF5CF::Var::attrs, HDF5CF::Attribute::count, HDF5CF::Var::dims, HDF5CF::Attribute::dtype, HDF5CF::Attribute::fstrsize, HDF5CF::Attribute::name, HDF5CF::Attribute::newname, HDF5CF::Attribute::strsize, and HDF5CF::Attribute::value.
Referenced by HDF5CF::EOS5File::Replace_Var_Attrs().
Definition at line 1365 of file HDF5CF.cc.
References HDF5CF::Var::attrs, HDF5CF::Attribute::count, HDF5CF::Var::dims, HDF5CF::Attribute::dtype, HDF5CF::Var::dtype, HDF5CF::Attribute::fstrsize, HDF5CF::Var::fullpath, HDF5CF::Dimension::name, HDF5CF::Attribute::name, HDF5CF::Var::name, HDF5CF::Dimension::newname, HDF5CF::Attribute::newname, HDF5CF::Var::newname, HDF5CF::Var::rank, HDF5CF::Attribute::strsize, HDF5CF::Var::unsupported_attr_dtype, HDF5CF::Var::unsupported_dspace, and HDF5CF::Attribute::value.
Referenced by HDF5CF::EOS5File::Replace_Var_Info().
|
protected | ||||||||||||||||||||||||||||
Definition at line 461 of file HDF5CF.cc.
References HDF5CFUtil::cf_strict_support_type(), HDF5CFUtil::H5type_to_H5DAPtype(), NULL, throw1, and throw2.

|
protected | ||||||||||||||||||||
Definition at line 614 of file HDF5CF.cc.
References H5FSTRING, HDF5CFUtil::H5type_to_H5DAPtype(), H5VSTRING, NULL, throw2, throw4, and HDF5CFUtil::trim_string().
Referenced by HDF5CF::GMFile::Add_Aqu_Attrs(), HDF5CF::GMFile::Add_Dim_Name_GPM(), HDF5CF::EOS5File::Adjust_Attr_Value(), HDF5CF::EOS5File::Check_Aura_Product_Status(), HDF5CF::GMFile::Check_General_Product_Pattern(), HDF5CF::EOS5File::Handle_EOS5CVar_Special_Attr(), HDF5CF::EOS5File::Handle_EOS5CVar_Unit_Attr(), Retrieve_H5_Supported_Attr_Values(), HDF5CF::GMFile::Retrieve_H5_Supported_Attr_Values(), and HDF5CF::EOS5File::Retrieve_H5_Supported_Attr_Values().

|
virtual | ||||||||||||||||||||||||
Retrieve DDS information from the HDF5 file. The reason to separate reading DDS from DAS is: DAP needs to hold all values of attributes in the memory, building DDS doesn't need the attributes. So to reduce huge memory allocation for some HDF5 files, we separate the access of DAS from DDS although internally they still share common routines.
Reimplemented in HDF5CF::EOS5File, and HDF5CF::GMFile.
Definition at line 83 of file HDF5CF.cc.
References throw1.
Referenced by HDF5CF::GMFile::Retrieve_H5_Info(), and HDF5CF::EOS5File::Retrieve_H5_Info().
|
protected | ||||||||||||||||||||||||
Definition at line 131 of file HDF5CF.cc.
References HDF5CF::Var::attrs, HDF5CF::Group::attrs, HDF5CF::Var::fullpath, HDF5CF::Var::name, HDF5CF::Var::newname, HDF5CF::Group::newname, NULL, HDF5CF::Group::path, throw2, HDF5CF::Var::unsupported_attr_dtype, and HDF5CF::Group::unsupported_attr_dtype.
|
virtual | |||||||||||||
Retrieve attribute values for the supported HDF5 datatypes.
Reimplemented in HDF5CF::EOS5File, and HDF5CF::GMFile.
Definition at line 588 of file HDF5CF.cc.
References groups, Retrieve_H5_Attr_Value(), root_attrs, and vars.
Referenced by HDF5CF::GMFile::Retrieve_H5_Supported_Attr_Values(), and HDF5CF::EOS5File::Retrieve_H5_Supported_Attr_Values().

|
protected | ||||||||||||||||||||||||||||
Definition at line 334 of file HDF5CF.cc.
References HDF5CFUtil::cf_strict_support_type(), HDF5CFUtil::H5type_to_H5DAPtype(), and throw2.

|
protected |
Definition at line 653 of file HDF5CF.h.
Referenced by HDF5CF::GMFile::Add_Dim_Name_GPM(), HDF5CF::GMFile::Handle_CVar_GPM_L1(), and HDF5CF::GMFile::Handle_CVar_GPM_L3().
|
protected |
Definition at line 652 of file HDF5CF.h.
Referenced by HDF5CF::GMFile::Add_Dim_Name_Dimscale_General_Product(), HDF5CF::GMFile::Add_Dim_Name_GPM(), HDF5CF::GMFile::Add_Dim_Name_Mea_Ozonel3z(), HDF5CF::GMFile::Add_Dim_Name_Mea_SeaWiFS(), HDF5CF::GMFile::Add_Dim_Name_SMAP(), HDF5CF::GMFile::Handle_CVar_Dimscale_General_Product(), HDF5CF::GMFile::Handle_CVar_Mea_Ozone(), HDF5CF::GMFile::Handle_CVar_Mea_SeaWiFS(), and HDF5CF::GMFile::Handle_CVar_SMAP().
|
protected |
|
protected |
Definition at line 635 of file HDF5CF.h.
Referenced by getFileID(), and ~File().
|
protected |
Non-root group vectors.
Definition at line 645 of file HDF5CF.h.
Referenced by HDF5CF::GMFile::Add_Dim_Name_Mea_Ozonel3z(), HDF5CF::GMFile::Adjust_GPM_L3_Obj_Name(), HDF5CF::EOS5File::Check_Aura_Product_Status(), getGroups(), HDF5CF::EOS5File::Handle_EOS5CVar_Special_Attr(), Handle_Obj_AttrNameClashing(), Retrieve_H5_Supported_Attr_Values(), and ~File().
|
protected |
|
protected |
Root attribute vectors.
Definition at line 642 of file HDF5CF.h.
Referenced by HDF5CF::GMFile::Add_Aqu_Attrs(), getAttributes(), Handle_Obj_AttrNameClashing(), Retrieve_H5_Supported_Attr_Values(), and ~File().
|
protected |
|
protected |
Definition at line 650 of file HDF5CF.h.
Referenced by Handle_Unsupported_Dspace(), HDF5CF::GMFile::Handle_Unsupported_Dspace(), and HDF5CF::EOS5File::Handle_Unsupported_Dspace().
|
protected |
Var vectors.
Definition at line 639 of file HDF5CF.h.
Referenced by HDF5CF::GMFile::Add_Aqu_Attrs(), HDF5CF::GMFile::Add_Dim_Name(), HDF5CF::GMFile::Add_Dim_Name_ACOS_L2S(), HDF5CF::GMFile::Add_Dim_Name_Aqu_L3(), HDF5CF::GMFile::Add_Dim_Name_Dimscale_General_Product(), HDF5CF::GMFile::Add_Dim_Name_GPM(), HDF5CF::GMFile::Add_Dim_Name_Mea_Ozonel3z(), HDF5CF::GMFile::Add_Dim_Name_Mea_SeaWiFS(), HDF5CF::GMFile::Add_Dim_Name_SMAP(), HDF5CF::GMFile::Add_GPM_Attrs(), HDF5CF::GMFile::Add_SeaWiFS_Attrs(), HDF5CF::EOS5File::Adjust_Attr_Name(), HDF5CF::EOS5File::Adjust_Attr_Value(), HDF5CF::GMFile::Adjust_Dim_Name(), HDF5CF::EOS5File::Adjust_Dim_Name(), HDF5CF::GMFile::Adjust_GPM_L3_Obj_Name(), HDF5CF::GMFile::Adjust_Mea_Ozone_Obj_Name(), HDF5CF::GMFile::Adjust_Obj_Name(), HDF5CF::EOS5File::Adjust_SharedLatLon_Grid_Var_Dim_Name(), HDF5CF::EOS5File::Adjust_Var_Dim_NewName_Before_Flattening(), HDF5CF::EOS5File::Adjust_Var_NewName_After_Parsing(), HDF5CF::EOS5File::Check_Augmentation_Status(), HDF5CF::GMFile::Check_General_Product_Pattern(), getVars(), HDF5CF::GMFile::Handle_Coor_Attr(), HDF5CF::EOS5File::Handle_Coor_Attr(), HDF5CF::GMFile::Handle_CVar_Aqu_L3(), HDF5CF::GMFile::Handle_CVar_Dimscale_General_Product(), HDF5CF::GMFile::Handle_CVar_GPM_L1(), HDF5CF::GMFile::Handle_CVar_Mea_Ozone(), HDF5CF::GMFile::Handle_CVar_Mea_SeaWiFS(), HDF5CF::GMFile::Handle_CVar_OBPG_L3(), HDF5CF::GMFile::Handle_CVar_SMAP(), HDF5CF::GMFile::Handle_DimNameClashing(), HDF5CF::EOS5File::Handle_DimNameClashing(), HDF5CF::GMFile::Handle_GPM_l1_Coor_Attr(), Handle_Obj_AttrNameClashing(), HDF5CF::GMFile::Handle_SpVar(), HDF5CF::EOS5File::Handle_SpVar(), HDF5CF::GMFile::Handle_SpVar_ACOS(), Handle_Unsupported_Dspace(), HDF5CF::EOS5File::Remove_MultiDim_LatLon_EOS5CFGrid(), Retrieve_H5_Supported_Attr_Values(), and ~File().