bes  Updated for version 3.20.6
HDF5CF::EOS5File Class Reference

This class is a derived class of File. It includes methods applied to HDF-EOS5 files only. More...

#include <HDF5CF.h>

Collaboration diagram for HDF5CF::EOS5File:
Collaboration graph

Public Member Functions

void Add_Dim_Name (HE5Parser *)
 Add the dimension name for HDF-EOS5 files. More...
 
void Add_EOS5File_Info (HE5Parser *, bool)
 Add HDF-EOS5 dimension and coordinate variable related info. to EOS5Grid,EOS5Swath etc. More...
 
void Add_Supplement_Attrs (bool)
 Add the supplemental attributes for HDF-EOS5 products. More...
 
void Adjust_Attr_Info ()
 Adjust the attribute info for HDF-EOS5 products. More...
 
void Adjust_Dim_Name ()
 Adjust the dimension name for HDF-EOS5 products. More...
 
void Adjust_EOS5Dim_Info (HE5Parser *strmeta_info)
 Adjust HDF-EOS5 dimension information. More...
 
void Adjust_Obj_Name ()
 This method is a no-op operation. Leave here since the method in the base class is pure virtual. More...
 
void Adjust_Var_Dim_NewName_Before_Flattening ()
 Adjust variable dimension names before the flattening for HDF-EOS5 files. More...
 
void Adjust_Var_NewName_After_Parsing ()
 Adjust variable names for HDF-EOS5 files. More...
 
void Check_Aura_Product_Status ()
 Check if the HDF-EOS5 file is an Aura file. Special CF operations need to be used. More...
 
template<class T >
string Create_Unique_FakeDimName (T *eos5data, EOS5Type eos5type)
 
 EOS5File (const char *he5_path, hid_t file_id)
 
void Flatten_Obj_Name (bool include_attr)
 Flatten the object name for HDF-EOS5 files. More...
 
const std::string & Get_Ignored_Msg ()
 Obtain the message that contains the ignored object info. More...
 
bool Get_IgnoredInfo_Flag ()
 Obtain the flag to see if ignored objects should be generated. More...
 
const std::vector< Attribute * > & getAttributes () const
 Public interface to obtain information of all attributes under the root group. More...
 
const std::vector< EOS5CVar * > & getCVars () const
 Obtain coordinate variables for HDF-EOS5 products. More...
 
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...
 
const std::vector< Var * > & getVars () const
 Public interface to obtain information of all variables. More...
 
void Handle_Coor_Attr ()
 Handle the coordinates attribute for HDF-EOS5 products. More...
 
void Handle_CVar ()
 Handle coordinate variable for HDF-EOS5 files. 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_Obj_NameClashing (bool)
 Handle the object name clashing for HDF-EOS5 products. More...
 
void Handle_SpVar ()
 Handle special variables for HDF-EOS5 files. More...
 
void Handle_SpVar_Attr ()
 Handle special variables for HDF-EOS5 files. More...
 
void Handle_Unsupported_Dspace (bool)
 Handle unsupported HDF5 dataspaces for HDF-EOS5 products. More...
 
void Handle_Unsupported_Dtype (bool)
 Handle unsupported HDF5 datatypes for HDF-EOS5 products. More...
 
void Handle_Unsupported_Others (bool)
 Handle other unmapped objects/attributes for HDF-EOS5 products. More...
 
bool Have_Grid_Mapping_Attrs ()
 Check if having Grid Mapping Attrs. More...
 
bool HaveUnlimitedDim () const
 Has unlimited dimensions. 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; a real implementation for HDF-EOS5 products. More...
 
void Retrieve_H5_Supported_Attr_Values ()
 Retrieve attribute values for the supported HDF5 datatypes for HDF-EOS5 products. More...
 
virtual void Retrieve_H5_Var_Attr_Values (Var *var)
 Retrieve attribute values for a variable. More...
 
void Set_COARDS_Status ()
 Set COARDS flag. More...
 

Protected Member Functions

void Add_EOS5_Grid_CF_Attr ()
 
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_Str_Attr (Attribute *attr, const std::string &attrname, const std::string &strvalue)
 
void Adjust_Aura_Attr_Name ()
 
void Adjust_Aura_Attr_Value ()
 
void Adjust_Duplicate_FakeDim_Name (Dimension *dim)
 
void Adjust_EOS5Dim_List (std::vector< HE5Dim > &)
 
void Adjust_EOS5DimSize_List (std::vector< HE5Dim > &, const std::vector< HE5Var > &, const EOS5Type, const std::string &eos5objname)
 
