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
h5base.h
1#ifndef H5BASE_H
2#define H5BASE_H
3
4#ifndef H5GT_USE_EIGEN
5#define H5GT_USE_EIGEN // should be defined before including h5gt
6#endif
7
8#ifdef H5GEO_USE_GDAL
9#include "private/h5core_sr_settings.h"
10#endif
11
12#include "h5geo_export.h"
13#include "private/h5enum.h"
14#include "private/h5point.h"
15
16#include <vector>
17#include <map>
18#include <memory>
19#include <optional>
20
21typedef unsigned long long hsize_t ;
22
23namespace h5gt {
24class File;
25class Group;
26class DataSet;
27}
28
29namespace h5geo {
30enum class CreationType: unsigned;
31enum class DevDataType: unsigned;
32}
33
34class H5BaseContainer;
35class H5BaseObject;
36class H5SeisContainer;
37class H5VolContainer;
38class H5MapContainer;
39class H5WellContainer;
40class H5Seis;
41class H5Vol;
42class H5Map;
43class H5Well;
44class H5DevCurve;
45class H5LogCurve;
46class H5BasePoints;
47class H5Points1;
48class H5Points2;
49class H5Points3;
50class H5Points4;
51class H5WellTops;
52class H5Horizon;
53
59 std::string spatialReference;
60 std::string lengthUnits;
61 std::string temporalUnits;
62 std::string angularUnits;
63 std::string dataUnits;
64 double nullValue = std::nan("nan");
65};
66
72 h5geo::Domain domain;
73 size_t nPoints;
74 hsize_t chunkSize = 10;
75};
76
82
88 h5geo::Domain domain;
89 size_t nPoints;
90 std::map<std::string, size_t> components;
91 hsize_t pointsChunkSize = 10;
92};
93
99 double X0;
100 double Y0;
101 double X1;
102 double Y1;
103 double X2;
104 double Y2;
105 size_t nX;
106 size_t nY;
107 h5geo::Domain domain;
108 hsize_t xChunkSize = 10;
109 hsize_t yChunkSize = 10;
110};
111
117 double X0;
118 double Y0;
119 double Z0;
120 double dX;
121 double dY;
122 double dZ;
123 size_t nX;
124 size_t nY;
125 size_t nZ;
126 double orientation;
127 h5geo::Domain domain;
128 hsize_t xChunkSize = 64;
129 hsize_t yChunkSize = 64;
130 hsize_t zChunkSize = 64;
131 unsigned compression_level = 6;
132};
133
139 double headX;
140 double headY;
141 double kb = 0;
142 std::string uwi;
143};
144
150 hsize_t chunkSize = 10;
151};
152
158 hsize_t chunkSize = 10;
159};
160
166 h5geo::Domain domain;
167 h5geo::SeisDataType dataType;
168 h5geo::SurveyType surveyType;
169 size_t nTrc;
170 size_t nSamp;
171 double srd = 0;
172 hsize_t trcChunk = 20000;
173 hsize_t stdChunk = 100;
174 bool mapSEGY = false;
175 std::vector<std::string> segyFiles;
176};
177
182{
183protected:
184 virtual ~H5Base() = default;
185
186public:
189 virtual H5Base* clone() = 0;
190 virtual void Delete() = 0;
191};
192
193#ifdef H5GEO_USE_GDAL
194class OGRCoordinateTransformation;
195class GDALDataset;
196#endif
197
201namespace h5geo
202{
203
207struct H5GEO_EXPORT ObjectDeleter
208{
209 void operator()(H5Base * ptr) const;
210};
211
212#ifdef H5GEO_USE_GDAL
213struct H5GEO_EXPORT OGRCoordinateTransformationDeleter
214{
215 void operator()(OGRCoordinateTransformation * ptr) const;
216};
217
218struct H5GEO_EXPORT GDALDatasetDeleter
219{
220 void operator()(GDALDataset * ptr) const;
221};
222#endif
223
224
225extern "C" {
226
227//----------- CONTAINERS -----------
231H5GEO_EXPORT H5BaseContainer* createContainer(
232 h5gt::File h5File, h5geo::ContainerType cntType, h5geo::CreationType createFlag);
233
238 std::string& fileName, h5geo::ContainerType cntType, h5geo::CreationType createFlag);
239
242 h5gt::File h5File, h5geo::CreationType createFlag);
245 std::string& fileName, h5geo::CreationType createFlag);
246
249 h5gt::File h5File, h5geo::CreationType createFlag);
252 std::string& fileName, h5geo::CreationType createFlag);
253
256 h5gt::File h5File, h5geo::CreationType createFlag);
259 std::string& fileName, h5geo::CreationType createFlag);
260
263 h5gt::File h5File, h5geo::CreationType createFlag);
266 std::string& fileName, h5geo::CreationType createFlag);
267
273H5GEO_EXPORT H5BaseContainer* openContainer(
274 h5gt::File h5File);
275
282 const std::string& fileName);
283
286 h5gt::File h5File);
289 const std::string& fileName);
290
293 h5gt::File h5File);
296 const std::string& fileName);
297
299H5GEO_EXPORT H5VolContainer* openVolContainer(
300 h5gt::File h5File);
303 const std::string& fileName);
304
306H5GEO_EXPORT H5MapContainer* openMapContainer(
307 h5gt::File h5File);
310 const std::string& fileName);
311
314 h5gt::File h5File);
317 const std::string& fileName);
318
320H5GEO_EXPORT bool isGeoContainer(
321 h5gt::File file);
323H5GEO_EXPORT bool isGeoContainerByType(
324 h5gt::File file,
325 const h5geo::ContainerType& cntType);
326
328H5GEO_EXPORT h5geo::ContainerType getGeoContainerType(
329 h5gt::File file);
330
331//----------- OBJECTS -----------
337H5GEO_EXPORT H5BaseObject* openObject(
338 h5gt::Group group);
339
345H5GEO_EXPORT H5BaseObject* openObjectByName(
346 const std::string& fileName, const std::string& objName);
347
349H5GEO_EXPORT H5BaseObject* openBaseObject(
350 h5gt::Group group);
353 const std::string& fileName, const std::string& objName);
354
356H5GEO_EXPORT H5Map* openMap(
357 h5gt::Group group);
359H5GEO_EXPORT H5Map* openMapByName(
360 const std::string& fileName, const std::string& objName);
361
363H5GEO_EXPORT H5Seis* openSeis(
364 h5gt::Group group);
366H5GEO_EXPORT H5Seis* openSeisByName(
367 const std::string& fileName, const std::string& objName);
368
370H5GEO_EXPORT H5Vol* openVol(
371 h5gt::Group group);
373H5GEO_EXPORT H5Vol* openVolByName(
374 const std::string& fileName, const std::string& objName);
375
377H5GEO_EXPORT H5Well* openWell(
378 h5gt::Group group);
380H5GEO_EXPORT H5Well* openWellByName(
381 const std::string& fileName, const std::string& objName);
382
384H5GEO_EXPORT H5DevCurve* openDevCurve(
385 h5gt::Group group);
387H5GEO_EXPORT H5DevCurve* openDevCurveByName(
388 const std::string& fileName, const std::string& objName);
389
391H5GEO_EXPORT H5LogCurve* openLogCurve(
392 h5gt::Group group);
394H5GEO_EXPORT H5LogCurve* openLogCurveByName(
395 const std::string& fileName, const std::string& objName);
396
398H5GEO_EXPORT H5BasePoints* openPoints(
399 h5gt::Group group);
401H5GEO_EXPORT H5BasePoints* openPointsByName(
402 const std::string& fileName, const std::string& objName);
403
405H5GEO_EXPORT H5Points1* openPoints1(
406 h5gt::Group group);
408H5GEO_EXPORT H5Points1* openPoints1ByName(
409 const std::string& fileName, const std::string& objName);
410
412H5GEO_EXPORT H5Points2* openPoints2(
413 h5gt::Group group);
415H5GEO_EXPORT H5Points2* openPoints2ByName(
416 const std::string& fileName, const std::string& objName);
417
419H5GEO_EXPORT H5Points3* openPoints3(
420 h5gt::Group group);
422H5GEO_EXPORT H5Points3* openPoints3ByName(
423 const std::string& fileName, const std::string& objName);
424
426H5GEO_EXPORT H5Points4* openPoints4(
427 h5gt::Group group);
429H5GEO_EXPORT H5Points4* openPoints4ByName(
430 const std::string& fileName, const std::string& objName);
431
433H5GEO_EXPORT H5WellTops* openWellTops(
434 h5gt::Group group);
436H5GEO_EXPORT H5WellTops* openWellTopsByName(
437 const std::string& fileName, const std::string& objName);
438
440H5GEO_EXPORT H5Horizon* openHorizon(
441 h5gt::Group group);
443H5GEO_EXPORT H5Horizon* openHorizonByName(
444 const std::string& fileName, const std::string& objName);
445
447H5GEO_EXPORT bool isGeoObject(
448 const h5gt::Group& group);
450H5GEO_EXPORT bool isGeoObjectByType(
451 const h5gt::Group& group,
452 const h5geo::ObjectType& objType);
453
455H5GEO_EXPORT bool isHorizon(const h5gt::Group &group);
457H5GEO_EXPORT bool isPoints1(const h5gt::Group &group);
459H5GEO_EXPORT bool isPoints2(const h5gt::Group &group);
461H5GEO_EXPORT bool isPoints3(const h5gt::Group &group);
463H5GEO_EXPORT bool isPoints4(const h5gt::Group &group);
465H5GEO_EXPORT bool isWellTops(const h5gt::Group &group);
467H5GEO_EXPORT bool isPoints(const h5gt::Group &group);
469H5GEO_EXPORT bool isMap(const h5gt::Group &group);
471H5GEO_EXPORT bool isWell(const h5gt::Group &group);
473H5GEO_EXPORT bool isLogCurve(const h5gt::Group &group);
475H5GEO_EXPORT bool isDevCurve(const h5gt::Group &group);
477H5GEO_EXPORT bool isSeis(const h5gt::Group &group);
479H5GEO_EXPORT bool isVol(const h5gt::Group &group);
480
482H5GEO_EXPORT h5geo::ObjectType getGeoObjectType(
483 const h5gt::Group& group);
484
485}
486
487} // h5geo
488
489using H5Base_ptr = std::unique_ptr<H5Base, h5geo::ObjectDeleter>;
490
491#ifdef H5GEO_USE_GDAL
492using OGRCT_ptr = std::unique_ptr<OGRCoordinateTransformation, h5geo::OGRCoordinateTransformationDeleter>;
493using GDALDS_ptr = std::unique_ptr<GDALDataset, h5geo::GDALDatasetDeleter>;
494#endif
495
496#endif // H5BASE_H
Base class for geo-containers.
Definition h5basecontainer.h:9
Base class for all geo-containers and geo-objects.
Definition h5base.h:182
virtual H5Base * clone()=0
Base class for geo-objects.
Definition h5baseobject.h:13
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
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
Basic namespace.
Definition h5base.h:29
H5GEO_EXPORT H5Map * openMap(h5gt::Group group)
Factory function for opening H5Map.
Definition h5baseimpl.cpp:2026
H5GEO_EXPORT H5BaseContainer * openContainerByName(const std::string &fileName)
Factory function for opening geo-container.
Definition h5baseimpl.cpp:1743
H5GEO_EXPORT H5Seis * openSeisByName(const std::string &fileName, const std::string &objName)
Factory function for opening H5Seis.
Definition h5baseimpl.cpp:2060
H5GEO_EXPORT H5LogCurve * openLogCurveByName(const std::string &fileName, const std::string &objName)
Factory function for opening H5LogCurve.
Definition h5baseimpl.cpp:2168
H5GEO_EXPORT bool isMap(const h5gt::Group &group)
Check if HDF5 object is H5Map.
Definition h5baseimpl.cpp:1560
H5GEO_EXPORT bool isGeoContainerByType(h5gt::File file, const h5geo::ContainerType &cntType)
Check if the container belongs to any geo-type.
Definition h5baseimpl.cpp:1342
H5GEO_EXPORT H5BasePoints * openPointsByName(const std::string &fileName, const std::string &objName)
Factory function for opening H5BasePoints derived points.
Definition h5baseimpl.cpp:2202
H5GEO_EXPORT H5BaseContainer * createContainer(h5gt::File h5File, h5geo::ContainerType cntType, h5geo::CreationType createFlag)
Factory function for creating geo-container.
Definition h5baseimpl.cpp:1661
H5GEO_EXPORT H5SeisContainer * createSeisContainer(h5gt::File h5File, h5geo::CreationType createFlag)
Factory function for creating H5SeisContainer.
Definition h5baseimpl.cpp:1811
H5GEO_EXPORT H5VolContainer * createVolContainer(h5gt::File h5File, h5geo::CreationType createFlag)
Factory function for creating H5VolContainer.
Definition h5baseimpl.cpp:1856
H5GEO_EXPORT H5VolContainer * openVolContainer(h5gt::File h5File)
Factory function for opening H5VolContainer.
Definition h5baseimpl.cpp:1879
H5GEO_EXPORT H5BaseObject * openBaseObjectByName(const std::string &fileName, const std::string &objName)
Factory function for opening H5BaseObject.
Definition h5baseimpl.cpp:2006
H5GEO_EXPORT bool isGeoContainer(h5gt::File file)
Check if the container belongs to any geo-type.
Definition h5baseimpl.cpp:1333
H5GEO_EXPORT H5WellContainer * createWellContainerByName(std::string &fileName, h5geo::CreationType createFlag)
Factory function for creating H5WellContainer.
Definition h5baseimpl.cpp:1913
H5GEO_EXPORT H5Points3 * openPoints3ByName(const std::string &fileName, const std::string &objName)
Factory function for opening H5Points3.
Definition h5baseimpl.cpp:2284
H5GEO_EXPORT H5DevCurve * openDevCurve(h5gt::Group group)
Factory function for opening H5DevCurve.
Definition h5baseimpl.cpp:2134
H5GEO_EXPORT h5geo::ContainerType getGeoContainerType(h5gt::File file)
Get container geo-type.
Definition h5baseimpl.cpp:1361
H5GEO_EXPORT H5SeisContainer * openSeisContainerByName(const std::string &fileName)
Factory function for opening H5SeisContainer.
Definition h5baseimpl.cpp:1839
H5GEO_EXPORT H5Points4 * openPoints4ByName(const std::string &fileName, const std::string &objName)
Factory function for opening H5Points4.
Definition h5baseimpl.cpp:2311
H5GEO_EXPORT bool isHorizon(const h5gt::Group &group)
Check if HDF5 object is H5Horizon.
Definition h5baseimpl.cpp:1545
H5GEO_EXPORT H5WellContainer * createWellContainer(h5gt::File h5File, h5geo::CreationType createFlag)
Factory function for creating H5WellContainer.
Definition h5baseimpl.cpp:1901
H5GEO_EXPORT H5WellContainer * openWellContainerByName(const std::string &fileName)
Factory function for opening H5WellContainer.
Definition h5baseimpl.cpp:1930
H5GEO_EXPORT bool isDevCurve(const h5gt::Group &group)
Check if HDF5 object is H5DevCurve.
Definition h5baseimpl.cpp:1600
H5GEO_EXPORT h5geo::ObjectType getGeoObjectType(const h5gt::Group &group)
Get HDF5 object's geo-type.
Definition h5baseimpl.cpp:1409
H5GEO_EXPORT bool isGeoObject(const h5gt::Group &group)
Check if HDF5 object belongs to any geo-type.
Definition h5baseimpl.cpp:1367
H5GEO_EXPORT H5BaseObject * openObject(h5gt::Group group)
Factory function for opening geo-object.
Definition h5baseimpl.cpp:1944
H5GEO_EXPORT H5Well * openWellByName(const std::string &fileName, const std::string &objName)
Factory function for opening H5Well.
Definition h5baseimpl.cpp:2114
H5GEO_EXPORT H5MapContainer * openMapContainerByName(const std::string &fileName)
Factory function for opening H5MapContainer.
Definition h5baseimpl.cpp:1794
H5GEO_EXPORT H5Points2 * openPoints2(h5gt::Group group)
Factory function for opening H5Points2.
Definition h5baseimpl.cpp:2250
H5GEO_EXPORT H5BaseObject * openObjectByName(const std::string &fileName, const std::string &objName)
Factory function for opening geo-object.
Definition h5baseimpl.cpp:1979
H5GEO_EXPORT H5Well * openWell(h5gt::Group group)
Factory function for opening H5Well.
Definition h5baseimpl.cpp:2107
H5GEO_EXPORT H5Points2 * openPoints2ByName(const std::string &fileName, const std::string &objName)
Factory function for opening H5Points2.
Definition h5baseimpl.cpp:2257
H5GEO_EXPORT H5Vol * openVolByName(const std::string &fileName, const std::string &objName)
Factory function for opening H5Vol.
Definition h5baseimpl.cpp:2087
H5GEO_EXPORT bool isLogCurve(const h5gt::Group &group)
Check if HDF5 object is H5LogCurve.
Definition h5baseimpl.cpp:1590
H5GEO_EXPORT H5BaseContainer * createContainerByName(std::string &fileName, h5geo::ContainerType cntType, h5geo::CreationType createFlag)
Factory function for creating geo-container.
Definition h5baseimpl.cpp:1681
H5GEO_EXPORT bool isGeoObjectByType(const h5gt::Group &group, const h5geo::ObjectType &objType)
Check if HDF5 object belongs to specified geo-type.
Definition h5baseimpl.cpp:1376
H5GEO_EXPORT H5Points4 * openPoints4(h5gt::Group group)
Factory function for opening H5Points4.
Definition h5baseimpl.cpp:2304
H5GEO_EXPORT H5WellContainer * openWellContainer(h5gt::File h5File)
Factory function for opening H5WellContainer.
Definition h5baseimpl.cpp:1925
H5GEO_EXPORT H5VolContainer * openVolContainerByName(const std::string &fileName)
Factory function for opening H5VolContainer.
Definition h5baseimpl.cpp:1884
H5GEO_EXPORT H5MapContainer * createMapContainer(h5gt::File h5File, h5geo::CreationType createFlag)
Factory function for creating H5MapContainer.
Definition h5baseimpl.cpp:1764
H5GEO_EXPORT H5BasePoints * openPoints(h5gt::Group group)
Factory function for opening H5BasePoints derived points.
Definition h5baseimpl.cpp:2188
H5GEO_EXPORT bool isPoints3(const h5gt::Group &group)
Check if HDF5 object is H5Points3.
Definition h5baseimpl.cpp:1498
H5GEO_EXPORT H5Seis * openSeis(h5gt::Group group)
Factory function for opening H5Seis.
Definition h5baseimpl.cpp:2053
H5GEO_EXPORT H5Horizon * openHorizonByName(const std::string &fileName, const std::string &objName)
Factory function for opening H5Horizon.
Definition h5baseimpl.cpp:2367
H5GEO_EXPORT bool isPoints1(const h5gt::Group &group)
Check if HDF5 object is H5Points1.
Definition h5baseimpl.cpp:1456
H5GEO_EXPORT H5BaseContainer * openBaseContainerByName(const std::string &fileName)
Factory function for opening H5BaseContainer.
Definition h5baseimpl.cpp:1707
H5GEO_EXPORT H5Map * openMapByName(const std::string &fileName, const std::string &objName)
Factory function for opening H5Map.
Definition h5baseimpl.cpp:2033
H5GEO_EXPORT bool isWellTops(const h5gt::Group &group)
Check if HDF5 object is H5WellTops.
Definition h5baseimpl.cpp:1540
H5GEO_EXPORT bool isSeis(const h5gt::Group &group)
Check if HDF5 object is H5Seis.
Definition h5baseimpl.cpp:1610
H5GEO_EXPORT H5WellTops * openWellTops(h5gt::Group group)
Factory function for opening H5WellTops.
Definition h5baseimpl.cpp:2331
H5GEO_EXPORT H5SeisContainer * createSeisContainerByName(std::string &fileName, h5geo::CreationType createFlag)
Factory function for creating H5SeisContainer.
Definition h5baseimpl.cpp:1823
H5GEO_EXPORT H5MapContainer * createMapContainerByName(std::string &fileName, h5geo::CreationType createFlag)
Factory function for creating H5MapContainer.
Definition h5baseimpl.cpp:1776
H5GEO_EXPORT H5Vol * openVol(h5gt::Group group)
Factory function for opening H5Vol.
Definition h5baseimpl.cpp:2080
H5GEO_EXPORT H5BaseContainer * openContainer(h5gt::File h5File)
Factory function for opening geo-container.
Definition h5baseimpl.cpp:1723
H5GEO_EXPORT H5BaseObject * openBaseObject(h5gt::Group group)
Factory function for opening H5BaseObject.
Definition h5baseimpl.cpp:2000
H5GEO_EXPORT H5Points1 * openPoints1(h5gt::Group group)
Factory function for opening H5Points1.
Definition h5baseimpl.cpp:2223
H5GEO_EXPORT H5WellTops * openWellTopsByName(const std::string &fileName, const std::string &objName)
Factory function for opening H5WellTops.
Definition h5baseimpl.cpp:2338
H5GEO_EXPORT H5MapContainer * openMapContainer(h5gt::File h5File)
Factory function for opening H5MapContainer.
Definition h5baseimpl.cpp:1788
H5GEO_EXPORT bool isPoints4(const h5gt::Group &group)
Check if HDF5 object is H5Points4.
Definition h5baseimpl.cpp:1519
H5GEO_EXPORT H5Points1 * openPoints1ByName(const std::string &fileName, const std::string &objName)
Factory function for opening H5Points1.
Definition h5baseimpl.cpp:2230
H5GEO_EXPORT H5LogCurve * openLogCurve(h5gt::Group group)
Factory function for opening H5LogCurve.
Definition h5baseimpl.cpp:2161
H5GEO_EXPORT H5Horizon * openHorizon(h5gt::Group group)
Factory function for opening H5Horizon.
Definition h5baseimpl.cpp:2358
H5GEO_EXPORT bool isPoints(const h5gt::Group &group)
Check if HDF5 object belongs to any H5BasePoints derived type.
Definition h5baseimpl.cpp:1441
CreationType
Definition h5enum.h:468
H5GEO_EXPORT H5SeisContainer * openSeisContainer(h5gt::File h5File)
Factory function for opening H5SeisContainer.
Definition h5baseimpl.cpp:1834
H5GEO_EXPORT H5BaseContainer * openBaseContainer(h5gt::File h5File)
Factory function for opening H5BaseContainer.
Definition h5baseimpl.cpp:1701
H5GEO_EXPORT bool isVol(const h5gt::Group &group)
Check if HDF5 object is H5Vol.
Definition h5baseimpl.cpp:1644
H5GEO_EXPORT H5DevCurve * openDevCurveByName(const std::string &fileName, const std::string &objName)
Factory function for opening H5DevCurve.
Definition h5baseimpl.cpp:2141
H5GEO_EXPORT bool isPoints2(const h5gt::Group &group)
Check if HDF5 object is H5Points2.
Definition h5baseimpl.cpp:1477
H5GEO_EXPORT H5VolContainer * createVolContainerByName(std::string &fileName, h5geo::CreationType createFlag)
Factory function for creating H5VolContainer.
Definition h5baseimpl.cpp:1868
H5GEO_EXPORT bool isWell(const h5gt::Group &group)
Check if HDF5 object is H5Well.
Definition h5baseimpl.cpp:1575
H5GEO_EXPORT H5Points3 * openPoints3(h5gt::Group group)
Factory function for opening H5Points3.
Definition h5baseimpl.cpp:2277
Base class for object parameters.
Definition h5base.h:58
std::string temporalUnits
all geo-object's temporalUnits data must follow it (if any)
Definition h5base.h:61
double nullValue
usually used for missed values
Definition h5base.h:64
std::string dataUnits
all geo-object's dataUnits data must follow it (if any)
Definition h5base.h:63
std::string spatialReference
usually in the form authName:code given by 'proj.db' (probably using name will also work)
Definition h5base.h:59
std::string lengthUnits
all geo-object's lengthUnits data must follow it (if any)
Definition h5base.h:60
std::string angularUnits
all geo-object's angularUnits data must follow it (if any)
Definition h5base.h:62
Class for creating H5DevCurve.
Definition h5base.h:149
hsize_t chunkSize
see HDF5 chunking
Definition h5base.h:150
Class for creating H5Horizon.
Definition h5base.h:87
h5geo::Domain domain
time or depth (TWT, TVD etc)
Definition h5base.h:88
hsize_t pointsChunkSize
see HDF5 chunking
Definition h5base.h:91
std::map< std::string, size_t > components
component name and corresponding HDF5 row number
Definition h5base.h:90
size_t nPoints
number of points (columns within HDF5 DataSet)
Definition h5base.h:89
Class for creating H5LogCurve.
Definition h5base.h:157
hsize_t chunkSize
see HDF5 chunking
Definition h5base.h:158
Class for creating H5Map.
Definition h5base.h:98
double Y0
Y-coordinate of origin (upper-left corner of column-major Eigen matrix)
Definition h5base.h:100
hsize_t yChunkSize
see HDF5 chunking
Definition h5base.h:109
size_t nX
number of columns in column-major Eigen matrix
Definition h5base.h:105
double X2
X-coordinate of second point (lower-left corner of column-major Eigen matrix)
Definition h5base.h:103
h5geo::Domain domain
time or depth (TWT, TVD etc)
Definition h5base.h:107
double Y2
Y-coordinate of second point (lower-left corner of column-major Eigen matrix)
Definition h5base.h:104
double X1
X-coordinate of first point (upper-right corner of column-major Eigen matrix)
Definition h5base.h:101
size_t nY
number of rows in column-major Eigen matrix
Definition h5base.h:106
double X0
X-coordinate of origin (upper-left corner of column-major Eigen matrix)
Definition h5base.h:99
hsize_t xChunkSize
see HDF5 chunking
Definition h5base.h:108
double Y1
Y-coordinate of first point (upper-right corner of column-major Eigen matrix)
Definition h5base.h:102
Common class for creating H5Points1, H5Points2, H5Points3, H5Points4.
Definition h5base.h:71
size_t nPoints
number of points
Definition h5base.h:73
h5geo::Domain domain
time or depth (TWT, TVD etc)
Definition h5base.h:72
hsize_t chunkSize
see HDF5 chunking
Definition h5base.h:74
Class for creating H5Seis.
Definition h5base.h:165
hsize_t trcChunk
number of traces per chunk (see HDF5 chunking)
Definition h5base.h:172
std::vector< std::string > segyFiles
used to map SEGY files (use in pair with mapSEGY)
Definition h5base.h:175
h5geo::Domain domain
time or depth (TWT, TVD etc)
Definition h5base.h:166
hsize_t stdChunk
used secondary for creating datasets within Seis geo-object (see HDF5 chunking)
Definition h5base.h:173
h5geo::SurveyType surveyType
TWO_D or THREE_D.
Definition h5base.h:168
bool mapSEGY
SEGY mapping used at Seis creation time (use in pair with segyFiles)
Definition h5base.h:174
h5geo::SeisDataType dataType
STACK or PRESTACK.
Definition h5base.h:167
size_t nTrc
number of traces
Definition h5base.h:169
size_t nSamp
number of samples
Definition h5base.h:170
double srd
Seismic Reference Datum.
Definition h5base.h:171
Class for creating H5Vol.
Definition h5base.h:116
hsize_t zChunkSize
see HDF5 chunking
Definition h5base.h:130
size_t nZ
number of Z-values
Definition h5base.h:125
double dX
unrotated X-spacing
Definition h5base.h:120
double X0
X-coordinate of origin.
Definition h5base.h:117
hsize_t yChunkSize
see HDF5 chunking
Definition h5base.h:129
h5geo::Domain domain
time or depth (TWT, TVD etc)
Definition h5base.h:127
double Z0
Z-coordinate of origin.
Definition h5base.h:119
size_t nX
number of X-values
Definition h5base.h:123
double Y0
Y-coordinate of origin.
Definition h5base.h:118
double dY
unrotated Y-spacing
Definition h5base.h:121
double dZ
unrotated Z-zpacing
Definition h5base.h:122
double orientation
XY plane orientation (in angularUnits)
Definition h5base.h:126
size_t nY
number of Y-values
Definition h5base.h:124
hsize_t xChunkSize
see HDF5 chunking
Definition h5base.h:128
unsigned compression_level
see HDF5 chunking and deflate
Definition h5base.h:131
Class for creating H5Well.
Definition h5base.h:138
double headY
well head Y-coordinate
Definition h5base.h:140
double kb
kelly bushing
Definition h5base.h:141
double headX
well head X-coordinate
Definition h5base.h:139
Class for creating H5WellTops.
Definition h5base.h:81
Deleter for all H5Base inherited objects.
Definition h5base.h:208