bes  Updated for version 3.20.6
HDF5CF::GMFile Class Reference

This class is a derived class of File. It includes methods applied to general HDF5 files only. More...

#include <HDF5CF.h>

Collaboration diagram for HDF5CF::GMFile:
Collaboration graph

Public Member Functions

void Add_Dim_Name ()
 Add dimension name. More...
 
void Add_Supplement_Attrs (bool)
 Add supplemental attributes such as fullpath and original name for general NASA HDF5 products. More...
 
void Adjust_Dim_Name ()
 Adjust dimension name for general NASA HDF5 products. More...
 
void Adjust_H5_Attr_Value (Attribute *attr)
 Adjust attribute values for general HDF5 products. More...
 
void Adjust_Obj_Name ()
 Adjust object names based on different general NASA HDF5 products. More...
 
void Flatten_Obj_Name (bool include_attr)
 Flatten the object name for general NASA HDF5 products. More...
 
const std::string & Get_Ignored_Msg ()
 Get the message that contains the ignored obj. info. More...
 
bool Get_IgnoredInfo_Flag ()
 Obtain ignored info. flag. More...
 
const std::vector< Attribute * > & getAttributes () const
 Public interface to obtain information of all attributes under the root group. More...
 
const std::vector< GMCVar * > & getCVars () const
 
hid_t getFileID () const
 Obtain the HDF5 file ID. More...
 
const std::vector< Group * > & getGroups () const
 Public interface to obtain all the group info. More...
 
const std::string & getPath () const
 Obtain the path of the file. More...
 
H5GCFProduct getProductType () const
 
const std::vector< GMSPVar * > & getSPVars () const
 
const std::vector< Var * > & getVars () const
 Public interface to obtain information of all variables. More...
 
 GMFile (const char *path, hid_t file_id, H5GCFProduct product, GMPattern gproduct_pattern)
 
void Handle_Coor_Attr ()
 Handle "coordinates" attributes for general HDF5 products. More...
 
void Handle_CVar ()
 Handle coordinate variables for general NASA HDF5 products. More...
 
void Handle_DimNameClashing ()
 
template<class T >
void Handle_General_NameClashing (set< string > &objnameset, vector< T * > &objvec)
 
void Handle_Grid_Mapping_Vars ()
 Handle Grid Mapping Vars. More...
 
void Handle_Hybrid_EOS5 ()
 
void Handle_Obj_NameClashing (bool)
 Handle object name clashing for general NASA HDF5 products. More...
 
void Handle_SpVar ()
 Handle special variables for general NASA HDF5 products. More...
 
void Handle_SpVar_Attr ()
 Handle special variable attributes for general NASA HDF5 products. More...
 
void Handle_Unsupported_Dspace (bool)
 Handle unsupported HDF5 dataspaces for general HDF5 products. More...
 
void Handle_Unsupported_Dtype (bool)
 Handle unsupported HDF5 datatypes for general HDF5 products. More...
 
void Handle_Unsupported_Others (bool)
 Handle other unmapped objects/attributes for general HDF5 products. More...
 
bool Have_Grid_Mapping_Attrs ()
 Check if having Grid Mapping Attrs. More...
 
bool HaveUnlimitedDim () const
 Has unlimited dimensions. More...
 
bool Is_Hybrid_EOS5 ()
 
void Remove_Unneeded_Objects ()
 Remove unneeded objects. More...
 
void Remove_Unused_FakeDimVars ()
 Unsupported datatype array may generate FakeDim. Remove them. More...
 
void Rename_NC4_NonCoordVars ()
 Remove the _nc4_non_coord from the variable new names. More...
 
void Retrieve_H5_CVar_Supported_Attr_Values ()
 Retrieve coordinate variable attributes. More...
 
void Retrieve_H5_Info (const char *path, hid_t file_id, bool include_attr)
 Retrieve DDS information from the HDF5 file; real implementation for general HDF5 products. More...
 
void Retrieve_H5_Supported_Attr_Values ()
 Retrieve attribute values for the supported HDF5 datatypes for general HDF5 products. More...
 
virtual void Retrieve_H5_Var_Attr_Values (Var *var)
 Retrieve attribute values for a variable. More...
 
