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
h5wellimpl.h
1#ifndef H5WELLIMPL_H
2#define H5WELLIMPL_H
3
4#include "../h5well.h"
5#include "h5baseobjectimpl.h"
6
7class H5WellImpl : public H5BaseObjectImpl<H5Well>
8{
9protected:
10 explicit H5WellImpl(const h5gt::Group &group);
11 virtual ~H5WellImpl() = default;
12
13public:
14 virtual H5LogCurve* openLogCurve(
15 const std::string &logType,
16 const std::string &logName) override;
17 virtual H5LogCurve* openLogCurve(
18 h5gt::Group group) override;
19 virtual H5DevCurve* openDevCurve(
20 const std::string &devName) override;
21 virtual H5DevCurve* openDevCurve(
22 h5gt::Group group) override;
23 virtual H5WellTops* openWellTops() override;
24
26 std::string& logType,
27 std::string& logName,
29 h5geo::CreationType createFlag) override;
31 h5gt::Group group,
33 h5geo::CreationType createFlag) override;
35 std::string& devName,
37 h5geo::CreationType createFlag) override;
39 h5gt::Group group,
41 h5geo::CreationType createFlag) override;
44 h5geo::CreationType createFlag) override;
45
46 virtual bool setHeadCoord(
47 Eigen::Ref<Eigen::Vector2d> v,
48 const std::string& lengthUnits = "",
49 bool doCoordTransform = false) override;
50 virtual bool setKB(
51 double& val,
52 const std::string& lengthUnits = "") override;
53 virtual bool setUWI(const std::string& str) override;
54 virtual bool setActiveDevCurve(H5DevCurve* curve) override;
55
56 virtual Eigen::VectorXd getHeadCoord(
57 const std::string& lengthUnits = "",
58 bool doCoordTransform = false) override;
59 virtual double getKB(
60 const std::string& lengthUnits = "") override;
61 virtual std::string getUWI() override;
62
63 virtual H5DevCurve* openActiveDevCurve() override;
64 virtual std::vector<h5gt::Group> getDevCurveGroupList() override;
65 virtual std::vector<h5gt::Group> getLogCurveGroupList() override;
66 virtual std::vector<std::string> getDevCurveNameList() override;
67 virtual std::vector<std::string> getLogCurveNameList() override;
68 virtual std::vector<std::string> getLogTypeList() override;
69 virtual size_t getDevCurveCount() override;
70 virtual size_t getLogCurveCount() override;
71
72 virtual H5WellParam getParam() override;
73
74 virtual H5WellContainer* openWellContainer() override;
75
76 virtual std::optional<h5gt::Group> getDevG() override;
77 virtual std::optional<h5gt::Group> getActiveDevG() override;
78 virtual std::optional<h5gt::Group> getWellTopsG() override;
79 virtual std::optional<h5gt::Group> getLogG() override;
80 virtual std::optional<h5gt::Group> getLogTypeG(const std::string& logType) override;
81
82private:
83
84 //----------- FRIEND CLASSES -----------
85 friend class H5WellContainerImpl;
86 friend class H5LogCurveImpl;
87 friend class H5DevCurveImpl;
88 friend class H5WellTopsImpl;
89 friend class H5BaseObjectImpl<H5Well>;
90 friend H5Well* h5geo::openWell(h5gt::Group group);
91};
92
93#endif // H5WELLIMPL_H
Definition h5baseobjectimpl.h:12
Provides API to work with well deviations (trajectories)
Definition h5devcurve.h:21
Definition h5devcurveimpl.h:8
Provides API to work with well logs.
Definition h5logcurve.h:18
Definition h5logcurveimpl.h:8
A container built around HDF5 file and used for storing and manipulating H5Well objects.
Definition h5wellcontainer.h:15
Definition h5wellcontainerimpl.h:8
Provides API to work with wells.
Definition h5well.h:22
Definition h5wellimpl.h:8
virtual H5WellContainer * openWellContainer() override
Open H5WellContainer where current well resides.
Definition h5wellimpl.cpp:460
virtual H5WellParam getParam() override
Get parameters that were used to create current well.
Definition h5wellimpl.cpp:439
virtual H5WellTops * openWellTops() override
Open H5WellTops.
Definition h5wellimpl.cpp:106
virtual H5DevCurve * openDevCurve(const std::string &devName) override
Open H5DevCurve.
Definition h5wellimpl.cpp:72
virtual H5DevCurve * openActiveDevCurve() override
Get active H5DevCurve.
Definition h5wellimpl.cpp:353
virtual std::vector< h5gt::Group > getLogCurveGroupList() override
Find and return vector of H5LogCurve Groups within current well.
Definition h5wellimpl.cpp:373
virtual std::optional< h5gt::Group > getActiveDevG() override
Get current well's active H5DevCurve Group.
Definition h5wellimpl.cpp:478
virtual bool setHeadCoord(Eigen::Ref< Eigen::Vector2d > v, const std::string &lengthUnits="", bool doCoordTransform=false) override
Set XY well head coordinates.
Definition h5wellimpl.cpp:236
virtual H5LogCurve * openLogCurve(const std::string &logType, const std::string &logName) override
Open H5LogCurve.
Definition h5wellimpl.cpp:19
virtual std::vector< std::string > getLogCurveNameList() override
Find and return vector of H5LogCurve names within current well.
Definition h5wellimpl.cpp:391
virtual H5WellTops * createWellTops(H5WellTopsParam &p, h5geo::CreationType createFlag) override
Create H5WellTops.
Definition h5wellimpl.cpp:222
virtual std::optional< h5gt::Group > getLogG() override
Get current well's LOG Group (where H5LogCurves reside)
Definition h5wellimpl.cpp:493
virtual H5DevCurve * createDevCurve(std::string &devName, H5DevCurveParam &p, h5geo::CreationType createFlag) override
Create H5DevCurve.
Definition h5wellimpl.cpp:177
virtual double getKB(const std::string &lengthUnits="") override
Set kelly bushing.
Definition h5wellimpl.cpp:338
virtual std::optional< h5gt::Group > getWellTopsG() override
Get current well's H5WellTops Group.
Definition h5wellimpl.cpp:487
virtual std::optional< h5gt::Group > getDevG() override
Get current well's DEV Group (where H5DevCurves reside)
Definition h5wellimpl.cpp:467
virtual size_t getDevCurveCount() override
Get number of H5DevCurves within current well.
Definition h5wellimpl.cpp:423
virtual std::string getUWI() override
Get UWI Unique Well Identifier.
Definition h5wellimpl.cpp:347
virtual bool setUWI(const std::string &str) override
Set UWI Unique Well Identifier.
Definition h5wellimpl.cpp:272
virtual bool setKB(double &val, const std::string &lengthUnits="") override
Set XY kelly bushing.
Definition h5wellimpl.cpp:262
virtual Eigen::VectorXd getHeadCoord(const std::string &lengthUnits="", bool doCoordTransform=false) override
Get XY well head coordinates.
Definition h5wellimpl.cpp:309
virtual std::vector< std::string > getLogTypeList() override
Find and return vector of H5LogCurve types within current well.
Definition h5wellimpl.cpp:400
virtual std::vector< std::string > getDevCurveNameList() override
Find and return vector of H5DevCurve names within current well.
Definition h5wellimpl.cpp:382
virtual std::vector< h5gt::Group > getDevCurveGroupList() override
Omit active dev curve.
Definition h5wellimpl.cpp:364
virtual size_t getLogCurveCount() override
Get number of H5LogCurves within current well.
Definition h5wellimpl.cpp:431
virtual bool setActiveDevCurve(H5DevCurve *curve) override
Set selected H5DevCurve as active.
Definition h5wellimpl.cpp:280
virtual H5LogCurve * createLogCurve(std::string &logType, std::string &logName, H5LogCurveParam &p, h5geo::CreationType createFlag) override
Create H5LogCurve.
Definition h5wellimpl.cpp:115
virtual std::optional< h5gt::Group > getLogTypeG(const std::string &logType) override
Get current well's logType Group.
Definition h5wellimpl.cpp:501
Provides API to work with welltops.
Definition h5welltops.h:12
Definition h5welltopsimpl.h:8
H5GEO_EXPORT H5Well * openWell(h5gt::Group group)
Factory function for opening H5Well.
Definition h5baseimpl.cpp:2107
CreationType
Definition h5enum.h:468
Class for creating H5DevCurve.
Definition h5base.h:149
Class for creating H5LogCurve.
Definition h5base.h:157
Class for creating H5Well.
Definition h5base.h:138
Class for creating H5WellTops.
Definition h5base.h:81