33 #ifndef _H5COMMONCFDAP_H
34 #define _H5COMMONCFDAP_H
38 #include <libdap/DMR.h>
39 #include <libdap/DDS.h>
40 #include <libdap/DAS.h>
41 #include <libdap/D4Attributes.h>
47 void gen_dap_onevar_dds(libdap::DDS &dds,
const HDF5CF::Var*,
const hid_t,
const std::string &);
49 void gen_dap_onevar_dmr(libdap::D4Group*,
const HDF5CF::Var*,
const hid_t,
const std::string &);
50 void map_cfh5_var_attrs_to_dap4(
const HDF5CF::Var*var,libdap::BaseType*new_var);
52 void map_cfh5_attr_container_to_dap4(libdap::D4Attribute *,
const HDF5CF::Attribute*);
55 void add_cf_grid_mapping_attr(libdap::DAS &das,
const std::vector<HDF5CF::Var*>& vars,
const std::string& cf_projection,
56 const std::string & dim0name, hsize_t dim0size,
const std::string &dim1name, hsize_t dim1size);
58 void add_cf_grid_cv_attrs(DAS & das,
const vector<HDF5CF::Var*>& vars, EOS5GridPCType cv_proj_code,
59 float cv_point_lower,
float cv_point_upper,
float cv_point_left,
float cv_point_right,
60 const vector<HDF5CF::Dimension*>& dims,
const vector<double>& params,
const unsigned short);
62 void add_cf_grid_cv_attrs(libdap::DAS & das,
const std::vector<HDF5CF::Var*>& vars, EOS5GridPCType cv_proj_code,
63 const std::vector<HDF5CF::Dimension*>& dims,
const std::vector<double>& params,
const unsigned short);
65 void add_cf_projection_attrs(libdap::DAS &,EOS5GridPCType ,
const std::vector<double> &,
const std::string&);
66 void add_cf_grid_cvs(libdap::DDS & dds, EOS5GridPCType cv_proj_code,
float cv_point_lower,
float cv_point_upper,
67 float cv_point_left,
float cv_point_right,
const std::vector<HDF5CF::Dimension*>& dims);
69 void add_cf_grid_mapinfo_var(libdap::DDS &dds,
const EOS5GridPCType,
const unsigned short);
74 void add_ll_valid_range(libdap::AttrTable*,
bool is_lat);
75 void map_cfh5_var_attrs_to_dap4_int64(
const HDF5CF::Var*var,libdap::BaseType*new_var);
76 bool need_attr_values_for_dap4(
const HDF5CF::Var*var);
78 void handle_coor_attr_for_int64_var(
const HDF5CF::Attribute *,
const std::string &,std::string&,
bool);
80 std::string get_cf_string(std::string & s);
81 std::string get_cf_string_helper(std::string & s);
83 void add_gm_spcvs(libdap::D4Group *d4_root, EOS5GridPCType cv_proj_code,
float cv_point_lower,
float cv_point_upper,
84 float cv_point_left,
float cv_point_right,
const std::vector<HDF5CF::Dimension*>& dims);
85 void add_gm_spcvs_attrs(libdap::BaseType *d4_var,
const bool is_dim0);
87 void add_cf_grid_cv_dap4_attrs(libdap::D4Group *d4_root,
const std::string& cf_projection,
const std::vector<HDF5CF::Dimension*>&dims);
89 void add_gm_oneproj_var_dap4_attrs(libdap::BaseType *d4_var,EOS5GridPCType cv_proj_code,
const std::vector<double> &eos5_proj_params);
91 void add_var_dap4_attr(libdap::BaseType *d4_var,
const std::string& attr_name, D4AttributeType attr_type,
const std::string& attr_value);
93 void add_grp_dap4_attr(libdap::D4Group *d4_grp,
const std::string& attr_name, D4AttributeType attr_type,
const std::string& attr_value);
This class specifies the core engineering of mapping HDF5 to DAP by following CF.
This class represents one attribute.
This class represents one HDF5 dataset(CF variable)