h5geo 0.4.0
C++17 and python API to work with geo-data (seismic, wells, maps, other in process) based on HDF5. Aimed at geoscientists and developers.
Loading...
Searching...
No Matches
h5horizonimpl.h
1#ifndef H5HORIZONIMPL_H
2#define H5HORIZONIMPL_H
3
4#include "../h5horizon.h"
5#include "h5baseobjectimpl.h"
6
7template <typename TBase>
9
10class H5HorizonImpl : public H5BaseObjectImpl<H5Horizon>
11{
12protected:
13 explicit H5HorizonImpl(const h5gt::Group &group);
14 virtual ~H5HorizonImpl() = default;
15
16public:
17 virtual bool writeData(
18 Eigen::Ref<Eigen::MatrixXd> M,
19 const std::string& unitsFrom = "",
20 const std::string& unitsTo = "") override;
21
22 virtual Eigen::MatrixXd getData(
23 const std::string& unitsFrom = "",
24 const std::string& unitsTo = "") override;
25
26 virtual bool writeComponent(
27 const std::string& componentName,
28 Eigen::Ref<Eigen::VectorXd> v,
29 const std::string& unitsFrom = "",
30 const std::string& unitsTo = "") override;
31
32 virtual Eigen::VectorXd getComponent(
33 const std::string& componentName,
34 const std::string& unitsFrom = "",
35 const std::string& unitsTo = "") override;
36
37 virtual bool setNPoints(size_t n) override;
38 virtual bool setNComponents(size_t n) override;
39 virtual bool setComponents(const std::map<std::string, size_t>& components) override;
40 virtual bool setDomain(const h5geo::Domain& domain) override;
41
42 virtual H5BaseContainer* openContainer() const override;
43 virtual size_t getNPoints() override;
44 virtual size_t getNComponents() override;
45 virtual std::map<std::string, size_t> getComponents() override;
46 virtual h5geo::Domain getDomain() override;
47
48 virtual H5HorizonParam getParam() override;
49
50 virtual std::optional<h5gt::DataSet> getHorizonD() const override;
51
52 //----------- FRIEND CLASSES -----------
53 friend class H5BaseObjectImpl<H5Horizon>;
59 friend class H5BaseObjectImpl<H5BaseObject>;
60 friend class H5BaseObjectImpl<H5BasePoints>;
61 friend class H5BaseObjectImpl<H5Points1>;
62 friend class H5BaseObjectImpl<H5Points2>;
63 friend class H5BaseObjectImpl<H5Points3>;
64 friend class H5BaseObjectImpl<H5Points4>;
65 friend class H5BaseObjectImpl<H5WellTops>;
66 friend class H5BaseObjectImpl<H5Map>;
67 friend class H5BaseObjectImpl<H5Seis>;
68 friend class H5BaseObjectImpl<H5Vol>;
69 friend class H5BaseObjectImpl<H5Well>;
70 friend class H5BaseObjectImpl<H5DevCurve>;
71 friend class H5BaseObjectImpl<H5LogCurve>;
72 friend H5Horizon* h5geo::openHorizon(h5gt::Group group);
73};
74
75#endif // H5HORIZONIMPL_H
Base class for geo-containers.
Definition h5basecontainer.h:9
Definition h5basecontainerimpl.h:11
Base class for geo-objects.
Definition h5baseobject.h:13
Definition h5baseobjectimpl.h:12
Base class for Points.
Definition h5basepoints.h:16
Provides API to work with well deviations (trajectories)
Definition h5devcurve.h:21
Provides API to work with horizons.
Definition h5horizon.h:17
Definition h5horizonimpl.h:11
virtual Eigen::VectorXd getComponent(const std::string &componentName, const std::string &unitsFrom="", const std::string &unitsTo="") override
Read single component from DataSet.
Definition h5horizonimpl.cpp:72
virtual bool setComponents(const std::map< std::string, size_t > &components) override
Set components.
Definition h5horizonimpl.cpp:138
virtual bool setNComponents(size_t n) override
Resize columns of HDF5 DataSet.
Definition h5horizonimpl.cpp:119
virtual std::map< std::string, size_t > getComponents() override
Return component names and corresponding HDF5 rows.
Definition h5horizonimpl.cpp:200
virtual H5BaseContainer * openContainer() const override
Open container where current points resides.
Definition h5horizonimpl.cpp:167
virtual size_t getNComponents() override
Return number of dimension for the horizon.
Definition h5horizonimpl.cpp:186
virtual Eigen::MatrixXd getData(const std::string &unitsFrom="", const std::string &unitsTo="") override
Read data from DataSet.
Definition h5horizonimpl.cpp:29
virtual bool setDomain(const h5geo::Domain &domain) override
Set domain for the points (TVD, TVDSS, TWT, OWT)
Definition h5horizonimpl.cpp:159
virtual bool writeData(Eigen::Ref< Eigen::MatrixXd > M, const std::string &unitsFrom="", const std::string &unitsTo="") override
Write data to DataSet.
Definition h5horizonimpl.cpp:10
virtual H5HorizonParam getParam() override
Get parameters that were used to create current points.
Definition h5horizonimpl.cpp:225
virtual h5geo::Domain getDomain() override
Get domain (TVD, TVDSS, TWT, OWT)
Definition h5horizonimpl.cpp:218
virtual std::optional< h5gt::DataSet > getHorizonD() const override
Get current points DataSet.
Definition h5horizonimpl.cpp:256
virtual bool setNPoints(size_t n) override
Resize rows of HDF5 DataSet.
Definition h5horizonimpl.cpp:98
virtual bool writeComponent(const std::string &componentName, Eigen::Ref< Eigen::VectorXd > v, const std::string &unitsFrom="", const std::string &unitsTo="") override
Write single component to DataSet.
Definition h5horizonimpl.cpp:43
virtual size_t getNPoints() override
Return number of points for the horizon.
Definition h5horizonimpl.cpp:172
Provides API to work with well logs.
Definition h5logcurve.h:18
A container built around HDF5 file and used for storing and manipulating H5Map objects.
Definition h5mapcontainer.h:15
Provides API to work with maps.
Definition h5map.h:19
Provides API to work with 1D points.
Definition h5points1.h:12
Provides API to work with 2D points.
Definition h5points2.h:12
Provides API to work with 3D points.
Definition h5points3.h:12
Provides API to work with 4D points.
Definition h5points4.h:12
A container built around HDF5 file and used for storing and manipulating H5Seis objects.
Definition h5seiscontainer.h:15
Provides API to work with seismic.
Definition h5seis.h:33
A container built around HDF5 file and used for storing and manipulating H5Vol objects.
Definition h5volcontainer.h:15
Provides API to work with volumes.
Definition h5vol.h:15
A container built around HDF5 file and used for storing and manipulating H5Well objects.
Definition h5wellcontainer.h:15
Provides API to work with wells.
Definition h5well.h:22
Provides API to work with welltops.
Definition h5welltops.h:12
H5GEO_EXPORT H5Horizon * openHorizon(h5gt::Group group)
Factory function for opening H5Horizon.
Definition h5baseimpl.cpp:2358
Class for creating H5Horizon.
Definition h5base.h:87