void Update_Product_Type ()
 Update "product type" attributes for general HDF5 products. More...
 

Protected Member Functions

void Add_Aqu_Attrs ()
 
void Add_Dim_Name_ACOS_L2S_OCO2_L1B ()
 
void Add_Dim_Name_Aqu_L3 ()
 
void Add_Dim_Name_Dimscale_General_Product ()
 
void Add_Dim_Name_General_Product ()
 
void Add_Dim_Name_GPM ()
 
void Add_Dim_Name_LatLon1D_Or_CoordAttr_General_Product ()
 
void Add_Dim_Name_LatLon2D_General_Product ()
 
void Add_Dim_Name_Mea_Ozonel3z ()
 
void Add_Dim_Name_Mea_SeaWiFS ()
 
void Add_Dim_Name_OBPG_L3 ()
 
void Add_Dim_Name_OSMAPL2S ()
 
void Add_GPM_Attrs ()
 
void add_ignored_droplongstr_hdr ()
 
void add_ignored_grp_longstr_info (const std::string &grp_path, const std::string &attr_name)
 
void add_ignored_info_attrs (bool is_grp, const std::string &obj_path, const std::string &attr_name)
 
void add_ignored_info_links (const std::string &link_name)
 
void add_ignored_info_links_header ()
 
void add_ignored_info_namedtypes (const std::string &, const std::string &)
 
void add_ignored_info_obj_header ()
 
void add_ignored_info_objs (bool is_dim_related, const std::string &obj_path)
 
void add_ignored_info_page_header ()
 
void add_ignored_var_longstr_info (Var *var, Attribute *attr)
 
void add_no_ignored_info ()
 
void Add_One_FakeDim_Name (Dimension *dim)
 
void Add_One_Float_Attr (Attribute *attr, const std::string &attrname, float float_value)
 
void Add_SeaWiFS_Attrs ()
 
void Add_Str_Attr (Attribute *attr, const std::string &attrname, const std::string &strvalue)
 
void Add_UseDimscale_Var_Dim_Names_General_Product (Var *, Attribute *)
 
void Add_UseDimscale_Var_Dim_Names_Mea_SeaWiFS_Ozone (Var *, Attribute *)
 
void Add_VarPath_In_Coordinates_Attr (Var *, const std::string &)
 
void Adjust_Duplicate_FakeDim_Name (Dimension *dim)
 
void Adjust_GPM_L3_Obj_Name ()
 
void Adjust_Mea_Ozone_Obj_Name ()
 
void Build_lat1D_latlon_candidate (Var *, const std::vector< Var * > &)
 
void Build_latg1D_latlon_candidate (Var *, const std::vector< Var * > &)
 
void Build_unique_latlon_candidate ()
 
void Change_Attr_One_Str_to_Others (Attribute *attr, Var *var)
 
bool Check_1DGeolocation_Dimscale ()
 
bool check_cv (std::string &varname)
 
bool Check_Dimscale_General_Product_Pattern ()
 
bool Check_DropLongStr (Var *var, Attribute *attr)
 
void Check_General_Product_Pattern ()
 
std::string Check_Grid_Mapping_FullPath (const std::string &attr_value)
 
std::string Check_Grid_Mapping_VarName (const std::string &attr_value, const std::string &var_full_path)
 
bool Check_LatLon1D_General_Product_Pattern ()
 
bool Check_LatLon1D_General_Product_Pattern_Name_Size (const std::string &latname, const std::string &lonname)
 
bool Check_LatLon2D_General_Product_Pattern ()
 
bool Check_LatLon2D_General_Product_Pattern_Name_Size (const std::string &latname, const std::string &lonname)
 
bool Check_LatLon_With_Coordinate_Attr_General_Product_Pattern ()
 
bool Check_Var_2D_CVars (Var *)
 
bool Check_VarDropLongStr (const std::string &varpath, const std::vector< Dimension * > &, H5DataType)
 
bool Coord_Match_LatLon_NameSize (const std::string &coord_values)
 
bool Coord_Match_LatLon_NameSize_Same_Group (const std::string &coord_values, const std::string &var_path)
 
