bes Updated for version 3.21.1
The Backend Server (BES) is the lower two tiers of the Hyrax data server
h5commoncfdap.cc File Reference

Functions to generate DDS and DAS for one object(variable). More...

#include <fcntl.h>
#include <iostream>
#include <unordered_map>
#include <unordered_set>
#include <libdap/InternalErr.h>
#include <BESDebug.h>
#include "HDF5RequestHandler.h"
#include "h5cfdaputil.h"
#include "h5gmcfdap.h"
#include "HDF5CFByte.h"
#include "HDF5CFInt8.h"
#include "HDF5CFUInt16.h"
#include "HDF5CFInt16.h"
#include "HDF5CFUInt32.h"
#include "HDF5CFInt32.h"
#include "HDF5CFFloat32.h"
#include "HDF5CFFloat64.h"
#include "HDF5CFInt64.h"
#include "HDF5CFUInt64.h"
#include "HDF5CFStr.h"
#include "HDF5CFArray.h"
#include "HDF5CFGeoCF1D.h"
#include "HDF5CFGeoCFProj.h"
#include "HDF5CFUtil.h"
Include dependency graph for h5commoncfdap.cc:

Go to the source code of this file.

Macros

#define HANDLE_CASE(tid, type)
 
#define HANDLE_CASE(tid, type)
 

Functions

void add_cf_grid_cv_attrs (DAS &das, const vector< HDF5CF::Var * > &vars, EOS5GridPCType cv_proj_code, const vector< HDF5CF::Dimension * > &dims, const vector< double > &eos5_proj_params, unsigned short g_suffix)
 
void add_cf_grid_cv_dap4_attrs (D4Group *d4_root, const string &cf_projection, const vector< HDF5CF::Dimension * > &dims, const vector< string > &cvar_name)
 
void add_cf_grid_cv_dap4_attrs_helper (Array *t_a, const string &dim0name, hsize_t dim0size, bool &has_dim0, const string &dim1name, hsize_t dim1size, bool &has_dim1)
 
void add_cf_grid_cvs (DDS &dds, EOS5GridPCType cv_proj_code, float cv_point_lower, float cv_point_upper, float cv_point_left, float cv_point_right, const vector< HDF5CF::Dimension * > &dims)
 
void add_cf_grid_mapinfo_var (DDS &dds, EOS5GridPCType grid_proj_code, unsigned short g_suffix)
 
void add_cf_grid_mapping_attr (DAS &das, const vector< HDF5CF::Var * > &vars, const string &cf_projection, const string &dim0name, hsize_t dim0size, const string &dim1name, hsize_t dim1size)
 
void add_cf_projection_attrs (DAS &das, EOS5GridPCType cv_proj_code, const vector< double > &eos5_proj_params, const string &cf_projection)
 
void add_dap4_coverage (libdap::D4Group *d4_root, const vector< string > &coord_var_names, bool is_coard)
 
void add_dap4_coverage_grid (unordered_map< string, Array * > &d4map_array_maps, vector< Array * > &has_map_arrays)
 
void add_dap4_coverage_set_up (unordered_map< string, Array * > &d4map_array_maps, vector< Array * > &has_map_arrays, Array *t_a, const vector< string > &coord_var_names, const string &vname)
 
void add_dap4_coverage_swath (unordered_map< std::string, libdap::Array * > &d4map_array_maps, const std::vector< libdap::Array * > &has_map_arrays)
 
void add_dap4_coverage_swath_coords (unordered_map< string, Array * > &d4map_array_maps, Array *has_map_array, const vector< string > &coord_names, unordered_set< string > &coord_dim_names)
 
void add_gm_oneproj_var_dap4_attrs (BaseType *var, EOS5GridPCType cv_proj_code, const vector< double > &eos5_proj_params)
 
void add_gm_spcvs (libdap::D4Group *d4_root, EOS5GridPCType cv_proj_code, float cv_point_lower, float cv_point_upper, float cv_point_left, float cv_point_right, const std::vector< HDF5CF::Dimension * > &dims)
 
void add_gm_spcvs_attrs (libdap::BaseType *var, bool is_dim0)
 
void add_grp_dap4_attr (D4Group *d4_grp, const string &attr_name, D4AttributeType attr_type, const string &attr_value)
 
void add_ll_valid_range (AttrTable *at, bool is_lat)
 
void add_var_dap4_attr (BaseType *var, const string &attr_name, D4AttributeType attr_type, const string &attr_value)
 
void check_update_int64_attr (const string &obj_name, const HDF5CF::Attribute *attr)
 
D4Attribute * gen_dap4_attr (const HDF5CF::Attribute *attr)
 
