1 #ifndef teca_array_attributes_h
2 #define teca_array_attributes_h
4 #include "teca_metadata.h"
32 centering(0), size(0), units(), long_name(), description(),
33 have_fill_value(0), fill_value(1e20f)
36 template <
typename fv_t =
float>
38 unsigned long n,
const std::string &un,
const std::string &ln,
39 const std::string &descr,
const int &have_fv=0,
const fv_t &fv=fv_t(1e20f)) :
40 type_code(tc), centering(cen), size(n), units(un), long_name(ln),
41 description(descr), have_fill_value(have_fv), fill_value(fv)
49 type_code(0), centering(0), size(0), units(), long_name(),
50 description(), have_fill_value(0), fill_value(1.e20f)
72 void to_stream(std::ostream &os);
99 cell_centering = 0x0100,
100 x_face_centering = 0x0201,
101 y_face_centering = 0x0202,
102 z_face_centering = 0x0203,
103 x_edge_centering = 0x0401,
104 y_edge_centering = 0x0402,
105 z_edge_centering = 0x0403,
106 point_centering = 0x0800,
107 no_centering = 0x1000,
111 std::variant<char,
unsigned char, short,
unsigned short,
112 int,
unsigned int, long,
unsigned long,
long long,
113 unsigned long long, float,
double>;
115 unsigned int type_code;
116 unsigned int centering;
119 std::string long_name;
120 std::string description;
122 fill_value_t fill_value;