4#include "h5baseobject.h"
21 virtual ~H5Map() =
default;
30 virtual bool readRasterCoordinates(
31 const std::string& file,
32 const std::string& lengthUnits =
"") = 0;
36 virtual bool readRasterSpatialReference(
const std::string& file) = 0;
40 virtual bool readRasterLengthUnits(
const std::string& file) = 0;
45 virtual bool readRasterData(
46 const std::string& file,
47 const std::string& dataUnits =
"") = 0;
52 Eigen::Ref<Eigen::MatrixXd> M,
53 const std::string& dataUnits =
"") = 0;
56 virtual Eigen::MatrixXd
getData(
const std::string& dataUnits =
"") = 0;
59 virtual bool setDomain(
const h5geo::Domain& domain) = 0;
62 Eigen::Ref<Eigen::Vector2d> v,
63 const std::string& lengthUnits =
"",
64 bool doCoordTransform =
false) = 0;
67 Eigen::Ref<Eigen::Vector2d> v,
68 const std::string& lengthUnits =
"",
69 bool doCoordTransform =
false) = 0;
72 Eigen::Ref<Eigen::Vector2d> v,
73 const std::string& lengthUnits =
"",
74 bool doCoordTransform =
false) = 0;
117 const std::string& lengthUnits =
"",
118 bool doCoordTransform =
false) = 0;
121 const std::string& lengthUnits =
"",
122 bool doCoordTransform =
false) = 0;
125 const std::string& lengthUnits =
"",
126 bool doCoordTransform =
false) = 0;
139 virtual std::optional<h5gt::DataSet>
getMapD()
const = 0;
142using H5Map_ptr = std::unique_ptr<H5Map, h5geo::ObjectDeleter>;
Base class for geo-objects.
Definition h5baseobject.h:13
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
virtual bool setDomain(const h5geo::Domain &domain)=0
Set domain for the map (TVD, TVDSS, TWT, OWT)
virtual std::optional< h5gt::Group > addExternalAttributeMap(H5Map *map, std::string name="")=0
Add internal attribute map.
virtual bool setPoint1(Eigen::Ref< Eigen::Vector2d > v, const std::string &lengthUnits="", bool doCoordTransform=false)=0
Set coordinates of upper-right matrix corner.
virtual bool setPoint2(Eigen::Ref< Eigen::Vector2d > v, const std::string &lengthUnits="", bool doCoordTransform=false)=0
Set coordinates of bottom-left matrix corner.
virtual std::vector< h5gt::Group > getAttributeMapGroupList()=0
Find and return vector of attribute maps Groups within current map.
virtual std::optional< h5gt::Group > addInternalAttributeMap(H5Map *map, std::string name="")=0
Add internal attribute map.
virtual bool setOrigin(Eigen::Ref< Eigen::Vector2d > v, const std::string &lengthUnits="", bool doCoordTransform=false)=0
Set coordinates of upper-left matrix corner.
virtual Eigen::VectorXd getPoint1(const std::string &lengthUnits="", bool doCoordTransform=false)=0
Get coordinates of upper-right matrix corner.
virtual Eigen::MatrixXd getData(const std::string &dataUnits="")=0
Read data from DataSet.
virtual std::optional< h5gt::DataSet > getMapD() const =0
Get current map's DataSet.
virtual bool removeAttributeMap(const std::string &name)=0
Remove attribute map.
virtual H5MapParam getParam()=0
Get parameters that were used to create current map.
virtual size_t getNX()=0
Get number of Eigen column-major matrix columns.
virtual std::optional< h5gt::Group > addAttributeMap(H5Map *map, std::string name="")=0
Add attribute map.
virtual Eigen::VectorXd getOrigin(const std::string &lengthUnits="", bool doCoordTransform=false)=0
Get coordinates of upper-left matrix corner.
virtual Eigen::VectorXd getPoint2(const std::string &lengthUnits="", bool doCoordTransform=false)=0
Get coordinates of bottom-left matrix corner.
virtual size_t getAttributeMapCount()=0
Get number of atribute maps within current map.
virtual size_t getNY()=0
Get number of Eigen column-major matrix rows.
virtual H5MapContainer * openMapContainer() const =0
Open H5MapContainer where current map resides.
virtual H5Map * openAttributeMap(const std::string &name)=0
Open attribute map.
virtual std::vector< std::string > getAttributeMapNameList()=0
Find and return vector of attribute maps names within current map.
virtual bool writeData(Eigen::Ref< Eigen::MatrixXd > M, const std::string &dataUnits="")=0
Write data to DataSet.
virtual h5geo::Domain getDomain()=0
Get domain (TVD, TVDSS, TWT, OWT)
Class for creating H5Map.
Definition h5base.h:98