void gen_dap_oneobj_das (AttrTable *at, const HDF5CF::Attribute *attr, const HDF5CF::Var *var)
 
void gen_dap_onevar_dds (DDS &dds, const HDF5CF::Var *var, hid_t file_id, const string &filename)
 
void gen_dap_onevar_dds_array (DDS &dds, const HDF5CF::Var *var, hid_t file_id, const string &filename, const vector< HDF5CF::Dimension * > &dims)
 
void gen_dap_onevar_dds_sca_64bit_int (const HDF5CF::Var *var, const string &filename)
 
void gen_dap_onevar_dds_sca_atomic (DDS &dds, const HDF5CF::Var *var, const string &filename)
 
void gen_dap_onevar_dmr (libdap::D4Group *d4_grp, const HDF5CF::Var *var, hid_t file_id, const string &filename)
 
void gen_dap_onevar_dmr_array (D4Group *d4_grp, const HDF5CF::Var *var, hid_t file_id, const string &filename, const vector< HDF5CF::Dimension * > &dims)
 
void gen_dap_onevar_dmr_sca (D4Group *d4_grp, const HDF5CF::Var *var, const string &filename)
 
void gen_dap_special_oneobj_das (AttrTable *at, const HDF5CF::Attribute *attr, const HDF5CF::Var *var)
 
void gen_dap_str_attr (AttrTable *at, const HDF5CF::Attribute *attr)
 Transfer string attributes to a DAP2 AttrTable.
 
string get_cf_string (string &s)
 
string get_cf_string_helper (string &s)
 
void handle_coor_attr_for_int64_var (const HDF5CF::Attribute *attr, const string &var_path, string &tempstring, bool chg_coor_value)
 
bool is_fvalue_valid (H5DataType var_dtype, const HDF5CF::Attribute *attr)
 
void map_cfh5_attr_container_to_dap4 (libdap::D4Attribute *d4_con, const HDF5CF::Attribute *attr)
 
void map_cfh5_grp_attr_to_dap4 (libdap::D4Group *d4_grp, const HDF5CF::Attribute *attr)
 
void map_cfh5_var_attrs_to_dap4 (const HDF5CF::Var *var, BaseType *d4_var)
 
void map_cfh5_var_attrs_to_dap4_int64 (const HDF5CF::Var *var, BaseType *d4_var)
 
bool need_attr_values_for_dap4 (const HDF5CF::Var *var)
 
bool need_special_attribute_handling (const HDF5CF::Attribute *attr, const HDF5CF::Var *var)
 

Detailed Description

Functions to generate DDS and DAS for one object(variable).

Author
Kent Yang myang.nosp@m.6@hd.nosp@m.fgrou.nosp@m.p.or.nosp@m.g

Definition in file h5commoncfdap.cc.

Macro Definition Documentation

◆ HANDLE_CASE [1/2]

#define HANDLE_CASE ( tid,
type )
Value:
case tid: \
bt = new (type)(var->getNewName(),var->getFullPath()); \
break;

◆ HANDLE_CASE [2/2]

#define HANDLE_CASE ( tid,
type )
Value:
case tid: \
bt = new (type)(var->getNewName(),var->getFullPath()); \
break;

Function Documentation

◆ add_cf_grid_cv_attrs()

void add_cf_grid_cv_attrs ( DAS & das,
const vector< HDF5CF::Var * > & vars,
EOS5GridPCType cv_proj_code,
const vector< HDF5CF::Dimension * > & dims,
const vector< double > & eos5_proj_params,
unsigned short g_suffix )

Definition at line 713 of file h5commoncfdap.cc.

◆ add_cf_grid_cv_dap4_attrs()

void add_cf_grid_cv_dap4_attrs ( D4Group * d4_root,
const string & cf_projection,
const vector< HDF5CF::Dimension * > & dims,
const vector< string > & cvar_name )

Definition at line 1235 of file h5commoncfdap.cc.

◆ add_cf_grid_cv_dap4_attrs_helper()

void add_cf_grid_cv_dap4_attrs_helper ( Array * t_a,
const string & dim0name,
hsize_t dim0size,
bool & has_dim0,
const string & dim1name,
hsize_t dim1size,
bool & has_dim1 )

Definition at line 1263 of file h5commoncfdap.cc.

◆ add_cf_grid_cvs()

void add_cf_grid_cvs ( DDS & dds,
EOS5GridPCType cv_proj_code,
float cv_point_lower,
float cv_point_upper,
float cv_point_left,
float cv_point_right,
const vector< HDF5CF::Dimension * > & dims )

Definition at line 648 of file h5commoncfdap.cc.

◆ add_cf_grid_mapinfo_var()

