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
h5devcurve.h
1#ifndef H5DEVCURVE_H
2#define H5DEVCURVE_H
3
4#include "h5baseobject.h"
5
6#include <Eigen/Dense>
7
9class H5Well;
10
21{
22protected:
23 virtual ~H5DevCurve() = default;
24
25public:
27 virtual bool writeMD(
28 Eigen::Ref<Eigen::VectorXd> v,
29 const std::string& units = "") = 0;
31 virtual bool writeAZIM(
32 Eigen::Ref<Eigen::VectorXd> v,
33 const std::string& units = "") = 0;
35 virtual bool writeINCL(
36 Eigen::Ref<Eigen::VectorXd> v,
37 const std::string& units = "") = 0;
39 virtual bool writeTVD(
40 Eigen::Ref<Eigen::VectorXd> v,
41 const std::string& units = "") = 0;
43 virtual bool writeDX(
44 Eigen::Ref<Eigen::VectorXd> v,
45 const std::string& units = "") = 0;
47 virtual bool writeDY(
48 Eigen::Ref<Eigen::VectorXd> v,
49 const std::string& units = "") = 0;
51 virtual bool writeOWT(
52 Eigen::Ref<Eigen::VectorXd> v,
53 const std::string& units = "") = 0;
54
56 virtual bool setActive() = 0;
58 virtual bool isActive() = 0;
59
64 virtual void updateMdAzimIncl() = 0;
69 virtual void updateTvdDxDy() = 0;
70
72 virtual size_t getNCurves() = 0;
74 virtual size_t getNSamp() = 0;
76 virtual Eigen::VectorXd getCurve(
77 const h5geo::DevDataType& name,
78 const std::string& units = "",
79 bool doCoordTransform = false) = 0;
81 virtual Eigen::VectorXd getCurve(
82 const std::string& name,
83 const std::string& units = "",
84 bool doCoordTransform = false) = 0;
85
90 virtual std::string getRelativeName() = 0;
91
94
98 virtual H5Well* openWell() = 0;
99
101 virtual std::optional<h5gt::DataSet> getDevCurveD() = 0;
102};
103
104using H5DevCurve_ptr = std::unique_ptr<H5DevCurve, h5geo::ObjectDeleter>;
105
106#endif // H5DEVCURVE_H
Base class for geo-objects.
Definition h5baseobject.h:13
Provides API to work with well deviations (trajectories)
Definition h5devcurve.h:21
virtual void updateMdAzimIncl()=0
Calculate MD, AZIM, INCL based on X, Y, TVD
virtual Eigen::VectorXd getCurve(const std::string &name, const std::string &units="", bool doCoordTransform=false)=0
Get curve.
virtual std::string getRelativeName()=0
Get current dev curve's name.
virtual H5DevCurveParam getParam()=0
Get parameters that were used to create current dev curve.
virtual bool writeDY(Eigen::Ref< Eigen::VectorXd > v, const std::string &units="")=0
Write DY curve.
virtual bool writeDX(Eigen::Ref< Eigen::VectorXd > v, const std::string &units="")=0
Write DX curve.
virtual bool isActive()=0
Check if current dev curve is active for the parent H5Well.
virtual size_t getNCurves()=0
Get number of curves.
virtual bool setActive()=0
Set current dev curve as active for the parent H5Well.
virtual Eigen::VectorXd getCurve(const h5geo::DevDataType &name, const std::string &units="", bool doCoordTransform=false)=0
Get curve.
virtual bool writeMD(Eigen::Ref< Eigen::VectorXd > v, const std::string &units="")=0
Write MD curve.
virtual size_t getNSamp()=0
Get number of samples.
virtual bool writeOWT(Eigen::Ref< Eigen::VectorXd > v, const std::string &units="")=0
Write OWT curve.
virtual bool writeTVD(Eigen::Ref< Eigen::VectorXd > v, const std::string &units="")=0
Write TVD curve.
virtual bool writeAZIM(Eigen::Ref< Eigen::VectorXd > v, const std::string &units="")=0
Write AZIM curve.
virtual void updateTvdDxDy()=0
Calculate MD, AZIM, INCL based on X, Y, TVD
virtual H5Well * openWell()=0
Open parent H5Well.
virtual std::optional< h5gt::DataSet > getDevCurveD()=0
Get current dev curve's DataSet.
virtual H5WellContainer * openWellContainer()=0
Open H5WellContainer where current dev curve resides.
virtual bool writeINCL(Eigen::Ref< Eigen::VectorXd > v, const std::string &units="")=0
Write INCL curve.
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
Class for creating H5DevCurve.
Definition h5base.h:149