void Correct_GPM_L1_LatLon_units (Var *var, const std::string unit_value)
 
void Create_Missing_CV (GMCVar *, const std::string &)
 
bool Flatten_VarPath_In_Coordinates_Attr (Var *)
 
void Gen_DimScale_VarAttr_Unsupported_Dtype_Info ()
 
void Gen_GM_VarAttr_Unsupported_Dtype_Info ()
 
void Gen_Group_Unsupported_Dtype_Info ()
 
void Gen_Unsupported_Dspace_Info ()
 
void Gen_Unsupported_Dtype_Info (bool)
 
void Gen_Var_Unsupported_Dtype_Info ()
 
void Gen_VarAttr_Unsupported_Dtype_Info ()
 
std::string get_CF_string (std::string s)
 
template<typename T >
void GMHandle_General_NameClashing (std::set< std::string > &objnameset, std::vector< T * > &objvec)
 
void Handle_CVar_Aqu_L3 ()
 
void Handle_CVar_Dimscale_General_Product ()
 
void Handle_CVar_GPM_L1 ()
 
void Handle_CVar_GPM_L3 ()
 
void Handle_CVar_LatLon1D_General_Product ()
 
void Handle_CVar_LatLon2D_General_Product ()
 
void Handle_CVar_LatLon_General_Product ()
 
void Handle_CVar_Mea_Ozone ()
 
void Handle_CVar_Mea_SeaWiFS ()
 
void Handle_CVar_OBPG_L3 ()
 
void Handle_CVar_OSMAPL2S ()
 
template<typename T >
void Handle_General_NameClashing (std::set< std::string > &objnameset, std::vector< T * > &objvec)
 
void Handle_GeneralObj_NameClashing (bool, std::set< std::string > &objnameset)
 
void Handle_GM_Unsupported_Dspace (bool)
 
void Handle_GM_Unsupported_Dtype (bool)
 
void Handle_GMCVar_AttrNameClashing ()
 
void Handle_GMCVar_NameClashing (std::set< std::string > &)
 
void Handle_GMSPVar_AttrNameClashing ()
 
void Handle_GMSPVar_NameClashing (std::set< std::string > &)
 
void Handle_GPM_l1_Coor_Attr ()
 
void Handle_Group_NameClashing (std::set< std::string > &objnameset)
 
void Handle_Group_Unsupported_Dtype ()
 
void Handle_GroupAttr_Unsupported_Dspace ()
 
void Handle_LatLon_With_CoordinateAttr_Coor_Attr ()
 
void Handle_Obj_AttrNameClashing ()
 
void Handle_SpVar_ACOS_OCO2 ()
 
void Handle_UseDimscale_Var_Dim_Names_General_Product (Var *)
 
void Handle_UseDimscale_Var_Dim_Names_Mea_SeaWiFS_Ozone (Var *)
 
void Handle_Var_NameClashing (std::set< std::string > &objnameset)
 
void Handle_Var_Unsupported_Dtype ()
 
void Handle_VarAttr_Unsupported_Dspace ()
 
void Handle_VarAttr_Unsupported_Dtype ()
 
bool has_latlon_cf_units (Attribute *attr, const std::string &varfullpath, bool is_lat)
 
bool ignored_dimscale_ref_list (Var *var)
 
void Insert_One_NameSizeMap_Element (std::string name, hsize_t size, bool unlimited)
 
void Insert_One_NameSizeMap_Element2 (std::map< std::string, hsize_t > &, std::map< std::string, bool > &, std::string name, hsize_t size, bool unlimited)
 
bool Is_geolatlon (const std::string &var_name, bool is_lat)
 
bool Is_netCDF_Dimension (Var *var)
 
bool Is_Str_Attr (Attribute *attr, std::string varfullpath, const std::string &attrname, const std::string &strvalue)
 
bool is_var_under_group (const std::string &varname, const std::string &grpname, const int var_rank, std::vector< size_t > &var_size)
 
void Obtain_1DLatLon_CVs (std::vector< GMCVar * > &cvar_1dlat, std::vector< GMCVar * > &cvar_1dlon)
 
