MDAL
|
Driver of 3Di file format. More...
#include <mdal_3di.hpp>
Public Member Functions | |
Driver3Di * | create () override |
std::string | buildUri (const std::string &meshFile) override |
![]() | |
DriverCF (const std::string &name, const std::string &longName, const std::string &filters, const int capabilities) | |
bool | canReadMesh (const std::string &uri) override |
std::unique_ptr< Mesh > | load (const std::string &fileName, const std::string &meshName="") override |
![]() | |
Driver (const std::string &name, const std::string &longName, const std::string &filters, int capabilityFlags) | |
std::string | name () const |
std::string | longName () const |
std::string | filters () const |
bool | hasCapability (Capability capability) const |
bool | hasWriteDatasetCapability (MDAL_DataLocation location) const |
virtual std::string | writeDatasetOnFileSuffix () const |
virtual std::string | saveMeshOnFileSuffix () const |
virtual bool | canReadDatasets (const std::string &uri) |
virtual int | faceVerticesMaximumCount () const |
returns the maximum vertices per face | |
virtual void | load (const std::string &uri, Mesh *mesh) |
virtual void | save (const std::string &fileName, const std::string &meshName, Mesh *mesh) |
virtual void | createDatasetGroup (Mesh *mesh, const std::string &groupName, MDAL_DataLocation dataLocation, bool hasScalarData, const std::string &datasetGroupFile) |
virtual void | createDataset (DatasetGroup *group, RelativeTimestamp time, const double *values, const int *active) |
virtual void | createDataset (DatasetGroup *group, RelativeTimestamp time, const double *values, const int *verticalLevelCount, const double *verticalExtrusion) |
virtual bool | persist (DatasetGroup *group) |
Additional Inherited Members | |
![]() | |
virtual std::shared_ptr< MDAL::Dataset > | create2DDataset (std::shared_ptr< MDAL::DatasetGroup > group, size_t ts, const MDAL::CFDatasetGroupInfo &dsi, double fill_val_x, double fill_val_y) |
virtual std::shared_ptr< MDAL::Dataset > | create3DDataset (std::shared_ptr< MDAL::DatasetGroup > group, size_t ts, const MDAL::CFDatasetGroupInfo &dsi, double fill_val_x, double fill_val_y) |
virtual DateTime | defaultReferenceTime () const |
Returns the default reference time. | |
void | setProjection (MDAL::Mesh *m) |
cfdataset_info_map | parseDatasetGroupInfo () |
DateTime | parseTime (std::vector< RelativeTimestamp > ×) |
Populates the times array and returns the reference time. | |
void | addDatasetGroups (Mesh *mesh, const std::vector< RelativeTimestamp > ×, const cfdataset_info_map &dsinfo_map, const DateTime &referenceTime) |
![]() | |
std::string | mFileName |
std::string | mRequestedMeshName |
std::shared_ptr< NetCDFFile > | mNcFile |
CFDimensions | mDimensions |
Driver of 3Di file format.
The result 3Di NetCDF file is based on CF-conventions with some additions. It is unstructured grid with data stored in NetCDF/HDF5 file format. A division is made between a 1D and 2D which can be distinguished through the prefixes “MESH2D” and “MESH1D”. For both meshes the information is present in coordinate, id, and type variables.
A version of the data scheme is not present yet.
The 2D Mesh consists of calculation Nodes that represents centers of Faces. There is no concept of Vertices in the file. The vertices that forms a face are specified by X,Y coordinates in the "Face Contours" arrays. The "lines" represent the face's edges and are again specified by X,Y coordinate of the line center. Data is specified on calculation nodes (i.e. dataset defined on faces) and on lines (i.e. dataset defined on edges - not implemented yet)
The 1D Mesh is present too, but not parsed yet.