hydrobricks
Loading...
Searching...
No Matches
FileNetcdf.h
1#ifndef HYDROBRICKS_FILE_NETCDF_H
2#define HYDROBRICKS_FILE_NETCDF_H
3
4#include <netcdf.h>
5
6#include "Includes.h"
7
8class FileNetcdf {
9 public:
10 explicit FileNetcdf();
11
13
20 bool OpenReadOnly(const string& path);
21
28 bool Create(const string& path);
29
33 void Close();
34
40 int GetVariableCount() const;
41
48 int GetVarId(const string& varName) const;
49
56 string GetVarName(int varId) const;
57
65 vecInt GetVarDimIds(int varId, int dimCount) const;
66
74 int DefDim(const string& dimName, int length);
75
82 int GetDimId(const string& dimName) const;
83
90 bool HasDim(const string& dimName) const;
91
98 int GetDimLen(const string& dimName) const;
99
109 int DefVarInt(const string& varName, vecInt dimIds, int dimCount = 1, bool compress = false);
110
120 int DefVarFloat(const string& varName, vecInt dimIds, int dimCount = 1, bool compress = false);
121
131 int DefVarDouble(const string& varName, vecInt dimIds, int dimCount = 1, bool compress = false);
132
140 vecInt GetVarInt1D(const string& varName, int size) const;
141
149 vecFloat GetVarFloat1D(const string& varName, int size) const;
150
158 vecDouble GetVarDouble1D(const string& varName, int size) const;
159
168 axxd GetVarDouble2D(int varId, int rows, int cols) const;
169
176 void PutVar(int varId, const vecInt& values);
177
184 void PutVar(int varId, const vecFloat& values);
185
192 void PutVar(int varId, const vecDouble& values);
193
200 void PutVar(int varId, const axd& values);
201
208 void PutVar(int varId, const vecAxd& values);
209
216 void PutVar(int varId, const vecAxxd& values);
217
224 bool HasVar(const string& varName) const;
225
233 bool HasAtt(const string& attName, const string& varName = "") const;
234
242 vecStr GetAttString1D(const string& attName, const string& varName = "") const;
243
251 void PutAttString(const string& attName, const vecStr& values, int varId = NC_GLOBAL);
252
260 string GetAttText(const string& attName, const string& varName = "") const;
261
269 void PutAttText(const string& attName, const string& value, int varId = NC_GLOBAL);
270
271 protected:
272 int _ncId;
273
274 private:
280 void CheckNcStatus(int status) const;
281};
282
283#endif // HYDROBRICKS_FILE_NETCDF_H
Definition FileNetcdf.h:8
vecInt GetVarDimIds(int varId, int dimCount) const
Definition FileNetcdf.cpp:71
int DefVarFloat(const string &varName, vecInt dimIds, int dimCount=1, bool compress=false)
Definition FileNetcdf.cpp:112
bool Create(const string &path)
Definition FileNetcdf.cpp:33
vecStr GetAttString1D(const string &attName, const string &varName="") const
Definition FileNetcdf.cpp:236
int GetDimId(const string &dimName) const
Definition FileNetcdf.cpp:85
void PutAttText(const string &attName, const string &value, int varId=NC_GLOBAL)
Definition FileNetcdf.cpp:294
int DefDim(const string &dimName, int length)
Definition FileNetcdf.cpp:78
bool HasAtt(const string &attName, const string &varName="") const
Definition FileNetcdf.cpp:227
int DefVarInt(const string &varName, vecInt dimIds, int dimCount=1, bool compress=false)
Definition FileNetcdf.cpp:101
bool HasDim(const string &dimName) const
Definition FileNetcdf.cpp:215
int GetVariableCount() const
Definition FileNetcdf.cpp:50
string GetAttText(const string &attName, const string &varName="") const
Definition FileNetcdf.cpp:276
vecDouble GetVarDouble1D(const string &varName, int size) const
Definition FileNetcdf.cpp:154
void PutAttString(const string &attName, const vecStr &values, int varId=NC_GLOBAL)
Definition FileNetcdf.cpp:259
int GetVarId(const string &varName) const
Definition FileNetcdf.cpp:57
bool OpenReadOnly(const string &path)
Definition FileNetcdf.cpp:22
axxd GetVarDouble2D(int varId, int rows, int cols) const
Definition FileNetcdf.cpp:164
void PutVar(int varId, const vecInt &values)
Definition FileNetcdf.cpp:171
vecFloat GetVarFloat1D(const string &varName, int size) const
Definition FileNetcdf.cpp:144
vecInt GetVarInt1D(const string &varName, int size) const
Definition FileNetcdf.cpp:134
int DefVarDouble(const string &varName, vecInt dimIds, int dimCount=1, bool compress=false)
Definition FileNetcdf.cpp:123
void Close()
Definition FileNetcdf.cpp:45
int GetDimLen(const string &dimName) const
Definition FileNetcdf.cpp:92
bool HasVar(const string &varName) const
Definition FileNetcdf.cpp:221
string GetVarName(int varId) const
Definition FileNetcdf.cpp:64