void Obtain_2DLatLon_Vars (std::vector< Var * > &var_2dlat, std::vector< Var * > &var_2dlon, std::map< std::string, int > &latlon2d_path_to_index)
 
void Obtain_2DLLCVar_Candidate (std::vector< Var * > &var_2dlat, std::vector< Var * > &var_2dlon, std::map< std::string, int > &latlon2d_path_to_index)
 
void Obtain_2DLLVars_With_Dims_not_1DLLCVars (std::vector< Var * > &var_2dlat, std::vector< Var * > &var_2dlon, std::vector< GMCVar * > &cvar_1dlat, std::vector< GMCVar * > &cvar_1dlon, std::map< std::string, int > &latlon2d_path_to_index)
 
void Obtain_unique_2dCV (std::vector< Var * > &, std::map< std::string, int > &)
 
void release_standalone_GMCVar_vector (std::vector< GMCVar * > &tempgc_vars)
 
void release_standalone_var_vector (std::vector< Var * > &vars)
 
void Remove_2DLLCVar_Final_Candidate_from_Vars (std::vector< int > &)
 
bool Remove_EOS5_Strings (std::string &)
 
bool Remove_EOS5_Strings_NonEOS_Fields (std::string &)
 
void remove_netCDF_internal_attributes (bool include_attr)
 
void Remove_OMPSNPP_InputPointers ()
 
virtual void Replace_Var_Attrs (Var *src, Var *target)
 
virtual void Replace_Var_Info (Var *src, Var *target)
 
void Replace_Var_Str_Attr (Var *var, const std::string &attr_name, const std::string &strvalue)
 
void Retrieve_H5_Attr_Info (Attribute *, hid_t obj_id, const int j, bool &unsup_attr_dtype, bool &unsup_attr_dspace)
 
void Retrieve_H5_Attr_Value (Attribute *attr, std::string)
 
void Retrieve_H5_Obj (hid_t grp_id, const char *gname, bool include_attr)
 
float Retrieve_H5_VarCompRatio (Var *, hid_t)
 
void Retrieve_H5_VarDim (Var *, hid_t dset_id, const std::string &varname, bool &unsup_var_dspace)
 
void Retrieve_H5_VarType (Var *, hid_t dset_id, const std::string &varname, bool &unsup_var_dtype)
 
std::string Retrieve_Str_Attr_Value (Attribute *attr, const std::string var_path)
 
void Update_M2DLatLon_Dimscale_CVs ()
 

Protected Attributes

int addeddimindex
 
bool check_ignored
 
std::map< std::string, hsize_t > dimname_to_dimsize
 
std::map< std::string, bool > dimname_to_unlimited
 
std::set< std::string > dimnamelist
 
std::map< hsize_t, std::string > dimsize_to_fakedimname
 Handle added dimension names. More...
 
hid_t fileid
 
std::vector< Group * > groups
 Non-root group vectors. More...
 
bool have_ignored
 
bool have_udim
 
std::string ignored_msg
 
std::string path
 
std::vector< Attribute * > root_attrs
 Root attribute vectors. More...
 
hid_t rootid
 
bool unsupported_attr_dspace
 
bool unsupported_attr_dtype
 
bool unsupported_var_attr_dspace
 
bool unsupported_var_dspace
 
bool unsupported_var_dtype
 
std::vector< Var * > vars
 Var vectors. More...
 

Detailed Description

This class is a derived class of File. It includes methods applied to general HDF5 files only.

Definition at line 821 of file HDF5CF.h.

Member Function Documentation

◆ Add_Dim_Name()

void GMFile::Add_Dim_Name ( )

Add dimension name.

Definition at line 803 of file HDF5GMCF.cc.

◆ Add_Supplement_Attrs()

void GMFile::Add_Supplement_Attrs ( bool  add_path)
virtual

Add supplemental attributes such as fullpath and original name for general NASA HDF5 products.

Reimplemented from HDF5CF::File.

Definition at line 5105 of file HDF5GMCF.cc.

◆ Adjust_Dim_Name()

void GMFile::Adjust_Dim_Name ( )
virtual

Adjust dimension name for general NASA HDF5 products.

Implements HDF5CF::File.

