6 #ifndef MDAL_TUFLOWFV_HPP
7 #define MDAL_TUFLOWFV_HPP
15 #include "mdal_data_model.hpp"
16 #include "mdal_memory_data_model.hpp"
18 #include "mdal_driver.hpp"
19 #include "mdal_cf.hpp"
23 namespace TuflowFVActiveFlag
25 size_t activeData( std::shared_ptr<NetCDFFile> ncFile,
27 size_t timestepsCount,
43 Classification classificationX,
44 Classification classificationY,
50 std::shared_ptr<NetCDFFile> ncFile
52 size_t activeData(
size_t indexStart,
size_t count,
int *buffer )
override;
68 size_t levelFacesCount,
70 size_t maximumLevelsCount,
71 std::shared_ptr<NetCDFFile> ncFile
75 size_t activeData(
size_t indexStart,
size_t count,
int *buffer )
override;
77 size_t verticalLevelData(
size_t indexStart,
size_t count,
double *buffer )
override;
78 size_t faceToVolumeData(
size_t indexStart,
size_t count,
int *buffer )
override;
79 size_t scalarVolumesData(
size_t indexStart,
size_t count,
double *buffer )
override;
80 size_t vectorVolumesData(
size_t indexStart,
size_t count,
double *buffer )
override;
88 size_t mLevelFacesCount;
91 std::shared_ptr<NetCDFFile> mNcFile;
93 int mNcidVerticalLevels = -1;
94 int mNcidVerticalLevelsZ = -1;
95 int mNcidActive2D = -1;
123 void populateElements( Vertices &vertices, Edges &, Faces &faces )
override;
124 void addBedElevation(
MemoryMesh *mesh )
override;
125 std::string getCoordinateSystemVariableName()
override;
126 std::set<std::string> ignoreNetCDFVariables()
override;
127 void parseNetCDFVariableMetadata(
int varid,
128 std::string &variableName,
132 bool *invertedDirection,
133 bool *is_x )
override;
134 std::vector<std::pair<double, double>> parseClassification(
int varid )
const override;
135 std::string getTimeVariableName()
const override;
136 std::shared_ptr<MDAL::Dataset> create2DDataset(
137 std::shared_ptr<MDAL::DatasetGroup> group,
140 double fill_val_x,
double fill_val_y )
override;
142 std::shared_ptr<MDAL::Dataset> create3DDataset(
143 std::shared_ptr<MDAL::DatasetGroup> group,
146 double fill_val_x,
double fill_val_y )
override;
148 void addBedElevationDatasetOnFaces();
149 void populateVertices( MDAL::Vertices &vertices );
150 void populateFaces( MDAL::Faces &faces );
151 virtual DateTime defaultReferenceTime()
const override;
153 void calculateMaximumLevelCount();
154 int mMaximumLevelsCount = -1;
Definition: mdal_cf.hpp:78
Definition: mdal_cf.hpp:24
Definition: mdal_data_model.hpp:113
Definition: mdal_data_model.hpp:137
Definition: mdal_datetime.hpp:48
NetCDF Climate and Forecast (CF) Metadata Conventions http://cfconventions.org and http://ugrid-conve...
Definition: mdal_cf.hpp:116
TUFLOW FV format.
Definition: mdal_tuflowfv.hpp:115
Definition: mdal_memory_data_model.hpp:291
Definition: mdal_tuflowfv.hpp:36
size_t activeData(size_t indexStart, size_t count, int *buffer) override
For drivers that supports it, see supportsActiveFlag()
Definition: mdal_tuflowfv.cpp:85
Definition: mdal_tuflowfv.hpp:58
size_t vectorVolumesData(size_t indexStart, size_t count, double *buffer) override
For DataOnVolumes.
Definition: mdal_tuflowfv.cpp:227
size_t verticalLevelData(size_t indexStart, size_t count, double *buffer) override
For DataOnVolumes.
Definition: mdal_tuflowfv.cpp:151
size_t faceToVolumeData(size_t indexStart, size_t count, int *buffer) override
For DataOnVolumes.
Definition: mdal_tuflowfv.cpp:172
size_t activeData(size_t indexStart, size_t count, int *buffer) override
For drivers that supports it, see supportsActiveFlag()
Definition: mdal_tuflowfv.cpp:281
size_t verticalLevelCountData(size_t indexStart, size_t count, int *buffer) override
For DataOnVolumes.
Definition: mdal_tuflowfv.cpp:134
size_t scalarVolumesData(size_t indexStart, size_t count, double *buffer) override
For DataOnVolumes.
Definition: mdal_tuflowfv.cpp:194
Definition: mdal_cf.hpp:54
TimeLocation
Definition: mdal_cf.hpp:56