18 #ifndef GRID3DOBJECT_H 19 #define GRID3DOBJECT_H 40 typedef struct GRID_POINT_3D {
46 double&
operator ()(
const size_t& ix,
const size_t& iy,
const size_t& iz);
47 double operator ()(
const size_t& ix,
const size_t& iy,
const size_t& iz)
const;
67 const size_t& i_nx,
const size_t& i_ny,
const size_t& i_nz,
68 const size_t& i_ncols,
const size_t& i_nrows,
const size_t& i_ndepths);
70 Grid3DObject(
const size_t& ncols,
const size_t& nrows,
const size_t& ndepths,
71 const double&
cellsize,
const Coords& i_llcorner);
73 Grid3DObject(
const size_t& ncols,
const size_t& nrows,
const size_t& ndepths,
74 const double&
cellsize,
const Coords& i_llcorner,
const double& init);
88 void set(
const size_t& ncols,
const size_t& nrows,
const size_t& depths,
89 const double&
cellsize,
const Coords& i_llcorner);
98 void set(
const double&
cellsize,
const Coords& i_llcorner,
const Array3D<double>& grid3D_in);
100 void set(
const size_t& ncols,
const size_t& nrows,
const size_t& ndepths,
101 const double&
cellsize,
const Coords& i_llcorner,
const double& init);
103 void set(
const Grid3DObject& i_grid,
const double& init);
105 void size(
size_t& o_ncols,
size_t& o_nrows,
size_t& o_ndepths)
const;
107 size_t getNx()
const;
108 size_t getNy()
const;
109 size_t getNz()
const;
130 bool gridify(Coords& point)
const;
142 bool gridify(std::vector<Coords>& vec_points,
const bool& keep_invalid=
false)
const;
158 void extractLayer(
const size_t& i_z, Grid2DObject& layer);
187 std::vector<double>
z;
Grid3DObject & operator-=(const double &rhs)
Definition: Grid3DObject.cc:68
const Grid3DObject operator+(const double &rhs) const
Definition: Grid3DObject.cc:47
const Grid3DObject operator/(const double &rhs) const
Definition: Grid3DObject.cc:125
Definition: Grid3DObject.h:40
Array3D< double > grid3D
Definition: Grid3DObject.h:186
Grid3DObject & operator*=(const double &rhs)
Definition: Grid3DObject.cc:94
std::vector< double > z
Definition: Grid3DObject.h:187
Coords llcorner
Vector of depths
Definition: Grid3DObject.h:188
size_t getNz() const
Definition: Grid3DObject.cc:376
A class to represent 3D Grids. Typical application: wind field.
Definition: Grid3DObject.h:38
bool gridify(Coords &point) const
Compute the positional parameters that are not already known This means that the Coords::point object...
Definition: Grid3DObject.cc:208
bool operator==(const Grid3DObject &in) const
Operator that tests for equality.
Definition: Grid3DObject.cc:146
Grid3DObject & operator/=(const double &rhs)
Definition: Grid3DObject.cc:120
A class to handle geographic coordinate systems. This class offers an easy way to transparently conve...
Definition: Coords.h:81
friend std::istream & operator>>(std::istream &is, Grid3DObject &grid)
Definition: Grid3DObject.cc:458
const Grid3DObject operator*(const double &rhs) const
Definition: Grid3DObject.cc:99
bool z_is_absolute
Definition: Grid3DObject.h:190
size_t size() const
Definition: Grid3DObject.cc:364
bool isSameGeolocalization(const Grid3DObject &target) const
check if the current Grid3DObject has the same geolocalization attributes as another Grid3DObject...
Definition: Grid3DObject.cc:394
void extractLayer(const size_t &i_z, Grid2DObject &layer)
Extract a 2D grid for a given height.
Definition: Grid3DObject.cc:407
void clear()
deletes the data, but keeps geolocalization
Definition: Grid3DObject.cc:380
size_t iy
grid index along Y
Definition: Grid3DObject.h:42
Grid3DObject & operator=(const Grid3DObject &)
Assignement operator.
Definition: Grid3DObject.cc:26
const Grid3DObject operator-(const double &rhs) const
Definition: Grid3DObject.cc:73
size_t getNy() const
Definition: Grid3DObject.cc:372
bool grid_to_WGS84(Coords &point) const
Converts grid coordinates (i,j) into WGS84 coordinates.
Definition: Grid3DObject.cc:226
friend std::ostream & operator<<(std::ostream &os, const Grid3DObject &grid)
Definition: Grid3DObject.cc:445
size_t getNx() const
Definition: Grid3DObject.cc:368
double & operator()(const size_t &ix, const size_t &iy, const size_t &iz)
Definition: Grid3DObject.cc:419
bool operator!=(const Grid3DObject &in) const
Operator that tests for inequality.
Definition: Grid3DObject.cc:150
double cellsize
Definition: Grid3DObject.h:189
void setValues(const double &cellsize, const Coords &i_llcorner)
Are z coordinates absolute or relative to a DEM?
Definition: Grid3DObject.cc:388
bool empty() const
Check if a grid does not contain any data (but it can contain geolocalization)
Definition: Grid3DObject.cc:384
size_t iz
grid index along Z
Definition: Grid3DObject.h:43
Grid3DObject()
Definition: Grid3DObject.cc:154
Grid3DObject & operator+=(const double &rhs)
Definition: Grid3DObject.cc:42
size_t ix
grid index along X
Definition: Grid3DObject.h:41
const std::string toString() const
Definition: Grid3DObject.cc:435
bool WGS84_to_grid(Coords point) const
Converts WGS84 coordinates into grid coordinates (i,j)
Definition: Grid3DObject.cc:273