Definition at line 5043 of file HDF5GMCF.cc.

◆ Adjust_H5_Attr_Value()

void GMFile::Adjust_H5_Attr_Value ( Attribute attr)

Adjust attribute values for general HDF5 products.

Definition at line 366 of file HDF5GMCF.cc.

◆ Adjust_Obj_Name()

void GMFile::Adjust_Obj_Name ( )
virtual

Adjust object names based on different general NASA HDF5 products.

Implements HDF5CF::File.

Definition at line 4730 of file HDF5GMCF.cc.

◆ Flatten_Obj_Name()

void GMFile::Flatten_Obj_Name ( bool  include_attr)
virtual

Flatten the object name for general NASA HDF5 products.

Reimplemented from HDF5CF::File.

Definition at line 4815 of file HDF5GMCF.cc.

◆ Get_Ignored_Msg()

const std::string& HDF5CF::GMFile::Get_Ignored_Msg ( )
inlinevirtual

Get the message that contains the ignored obj. info.

Implements HDF5CF::File.

Definition at line 922 of file HDF5CF.h.

◆ Get_IgnoredInfo_Flag()

bool HDF5CF::GMFile::Get_IgnoredInfo_Flag ( )
inlinevirtual

Obtain ignored info. flag.

Implements HDF5CF::File.

Definition at line 916 of file HDF5CF.h.

◆ getAttributes()

const std::vector<Attribute *>& HDF5CF::File::getAttributes ( ) const
inlineinherited

Public interface to obtain information of all attributes under the root group.

Definition at line 664 of file HDF5CF.h.

◆ getFileID()

hid_t HDF5CF::File::getFileID ( ) const
inlineinherited

Obtain the HDF5 file ID.

Definition at line 646 of file HDF5CF.h.

◆ getGroups()

const std::vector<Group *>& HDF5CF::File::getGroups ( ) const
inlineinherited

Public interface to obtain all the group info.

Definition at line 670 of file HDF5CF.h.

◆ getPath()

const std::string& HDF5CF::File::getPath ( ) const
inlineinherited

Obtain the path of the file.

Definition at line 652 of file HDF5CF.h.

◆ getVars()

const std::vector<Var *>& HDF5CF::File::getVars ( ) const
inlineinherited

Public interface to obtain information of all variables.

Definition at line 658 of file HDF5CF.h.

◆ Handle_Coor_Attr()

void GMFile::Handle_Coor_Attr ( )
virtual

Handle "coordinates" attributes for general HDF5 products.

Implements HDF5CF::File.

Definition at line 5820 of file HDF5GMCF.cc.

◆ Handle_CVar()

void GMFile::Handle_CVar ( )
virtual

Handle coordinate variables for general NASA HDF5 products.

Implements HDF5CF::File.

Definition at line 2768 of file HDF5GMCF.cc.

◆ Handle_DimNameClashing()

void GMFile::Handle_DimNameClashing ( )
virtual

Handle dimension name clashing. Since COARDS requires the change of cv names, So we need to handle dimension name clashing specially.

Implements HDF5CF::File.

Definition at line 4978 of file HDF5GMCF.cc.

◆ Handle_Grid_Mapping_Vars()

void GMFile::Handle_Grid_Mapping_Vars ( )
virtual

Handle Grid Mapping Vars.

Reimplemented from HDF5CF::File.

Definition at line 6749 of file HDF5GMCF.cc.

◆ Handle_Obj_NameClashing()

void GMFile::Handle_Obj_NameClashing ( bool  include_attr)

Handle object name clashing for general NASA HDF5 products.

Definition at line 4873 of file HDF5GMCF.cc.

◆ Handle_SpVar()

void GMFile::Handle_SpVar ( )
virtual

Handle special variables for general NASA HDF5 products.

Implements HDF5CF::File.

Definition at line 4640 of file HDF5GMCF.cc.

◆ Handle_SpVar_Attr()

void GMFile::Handle_SpVar_Attr ( )
virtual

Handle special variable attributes for general NASA HDF5 products.

Implements HDF5CF::File.

Definition at line 6450 of file HDF5GMCF.cc.

◆ Handle_Unsupported_Dspace()

