VAPoR  0.1
UDUnitsClass.h
Go to the documentation of this file.
1 //
2 // $Id$
3 //
4 
5 
6 #ifndef _UDUnitsClass_h_
7 #define _UDUnitsClass_h_
8 
9 #include <string>
10 #include <vector>
11 #include <map>
12 #include <algorithm>
13 
14 union ut_unit;
15 struct ut_system;
16 
17 namespace VAPoR {
18 
19 
30 public:
31  UDUnits();
32  ~UDUnits();
33 
39  int Initialize();
40 
44  bool IsPressureUnit(std::string unitstr) const;
45 
49  bool IsTimeUnit(std::string unitstr) const;
50 
54  bool IsLatUnit(std::string unitstr) const;
55 
59  bool IsLonUnit(std::string unitstr) const;
60 
64  bool IsLengthUnit(std::string unitstr) const;
65 
70  bool AreUnitsConvertible(const ut_unit *unit, std::string unitstr) const;
71 
75  bool ValidUnit(std::string unitstr) const;
76 
97  bool Convert(
98  const std::string from,
99  const std::string to,
100  const float *src,
101  float *dst,
102  size_t n
103  ) const;
104 
105 bool Convert(
106  const std::string from,
107  const std::string to,
108  const double *src,
109  double *dst,
110  size_t n
111 ) const;
112 
119  void DecodeTime(
120  double seconds, int* year, int* month, int* day,
121  int* hour, int* minute, int* second
122  ) const;
123 
130  double EncodeTime(
131  int year, int month, int day, int hour, int minute, int second
132  ) const;
133 
139  std::string GetErrMsg() const;
140 
141 private:
142  std::map <int, std::string> _statmsg;
143  int _status;
144  ut_unit *_pressureUnit;
145  ut_unit *_timeUnit;
146  ut_unit *_latUnit;
147  ut_unit *_lonUnit;
148  ut_unit *_lengthUnit;
149  ut_system *_unitSystem;
150 
151 };
152 };
153 #endif
#define VDF_API
Definition: common.h:61