void Adjust_EOS5GridDimNames (EOS5CFGrid *)
 
void Adjust_EOS5VarDim_Info (std::vector< HE5Dim > &, std::vector< HE5Dim > &, const std::string &, EOS5Type)
 
void Adjust_H5_Attr_Value (Attribute *attr)
 
template<class T >
void Adjust_Per_Var_Dim_NewName_Before_Flattening (T *, bool, int, int, int)
 
void Adjust_SharedLatLon_Grid_Var_Dim_Name ()
 
void Change_Attr_One_Str_to_Others (Attribute *attr, Var *var)
 
template<class T >
bool Check_All_DimNames (T *, std::string &, hsize_t)
 
bool Check_Augmentation_Status ()
 
template<class T >
bool Check_Augmented_Var_Candidate (T *, Var *, EOS5Type)
 
bool Check_DropLongStr (Var *var, Attribute *attr)
 
int Check_EOS5Swath_FieldType (Var *)
 
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_VarDropLongStr (const std::string &varpath, const std::vector< Dimension * > &, H5DataType)
 
void Condense_EOS5Dim_List (std::vector< HE5Dim > &)
 
void Create_Added_Var_NewName_FullPath (EOS5Type, const std::string &, const std::string &, std::string &, std::string &)
 
template<typename T >
void Create_Missing_CV (T *, EOS5CVar *, const std::string &, EOS5Type, int)
 
template<class T >
void Create_Unique_DimName (T *, std::set< std::string > &, Dimension *, int, EOS5Type)
 
template<class T >
std::string Create_Unique_FakeDimName (T *, EOS5Type)
 
template<typename T >
void EOS5Handle_General_NameClashing (std::set< std::string > &objnameset, std::vector< T * > &objvec)
 
void EOS5Handle_nonlatlon_dimcvars (std::vector< HE5Var > &eos5varlist, EOS5Type, std::string groupname, std::map< std::string, std::string > &dnamesgeo1dvnames)
 
template<class T >
void EOS5SwathGrid_Set_LatLon_Flags (T *eos5gridswath, std::vector< HE5Var > &eos5varlist)
 
void Gen_DimScale_VarAttr_Unsupported_Dtype_Info ()
 
void Gen_EOS5_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)
 
void Get_Unique_Name (std::set< std::string > &, std::string &)
 
EOS5Type Get_Var_EOS5_Type (Var *)
 
void Handle_Augmented_Grid_CVar ()
 
void Handle_Aura_Special_Attr ()
 
void Handle_EOS5_Unsupported_Dspace (bool)
 
void Handle_EOS5_Unsupported_Dtype (bool)
 
void Handle_EOS5CVar_AttrNameClashing ()
 
void Handle_EOS5CVar_NameClashing (std::set< std::string > &)
 
void Handle_EOS5CVar_Unit_Attr ()
 
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_Grid_CVar (bool)
 
void Handle_Group_NameClashing (std::set< std::string > &objnameset)
 
void Handle_Group_Unsupported_Dtype ()
 
void Handle_GroupAttr_Unsupported_Dspace ()
 
void Handle_Multi_Nonaugment_Grid_CVar ()
 
void Handle_NonLatLon_Grid_CVar (EOS5CFGrid *, std::set< std::string > &)
 
void Handle_NonLatLon_Swath_CVar (EOS5CFSwath *cfswath, std::set< std::string > &tempvardimnamelist)
 
void Handle_Obj_AttrNameClashing ()
 
void Handle_Single_1DLatLon_Swath_CVar (EOS5CFSwath *cfswath, bool is_augmented)
 
void Handle_Single_2DLatLon_Swath_CVar (EOS5CFSwath *cfswath, bool is_augmented)
 
template<class T >
void Handle_Single_Augment_CVar (T *, EOS5Type)
 
void Handle_Single_Nonaugment_Grid_CVar (EOS5CFGrid *)
 
bool Handle_Single_Nonaugment_Grid_CVar_EOS5LatLon (EOS5CFGrid *, std::set< std::string > &)
 
bool Handle_Single_Nonaugment_Grid_CVar_OwnLatLon (EOS5CFGrid *, std::set< std::string > &)
 
void Handle_Special_NonLatLon_Swath_CVar (EOS5CFSwath *cfswath, std::set< std::string > &tempvardimnamelist)
 
void Handle_Swath_CVar (bool)
 
void Handle_Var_NameClashing (std::set< std::string > &objnameset)
 