void add_cf_grid_mapinfo_var ( DDS & dds,
EOS5GridPCType grid_proj_code,
unsigned short g_suffix )

Definition at line 684 of file h5commoncfdap.cc.

◆ add_cf_grid_mapping_attr()

void add_cf_grid_mapping_attr ( DAS & das,
const vector< HDF5CF::Var * > & vars,
const string & cf_projection,
const string & dim0name,
hsize_t dim0size,
const string & dim1name,
hsize_t dim1size )

Definition at line 886 of file h5commoncfdap.cc.

◆ add_cf_projection_attrs()

void add_cf_projection_attrs ( DAS & das,
EOS5GridPCType cv_proj_code,
const vector< double > & eos5_proj_params,
const string & cf_projection )

Definition at line 773 of file h5commoncfdap.cc.

◆ add_dap4_coverage()

void add_dap4_coverage ( libdap::D4Group * d4_root,
const vector< string > & coord_var_names,
bool is_coard )

Definition at line 1362 of file h5commoncfdap.cc.

◆ add_dap4_coverage_grid()

void add_dap4_coverage_grid ( unordered_map< string, Array * > & d4map_array_maps,
vector< Array * > & has_map_arrays )

Definition at line 1423 of file h5commoncfdap.cc.

◆ add_dap4_coverage_set_up()

void add_dap4_coverage_set_up ( unordered_map< string, Array * > & d4map_array_maps,
vector< Array * > & has_map_arrays,
Array * t_a,
const vector< string > & coord_var_names,
const string & vname )

Definition at line 1399 of file h5commoncfdap.cc.

◆ add_dap4_coverage_swath()

void add_dap4_coverage_swath ( unordered_map< std::string, libdap::Array * > & d4map_array_maps,
const std::vector< libdap::Array * > & has_map_arrays )

Definition at line 1445 of file h5commoncfdap.cc.

◆ add_dap4_coverage_swath_coords()

void add_dap4_coverage_swath_coords ( unordered_map< string, Array * > & d4map_array_maps,
Array * has_map_array,
const vector< string > & coord_names,
unordered_set< string > & coord_dim_names )

Definition at line 1475 of file h5commoncfdap.cc.

◆ add_gm_oneproj_var_dap4_attrs()

void add_gm_oneproj_var_dap4_attrs ( BaseType * var,
EOS5GridPCType cv_proj_code,
const vector< double > & eos5_proj_params )

Definition at line 1129 of file h5commoncfdap.cc.

◆ add_gm_spcvs()

void add_gm_spcvs ( libdap::D4Group * d4_root,
EOS5GridPCType cv_proj_code,
float cv_point_lower,
float cv_point_upper,
float cv_point_left,
float cv_point_right,
const std::vector< HDF5CF::Dimension * > & dims )

Definition at line 1280 of file h5commoncfdap.cc.

◆ add_gm_spcvs_attrs()

void add_gm_spcvs_attrs ( libdap::BaseType * var,
bool is_dim0 )

Definition at line 1318 of file h5commoncfdap.cc.

◆ add_grp_dap4_attr()

void add_grp_dap4_attr ( D4Group * d4_grp,
const string & attr_name,
D4AttributeType attr_type,
const string & attr_value )

Definition at line 1343 of file h5commoncfdap.cc.

◆ add_ll_valid_range()

void add_ll_valid_range ( AttrTable * at,
bool is_lat )

Definition at line 918 of file h5commoncfdap.cc.

◆ add_var_dap4_attr()

void add_var_dap4_attr ( BaseType * var,
const string & attr_name,
D4AttributeType attr_type,
const string & attr_value )

Definition at line 1352 of file h5commoncfdap.cc.

◆ check_update_int64_attr()

void check_update_int64_attr ( const string & obj_name,
const HDF5CF::Attribute * attr )

Definition at line 999 of file h5commoncfdap.cc.

◆ gen_dap4_attr()

D4Attribute * gen_dap4_attr ( const HDF5CF::Attribute * attr)

Definition at line 1095 of file h5commoncfdap.cc.

◆ gen_dap_oneobj_das()

void gen_dap_oneobj_das ( AttrTable * at,
const HDF5CF::Attribute * attr,
const HDF5CF::Var * var )

Definition at line 357 of file h5commoncfdap.cc.

◆ gen_dap_onevar_dds()

void gen_dap_onevar_dds ( DDS & dds,
const HDF5CF::Var * var,
hid_t file_id,
const string & filename )

Definition at line 68 of file h5commoncfdap.cc.

◆ gen_dap_onevar_dds_array()

void gen_dap_onevar_dds_array ( DDS & dds,
const HDF5CF::Var * var,
hid_t file_id,
const string & filename,
const vector< HDF5CF::Dimension * > & dims )

Definition at line 181 of file h5commoncfdap.cc.

◆ gen_dap_onevar_dds_sca_64bit_int()

void gen_dap_onevar_dds_sca_64bit_int ( const HDF5CF::Var * var,
const string & filename )

Definition at line 93 of file h5commoncfdap.cc.

◆ gen_dap_onevar_dds_sca_atomic()

void gen_dap_onevar_dds_sca_atomic ( DDS & dds,
const HDF5CF::Var * var,
const string & filename )

Definition at line 121 of file h5commoncfdap.cc.

◆ gen_dap_onevar_dmr()

void gen_dap_onevar_dmr ( libdap::D4Group * d4_grp,
const HDF5CF::Var * var,
hid_t file_id,
const string & filename )

Definition at line 412 of file h5commoncfdap.cc.

◆ gen_dap_onevar_dmr_array()

void gen_dap_onevar_dmr_array ( D4Group * d4_grp,
const HDF5CF::Var * var,
hid_t file_id,
const string & filename,
const vector< HDF5CF::Dimension * > & dims )

Definition at line 545 of file h5commoncfdap.cc.

◆ gen_dap_onevar_dmr_sca()

void gen_dap_onevar_dmr_sca ( D4Group * d4_grp,
const HDF5CF::Var * var,
const string & filename )

Definition at line 425 of file h5commoncfdap.cc.

◆ gen_dap_special_oneobj_das()

void gen_dap_special_oneobj_das ( AttrTable * at,
const HDF5CF::Attribute * attr,
const HDF5CF::Var * var )

Definition at line 276 of file h5commoncfdap.cc.

◆ gen_dap_str_attr()

void gen_dap_str_attr ( AttrTable * at,
const HDF5CF::Attribute * attr )

Transfer string attributes to a DAP2 AttrTable.

For an HDF5 string attribute stored in a HDF5CF::Attribute, transfer the value(s) of that attribute to a DAP2 AttrTable object. This function handles both single and multiple attribute value cases. It should only be called for string attributes. Except as noted below, the attribute values are escaped so that non-printable ASCII characters are represented by a backslash and an octal code (e.g. \005).The operation occurrs in the libdap4 rather than in the handler level.

Note
If the given HDF5CF::Attribute uses UTF-8, it will still be escaped as if it were an ASCII string (or used iso-8859-1 encoding) unless the BES key H5.EscapeUTF8Attr is false (default is true).
Parameters
atPut the string attribute in this DAP2 AttrTable
attrThe source attribute information

Definition at line 616 of file h5commoncfdap.cc.

◆ get_cf_string()

string get_cf_string ( string & s)

Definition at line 1517 of file h5commoncfdap.cc.

◆ get_cf_string_helper()

string get_cf_string_helper ( string & s)

Definition at line 1528 of file h5commoncfdap.cc.

◆ handle_coor_attr_for_int64_var()

void handle_coor_attr_for_int64_var ( const HDF5CF::Attribute * attr,
const string & var_path,
string & tempstring,
bool chg_coor_value )

Definition at line 1046 of file h5commoncfdap.cc.

◆ is_fvalue_valid()

bool is_fvalue_valid ( H5DataType var_dtype,
const HDF5CF::Attribute * attr )

Definition at line 297 of file h5commoncfdap.cc.

◆ map_cfh5_attr_container_to_dap4()

void map_cfh5_attr_container_to_dap4 ( libdap::D4Attribute * d4_con,
const HDF5CF::Attribute * attr )

Definition at line 1087 of file h5commoncfdap.cc.

◆ map_cfh5_grp_attr_to_dap4()

void map_cfh5_grp_attr_to_dap4 ( libdap::D4Group * d4_grp,
const HDF5CF::Attribute * attr )

Definition at line 1079 of file h5commoncfdap.cc.

◆ map_cfh5_var_attrs_to_dap4()

void map_cfh5_var_attrs_to_dap4 ( const HDF5CF::Var * var,
BaseType * d4_var )

Definition at line 1070 of file h5commoncfdap.cc.

◆ map_cfh5_var_attrs_to_dap4_int64()

void map_cfh5_var_attrs_to_dap4_int64 ( const HDF5CF::Var * var,
BaseType * d4_var )

Definition at line 941 of file h5commoncfdap.cc.

◆ need_attr_values_for_dap4()

bool need_attr_values_for_dap4 ( const HDF5CF::Var * var)

Definition at line 931 of file h5commoncfdap.cc.

◆ need_special_attribute_handling()

bool need_special_attribute_handling ( const HDF5CF::Attribute * attr,
const HDF5CF::Var * var )

Definition at line 270 of file h5commoncfdap.cc.