17 #include "mdal_data_model.hpp"
19 #include "mdal_hdf5.hpp"
20 #include "mdal_driver.hpp"
21 #include "mdal_xml.hpp"
40 bool countInFirstColumn =
true;
68 size_t scalarData(
size_t indexStart,
size_t count,
double *buffer )
override;
69 size_t vectorData(
size_t indexStart,
size_t count,
double *buffer )
override;
72 std::vector<hsize_t> offsets(
size_t indexStart );
73 std::vector<hsize_t> selections(
size_t copyValues );
122 size_t scalarData(
size_t indexStart,
size_t count,
double *buffer )
override;
123 size_t vectorData(
size_t indexStart,
size_t count,
double *buffer )
override;
126 size_t subtractFunction(
size_t indexStart,
size_t count,
double *buffer );
127 size_t flowFunction(
size_t indexStart,
size_t count,
double *buffer );
128 size_t joinFunction(
size_t indexStart,
size_t count,
double *buffer );
129 size_t extractRawData(
size_t indexStart,
size_t count,
size_t nDatasets, std::vector<double> &buf );
132 std::vector<std::shared_ptr<XdmfDataset>> mReferenceDatasets;
159 bool canReadDatasets(
const std::string &uri )
override;
160 void load(
const std::string &datFile,
Mesh *mesh )
override;
183 DatasetGroups parseXdmfXml( );
186 std::shared_ptr<MDAL::DatasetGroup> findGroup( std::map< std::string, std::shared_ptr<MDAL::DatasetGroup> > &groups,
187 const std::string &groupName,
198 std::pair<HdfDataset, HyperSlab > parseXdmfDataset(
const XMLFile &xmfFile, xmlNodePtr itemNod );
201 HyperSlab parseHyperSlab(
const std::string &str,
size_t dimB );
219 void hdf5NamePath(
const std::string &dataItemPath, std::string &filePath, std::string &hdf5Path );
222 std::vector<size_t> parseDimensions2D(
const std::string &data );
225 std::string mDatFile;
226 std::map< std::string, std::shared_ptr<HdfFile> > mHdfFiles;
Definition: mdal_hdf5.hpp:192
Definition: mdal_data_model.hpp:97
Definition: mdal_data_model.hpp:137
Definition: mdal_xdmf.hpp:142
DriverXdmf()
Driver for XDMF Files.
Definition: mdal_xdmf.cpp:592
Definition: mdal_driver.hpp:28
Definition: mdal_data_model.hpp:238
Definition: mdal_datetime.hpp:18
The XdmfDataset is simple vector or scalar dataset where values are stored in one HD5 variable and ar...
Definition: mdal_xdmf.hpp:59
size_t vectorData(size_t indexStart, size_t count, double *buffer) override
For DataOnVertices or DataOnFaces.
Definition: mdal_xdmf.cpp:83
size_t scalarData(size_t indexStart, size_t count, double *buffer) override
For DataOnVertices or DataOnFaces.
Definition: mdal_xdmf.cpp:61
The XdmfFunctionDataset is a function that references two or three scalar XdmfDatasets to create a ve...
Definition: mdal_xdmf.hpp:102
void swap()
Swaps first and second reference dataset.
Definition: mdal_xdmf.cpp:143
void addReferenceDataset(const HyperSlab &slab, const HdfDataset &hdfDataset, const RelativeTimestamp &time)
Adds reference XMDF dataset.
Definition: mdal_xdmf.cpp:129
size_t scalarData(size_t indexStart, size_t count, double *buffer) override
For DataOnVertices or DataOnFaces.
Definition: mdal_xdmf.cpp:150
FunctionType
Definition: mdal_xdmf.hpp:105
@ Subtract
scalar: $1 - $0, e.g. calculate relative depth
Definition: mdal_xdmf.hpp:107
@ Flow
scalar: flow velocity (abs) = sqrt($0/($2-$3)*$0/($2-$3) + $1/($2-$3)*$1/($2-$3))
Definition: mdal_xdmf.hpp:108
@ Join
vector: [$0, $1] from 2 scalars
Definition: mdal_xdmf.hpp:106
size_t vectorData(size_t indexStart, size_t count, double *buffer) override
For DataOnVertices or DataOnFaces.
Definition: mdal_xdmf.cpp:164
C++ Wrapper around libxml2 library.
Definition: mdal_xml.hpp:17
The XdmfDataset reads the data directly from HDF5 file by usage of hyperslabs retrieval.
Definition: mdal_xdmf.hpp:36