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>
47void gen_dap_onevar_dds(libdap::DDS &dds,
const HDF5CF::Var*,
const hid_t,
const std::string &);
49void gen_dap_onevar_dmr(libdap::D4Group*,
const HDF5CF::Var*,
const hid_t,
const std::string &);
50void map_cfh5_var_attrs_to_dap4(
const HDF5CF::Var*var,libdap::BaseType*new_var);
52void map_cfh5_attr_container_to_dap4(libdap::D4Attribute *,
const HDF5CF::Attribute*);
55void 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);
58void 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);
62void 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);
65void add_cf_projection_attrs(libdap::DAS &,EOS5GridPCType ,
const std::vector<double> &,
const std::string&);
66void 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);
69void add_cf_grid_mapinfo_var(libdap::DDS &dds,
const EOS5GridPCType,
const unsigned short);
74void add_ll_valid_range(libdap::AttrTable*,
bool is_lat);
75void map_cfh5_var_attrs_to_dap4_int64(
const HDF5CF::Var*var,libdap::BaseType*new_var);
76bool need_attr_values_for_dap4(
const HDF5CF::Var*var);
78void handle_coor_attr_for_int64_var(
const HDF5CF::Attribute *,
const std::string &,std::string&,
bool);
80std::string get_cf_string(std::string & s);
81std::string get_cf_string_helper(std::string & s);
83void 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);
85void add_gm_spcvs_attrs(libdap::BaseType *d4_var,
const bool is_dim0);
87void add_cf_grid_cv_dap4_attrs(libdap::D4Group *d4_root,
const std::string& cf_projection,
const std::vector<HDF5CF::Dimension*>&dims);
89void add_gm_oneproj_var_dap4_attrs(libdap::BaseType *d4_var,EOS5GridPCType cv_proj_code,
const std::vector<double> &eos5_proj_params);
91void add_var_dap4_attr(libdap::BaseType *d4_var,
const std::string& attr_name, D4AttributeType attr_type,
const std::string& attr_value);
93void 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)