void Handle_Var_Unsupported_Dtype ()
 
void Handle_VarAttr_Unsupported_Dspace ()
 
void Handle_VarAttr_Unsupported_Dtype ()
 
void Handle_Za_CVar (bool)
 
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_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)
 
bool Obtain_Var_Dims (Var *, HE5Parser *)
 
std::string Obtain_Var_EOS5Type_GroupName (Var *, EOS5Type)
 
void Obtain_Var_NewName (Var *)
 
void release_standalone_var_vector (std::vector< Var * > &vars)
 
void Remove_MultiDim_LatLon_EOS5CFGrid ()
 
void Remove_NegativeSizeDims (std::vector< HE5Dim > &)
 
void remove_netCDF_internal_attributes (bool include_attr)
 
void Replace_Var_Attrs (EOS5CVar *src, EOS5CVar *target)
 
virtual void Replace_Var_Attrs (Var *src, Var *target)
 
void Replace_Var_Info (EOS5CVar *src, EOS5CVar *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)
 
template<class T >
void Set_NonParse_Var_Dims (T *, Var *, std::map< hsize_t, std::string > &, int, EOS5Type)
 
template<class T >
bool Set_Var_Dims (T *, Var *, std::vector< HE5Var > &, const std::string &, int, EOS5Type)
 

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 HDF-EOS5 files only.

Definition at line 1171 of file HDF5CF.h.

Member Function Documentation

◆ Add_Dim_Name()

void EOS5File::Add_Dim_Name ( HE5Parser strmeta_info)

Add the dimension name for HDF-EOS5 files.

Definition at line 1316 of file HDFEOS5CF.cc.

◆ Add_EOS5File_Info()

void EOS5File::Add_EOS5File_Info ( HE5Parser strmeta_info,
bool  grids_mllcv 
)

Add HDF-EOS5 dimension and coordinate variable related info. to EOS5Grid,EOS5Swath etc.

Definition at line 837 of file HDFEOS5CF.cc.

◆ Add_Supplement_Attrs()

void EOS5File::Add_Supplement_Attrs ( bool  add_path)
virtual

Add the supplemental attributes for HDF-EOS5 products.

Reimplemented from HDF5CF::File.

Definition at line 3666 of file HDFEOS5CF.cc.

◆ Adjust_Attr_Info()

void EOS5File::Adjust_Attr_Info ( )

Adjust the attribute info for HDF-EOS5 products.

Definition at line 3403 of file HDFEOS5CF.cc.

◆ Adjust_Dim_Name()

void EOS5File::Adjust_Dim_Name ( )
virtual

Adjust the dimension name for HDF-EOS5 products.

Implements HDF5CF::File.

Definition at line 3636 of file HDFEOS5CF.cc.

◆ Adjust_EOS5Dim_Info()

void EOS5File::Adjust_EOS5Dim_Info ( HE5Parser strmeta_info)

Adjust HDF-EOS5 dimension information.

Definition at line 535 of file HDFEOS5CF.cc.

◆ Adjust_Obj_Name()

void EOS5File::Adjust_Obj_Name ( )
virtual

This method is a no-op operation. Leave here since the method in the base class is pure virtual.

Implements HDF5CF::File.

Definition at line 4123 of file HDFEOS5CF.cc.

◆ Adjust_Var_Dim_NewName_Before_Flattening()

void EOS5File::Adjust_Var_Dim_NewName_Before_Flattening ( )

Adjust variable dimension names before the flattening for HDF-EOS5 files.

Definition at line 3030 of file HDFEOS5CF.cc.

◆ Adjust_Var_NewName_After_Parsing()

void EOS5File::Adjust_Var_NewName_After_Parsing ( )

Adjust variable names for HDF-EOS5 files.

Definition at line 1224 of file HDFEOS5CF.cc.

◆ Check_Aura_Product_Status()

void EOS5File::Check_Aura_Product_Status ( )

Check if the HDF-EOS5 file is an Aura file. Special CF operations need to be used.

Definition at line 1712 of file HDFEOS5CF.cc.

◆ Flatten_Obj_Name()

void EOS5File::Flatten_Obj_Name ( bool  include_attr)
virtual

Flatten the object name for HDF-EOS5 files.

Reimplemented from HDF5CF::File.

Definition at line 3208 of file HDFEOS5CF.cc.

◆ Get_Ignored_Msg()

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

Obtain the message that contains the ignored object info.

Implements HDF5CF::File.