void GMFile::Handle_Unsupported_Dspace ( bool  include_attr)
virtual

Handle unsupported HDF5 dataspaces for general HDF5 products.

Reimplemented from HDF5CF::File.

Definition at line 577 of file HDF5GMCF.cc.

◆ Handle_Unsupported_Dtype()

void GMFile::Handle_Unsupported_Dtype ( bool  include_attr)
virtual

Handle unsupported HDF5 datatypes for general HDF5 products.

Reimplemented from HDF5CF::File.

Definition at line 384 of file HDF5GMCF.cc.

◆ Handle_Unsupported_Others()

void GMFile::Handle_Unsupported_Others ( bool  include_attr)
virtual

Handle other unmapped objects/attributes for general HDF5 products.

Reimplemented from HDF5CF::File.

Definition at line 674 of file HDF5GMCF.cc.

◆ Have_Grid_Mapping_Attrs()

bool GMFile::Have_Grid_Mapping_Attrs ( )
virtual

Check if having Grid Mapping Attrs.

Reimplemented from HDF5CF::File.

Definition at line 6745 of file HDF5GMCF.cc.

◆ HaveUnlimitedDim()

bool HDF5CF::File::HaveUnlimitedDim ( ) const
inlineinherited

Has unlimited dimensions.

Definition at line 676 of file HDF5CF.h.

◆ Remove_Unneeded_Objects()

void GMFile::Remove_Unneeded_Objects ( )

Remove unneeded objects.

Definition at line 257 of file HDF5GMCF.cc.

◆ Remove_Unused_FakeDimVars()

void GMFile::Remove_Unused_FakeDimVars ( )

Unsupported datatype array may generate FakeDim. Remove them.

Definition at line 6753 of file HDF5GMCF.cc.

◆ Rename_NC4_NonCoordVars()

void GMFile::Rename_NC4_NonCoordVars ( )

Remove the _nc4_non_coord from the variable new names.

Definition at line 6801 of file HDF5GMCF.cc.

◆ Retrieve_H5_CVar_Supported_Attr_Values()

void GMFile::Retrieve_H5_CVar_Supported_Attr_Values ( )
virtual

Retrieve coordinate variable attributes.

Implements HDF5CF::File.

Definition at line 317 of file HDF5GMCF.cc.

◆ Retrieve_H5_Info()

void GMFile::Retrieve_H5_Info ( const char *  path,
hid_t  file_id,
bool  include_attr 
)
virtual

Retrieve DDS information from the HDF5 file; real implementation for general HDF5 products.

Reimplemented from HDF5CF::File.

Definition at line 216 of file HDF5GMCF.cc.

◆ Retrieve_H5_Supported_Attr_Values()

void GMFile::Retrieve_H5_Supported_Attr_Values ( )
virtual

Retrieve attribute values for the supported HDF5 datatypes for general HDF5 products.

Reimplemented from HDF5CF::File.

Definition at line 332 of file HDF5GMCF.cc.

◆ Retrieve_H5_Var_Attr_Values()

void File::Retrieve_H5_Var_Attr_Values ( Var var)
virtualinherited

Retrieve attribute values for a variable.

Definition at line 741 of file HDF5CF.cc.

◆ Update_Product_Type()

void GMFile::Update_Product_Type ( )

Update "product type" attributes for general HDF5 products.

Definition at line 235 of file HDF5GMCF.cc.

Member Data Documentation

◆ dimsize_to_fakedimname

std::map<hsize_t, std::string> HDF5CF::File::dimsize_to_fakedimname
protectedinherited

Handle added dimension names.

Definition at line 810 of file HDF5CF.h.

◆ groups

std::vector<Group*> HDF5CF::File::groups
protectedinherited

Non-root group vectors.

Definition at line 793 of file HDF5CF.h.

◆ root_attrs

std::vector<Attribute *> HDF5CF::File::root_attrs
protectedinherited

Root attribute vectors.

Definition at line 790 of file HDF5CF.h.

◆ vars

std::vector<Var *> HDF5CF::File::vars
protectedinherited

Var vectors.

Definition at line 787 of file HDF5CF.h.


The documentation for this class was generated from the following files: