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>
42#include <libdap/D4Maps.h>
48void gen_dap_onevar_dds(libdap::DDS &dds,
const HDF5CF::Var*,
const hid_t,
const std::string &);
50void gen_dap_onevar_dmr(libdap::D4Group*,
const HDF5CF::Var*,
const hid_t,
const std::string &);
51void map_cfh5_var_attrs_to_dap4(
const HDF5CF::Var*var,libdap::BaseType*new_var);
53void map_cfh5_attr_container_to_dap4(libdap::D4Attribute *,
const HDF5CF::Attribute*);
56void add_cf_grid_mapping_attr(libdap::DAS &das,
const std::vector<HDF5CF::Var*>& vars,
const std::string& cf_projection,
57 const std::string & dim0name, hsize_t dim0size,
const std::string &dim1name, hsize_t dim1size);
59void add_cf_grid_cv_attrs(DAS & das,
const vector<HDF5CF::Var*>& vars, EOS5GridPCType cv_proj_code,
60 float cv_point_lower,
float cv_point_upper,
float cv_point_left,
float cv_point_right,
61 const vector<HDF5CF::Dimension*>& dims,
const vector<double>& params,
const unsigned short);
63void add_cf_grid_cv_attrs(libdap::DAS & das,
const std::vector<HDF5CF::Var*>& vars, EOS5GridPCType cv_proj_code,
64 const std::vector<HDF5CF::Dimension*>& dims,
const std::vector<double>& params,
const unsigned short);
66void add_cf_projection_attrs(libdap::DAS &,EOS5GridPCType ,
const std::vector<double> &,
const std::string&);
67void add_cf_grid_cvs(libdap::DDS & dds, EOS5GridPCType cv_proj_code,
float cv_point_lower,
float cv_point_upper,
68 float cv_point_left,
float cv_point_right,
const std::vector<HDF5CF::Dimension*>& dims);
70void add_cf_grid_mapinfo_var(libdap::DDS &dds,
const EOS5GridPCType,
const unsigned short);
75void add_ll_valid_range(libdap::AttrTable*,
bool is_lat);
76void map_cfh5_var_attrs_to_dap4_int64(
const HDF5CF::Var*var,libdap::BaseType*new_var);
77bool need_attr_values_for_dap4(
const HDF5CF::Var*var);
79void handle_coor_attr_for_int64_var(
const HDF5CF::Attribute *,
const std::string &,std::string&,
bool);
81std::string get_cf_string(std::string & s);
82std::string get_cf_string_helper(std::string & s);
84void add_gm_spcvs(libdap::D4Group *d4_root, EOS5GridPCType cv_proj_code,
float cv_point_lower,
float cv_point_upper,
85 float cv_point_left,
float cv_point_right,
const std::vector<HDF5CF::Dimension*>& dims);
86void add_gm_spcvs_attrs(libdap::BaseType *d4_var,
const bool is_dim0);
88void add_cf_grid_cv_dap4_attrs(libdap::D4Group *d4_root,
const std::string& cf_projection,
const std::vector<HDF5CF::Dimension*>&dims,
const std::vector<std::string> &);
90void add_gm_oneproj_var_dap4_attrs(libdap::BaseType *d4_var,EOS5GridPCType cv_proj_code,
const std::vector<double> &eos5_proj_params);
92void add_var_dap4_attr(libdap::BaseType *d4_var,
const std::string& attr_name, D4AttributeType attr_type,
const std::string& attr_value);
94void add_grp_dap4_attr(libdap::D4Group *d4_grp,
const std::string& attr_name, D4AttributeType attr_type,
const std::string& attr_value);
96void add_dap4_coverage(libdap::D4Group* d4_grp,
const std::vector<std::string>& map_array,
bool is_coard);
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)
void gen_dap_str_attr(AttrTable *at, const HDF5CF::Attribute *attr)
Transfer string attributes to a DAP2 AttrTable.