33#ifdef NETCDFCPP_AVAILABLE
34# include "netcdf-cxx4/netcdf"
52 Exception(
string errorMessage)
54 m_error_message =
"Error in NetCDF parser: " + errorMessage;
60 void AppendErrorMessage(
string errormessage)
62 m_error_message.append(
"\nError in NetCDF parser: " + errormessage);
67 string GetErrorMessage()
69 return m_error_message;
73 string m_error_message;
97 void LoadFile(
string NetCDF_Filepath);
110 void GetStaticData(
double* layer_depth,
double* depth_map, Date* timeline);
116 void SetCurrentTime(
int offset_from_start_time);
124 void GetDynamicData(
double* x_velocity,
double* y_velocity,
double* z_velocity);
128 enum DIMENSION_NUMBER
137 enum DIMENSION_BITMASK
143 T2_MASK = 1 << T2_NUM,
144 VOID_DIMENSION_MASK = 1 << 5
146 static const DIMENSION_BITMASK SURFACE = (DIMENSION_BITMASK)(X_MASK | Y_MASK);
147 static const DIMENSION_BITMASK DEPTH = Z_MASK;
148 static const DIMENSION_BITMASK SPACE = (DIMENSION_BITMASK)(SURFACE | DEPTH);
149 static const DIMENSION_BITMASK SPACE_TIME = (DIMENSION_BITMASK)(SPACE | T_MASK);
150 static const DIMENSION_BITMASK SURFACE_TIME = (DIMENSION_BITMASK)(SURFACE | T_MASK);
151 static const DIMENSION_BITMASK EXPANDED_TIME = (DIMENSION_BITMASK)(T_MASK | T2_MASK);
152 static const DIMENSION_BITMASK ALL_SPACE_AND_TIME = (DIMENSION_BITMASK)(SPACE | EXPANDED_TIME);
159 DIMENSION_BITMASK required_dimensions;
162 struct system_variables
168 variable_info layer_depth;
176 string m_t2_dim_name;
186 void read_dynamic_variable_data(
double* value_array, variable_info variable);
194 void read_variable_info_from_file(variable_info& variable);
200 void report_exception(
string error_message);
202 netCDF::NcFile* m_ncfile;
204 int m_current_time_offset;
206 system_variables m_variables;
209 string m_fill_value_attribute_name;
210 string m_offset_value_attribute_name;
211 string m_scaling_value_attribute_name;
212 string m_resolution_attribute_name;
214 Exception* m_exception_collector;
Definition NetCDFParser.h:9
Date structure for time coordinates.
Definition NetCDFParser.h:12
int hour
Hour.
Definition NetCDFParser.h:16
int minute
Minute.
Definition NetCDFParser.h:17
int day
Day.
Definition NetCDFParser.h:15
int year
Year.
Definition NetCDFParser.h:13
int second
Second.
Definition NetCDFParser.h:18
int month
Month.
Definition NetCDFParser.h:14
Grid dimensions structure.
Definition NetCDFParser.h:23
double sizeY
Size of grid cells in Y-direction [m].
Definition NetCDFParser.h:29
int numX
Number of grid cells in X-direction.
Definition NetCDFParser.h:24
int numT
Number of time steps.
Definition NetCDFParser.h:27
int numY
Number of grid cells in Y-direction.
Definition NetCDFParser.h:25
int numZ
Number of grid cells in Z-direction.
Definition NetCDFParser.h:26
double sizeX
Size of grid cells in X-direction [m].
Definition NetCDFParser.h:28