Definition at line 1271 of file HDF5CF.h.

◆ Get_IgnoredInfo_Flag()

bool HDF5CF::EOS5File::Get_IgnoredInfo_Flag ( )
inlinevirtual

Obtain the flag to see if ignored objects should be generated.

Implements HDF5CF::File.

Definition at line 1266 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.

◆ getCVars()

const std::vector<EOS5CVar *>& HDF5CF::EOS5File::getCVars ( ) const
inline

Obtain coordinate variables for HDF-EOS5 products.

Definition at line 1183 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 EOS5File::Handle_Coor_Attr ( )
virtual

Handle the coordinates attribute for HDF-EOS5 products.

Implements HDF5CF::File.

Definition at line 3751 of file HDFEOS5CF.cc.

◆ Handle_CVar()

void EOS5File::Handle_CVar ( )
virtual

Handle coordinate variable for HDF-EOS5 files.

Implements HDF5CF::File.

Definition at line 1764 of file HDFEOS5CF.cc.

◆ Handle_DimNameClashing()

void EOS5File::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 3315 of file HDFEOS5CF.cc.

◆ Handle_Grid_Mapping_Vars()

void EOS5File::Handle_Grid_Mapping_Vars ( )
virtual

Handle Grid Mapping Vars.

Reimplemented from HDF5CF::File.

Definition at line 4131 of file HDFEOS5CF.cc.

◆ Handle_Obj_NameClashing()

void EOS5File::Handle_Obj_NameClashing ( bool  include_attr)

Handle the object name clashing for HDF-EOS5 products.

Definition at line 3230 of file HDFEOS5CF.cc.

◆ Handle_SpVar()

void EOS5File::Handle_SpVar ( )
virtual

Handle special variables for HDF-EOS5 files.

Implements HDF5CF::File.

Definition at line 3965 of file HDFEOS5CF.cc.

◆ Handle_SpVar_Attr()

void EOS5File::Handle_SpVar_Attr ( )
virtual

Handle special variables for HDF-EOS5 files.

Implements HDF5CF::File.

Definition at line 4087 of file HDFEOS5CF.cc.

◆ Handle_Unsupported_Dspace()

void EOS5File::Handle_Unsupported_Dspace ( bool  include_attr)
virtual

Handle unsupported HDF5 dataspaces for HDF-EOS5 products.

Reimplemented from HDF5CF::File.

Definition at line 297 of file HDFEOS5CF.cc.

◆ Handle_Unsupported_Dtype()

void EOS5File::Handle_Unsupported_Dtype ( bool  include_attr)
virtual

Handle unsupported HDF5 datatypes for HDF-EOS5 products.

Reimplemented from HDF5CF::File.

Definition at line 204 of file HDFEOS5CF.cc.

◆ Handle_Unsupported_Others()

void EOS5File::Handle_Unsupported_Others ( bool  include_attr)
virtual

Handle other unmapped objects/attributes for HDF-EOS5 products.

Reimplemented from HDF5CF::File.

Definition at line 356 of file HDFEOS5CF.cc.

◆ Have_Grid_Mapping_Attrs()

bool EOS5File::Have_Grid_Mapping_Attrs ( )
virtual

Check if having Grid Mapping Attrs.

Reimplemented from HDF5CF::File.

Definition at line 4128 of file HDFEOS5CF.cc.

◆ HaveUnlimitedDim()

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

Has unlimited dimensions.

Definition at line 676 of file HDF5CF.h.

◆ Retrieve_H5_CVar_Supported_Attr_Values()

void EOS5File::Retrieve_H5_CVar_Supported_Attr_Values ( )
virtual

Retrieve coordinate variable attributes.

Implements HDF5CF::File.

Definition at line 166 of file HDFEOS5CF.cc.

◆ Retrieve_H5_Info()

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

Retrieve DDS information from the HDF5 file; a real implementation for HDF-EOS5 products.

Reimplemented from HDF5CF::File.

Definition at line 159 of file HDFEOS5CF.cc.

◆ Retrieve_H5_Supported_Attr_Values()

void EOS5File::Retrieve_H5_Supported_Attr_Values ( )
virtual

Retrieve attribute values for the supported HDF5 datatypes for HDF-EOS5 products.

Reimplemented from HDF5CF::File.

Definition at line 182 of file HDFEOS5CF.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.

◆ Set_COARDS_Status()

void EOS5File::Set_COARDS_Status ( )

Set COARDS flag.

Definition at line 3380 of file HDFEOS5CF.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: