bes Updated for version 3.20.13
h5commoncfdap.cc File Reference

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

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <iostream>
#include <sstream>
#include <unordered_map>
#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, const 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_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, const EOS5GridPCType grid_proj_code, const 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_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, const 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, const hid_t file_id, const string &filename)
 
void gen_dap_onevar_dmr (libdap::D4Group *d4_grp, const HDF5CF::Var *var, const hid_t file_id, 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
Muqun 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,
const unsigned short  g_suffix 
)

Definition at line 914 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 1489 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 829 of file h5commoncfdap.cc.

◆ add_cf_grid_mapinfo_var()

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

Definition at line 882 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 1095 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 976 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 1630 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 1378 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 1527 of file h5commoncfdap.cc.

◆ add_gm_spcvs_attrs()

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

Definition at line 1588 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 1613 of file h5commoncfdap.cc.

◆ add_ll_valid_range()

void add_ll_valid_range ( AttrTable *  at,
bool  is_lat 
)

Definition at line 1133 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 1621 of file h5commoncfdap.cc.

◆ check_update_int64_attr()

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

Definition at line 1216 of file h5commoncfdap.cc.

◆ gen_dap4_attr()

D4Attribute * gen_dap4_attr ( const HDF5CF::Attribute attr)

Definition at line 1336 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 481 of file h5commoncfdap.cc.

◆ gen_dap_onevar_dds()

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

Definition at line 72 of file h5commoncfdap.cc.

◆ gen_dap_onevar_dmr()

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

Definition at line 540 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 329 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).

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).
Attributes named 'origname' or 'fullnamepath' are never escaped.
Parameters
atPut the string attribute in this DAP2 AttrTable
attrThe source attribute information

Definition at line 791 of file h5commoncfdap.cc.

◆ get_cf_string()

string get_cf_string ( string &  s)

Definition at line 1738 of file h5commoncfdap.cc.

◆ get_cf_string_helper()

string get_cf_string_helper ( string &  s)

Definition at line 1749 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 1286 of file h5commoncfdap.cc.

◆ is_fvalue_valid()

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

Definition at line 349 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 1328 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 1320 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 1309 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 1156 of file h5commoncfdap.cc.

◆ need_attr_values_for_dap4()

bool need_attr_values_for_dap4 ( const HDF5CF::Var var)

Definition at line 1146 of file h5commoncfdap.cc.

◆ need_special_attribute_handling()

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

Definition at line 323 of file h5commoncfdap.cc.