The template class Array2D is a 2D Array (Matrix) able to hold any type of object as datatype. It relies on the Array2DProxy class to provide the [][] operator (slower than the (i,j) call). If the compilation flag NOSAFECHECKS is used, bounds check is turned off (leading to increased performances).
#include <Array2D.h>
Public Member Functions | |
Array2D () | |
Array2D (const size_t &anx, const size_t &any) | |
Array2D (const size_t &anx, const size_t &any, const T &init) | |
Array2D (const Array2D< T > &i_array2D, const size_t &i_nx, const size_t &i_ny, const size_t &i_ncols, const size_t &i_nrows) | |
Array2D (const Array3D< T > &array3D, const size_t &depth) | |
void | subset (const Array2D< T > &i_array2D, const size_t &i_nx, const size_t &i_ny, const size_t &i_ncols, const size_t &i_nrows) |
A method that can be used to cut out a subplane of an existing Array2D object that is passed as i_array2D argument. The resulting Array2D object is a by value copy of a subplane of the plane spanned by the i_array2D. More... | |
void | fill (const Array2D< T > &i_array2D, const size_t &i_nx, const size_t &i_ny, const size_t &i_ncols, const size_t &i_nrows) |
A method that can be used to insert a subplane into an existing Array2D object that is passed as i_array2D argument. This is exactly the opposite of the subset method an can be used to rebuild an array from subsets. More... | |
void | fill (const Array2D< T > &i_array2D, const size_t &i_nx, const size_t &i_ny) |
void | setKeepNodata (const bool i_keep_nodata) |
set how to process nodata values (ie: as nodata or as normal numbers) More... | |
bool | getKeepNodata () const |
get how to process nodata values (ie: as nodata or as normal numbers) More... | |
void | resize (const size_t &anx, const size_t &any) |
void | resize (const size_t &anx, const size_t &any, const T &init) |
void | size (size_t &anx, size_t &any) const |
size_t | size () const |
size_t | getNx () const |
size_t | getNy () const |
void | clear () |
bool | empty () const |
T | getMin () const |
returns the minimum value contained in the grid More... | |
T | getMax () const |
returns the maximum value contained in the grid More... | |
T | getMean () const |
returns the mean value contained in the grid More... | |
size_t | getCount () const |
returns the number of points contained in the grid. If setNodataHandling(IOUtils::RAW_NODATA), then the number of points is the size of the grid. If setNodataHandling(IOUtils::PARSE_NODATA), then it is the number of non-nodata values in the grid More... | |
const Array2D< T > | getAbs () const |
returns the grid of the absolute value of values contained in the grid More... | |
void | abs () |
const std::string | toString () const |
bool | checkEpsilonEquality (const Array2D< double > &rhs, const double &epsilon) const |
T & | operator() (const size_t &x, const size_t &y) |
const T | operator() (const size_t &x, const size_t &y) const |
T & | operator() (const size_t &i) |
const T | operator() (const size_t &i) const |
Array2DProxy< T > | operator[] (const size_t &i) |
Array2D< T > & | operator= (const T &value) |
Array2D< T > & | operator+= (const T &rhs) |
const Array2D< T > | operator+ (const T &rhs) const |
Array2D< T > & | operator+= (const Array2D< T > &rhs) |
const Array2D< T > | operator+ (const Array2D< T > &rhs) const |
Array2D< T > & | operator-= (const T &rhs) |
const Array2D< T > | operator- (const T &rhs) const |
Array2D< T > & | operator-= (const Array2D< T > &rhs) |
const Array2D< T > | operator- (const Array2D< T > &rhs) const |
Array2D< T > & | operator*= (const T &rhs) |
const Array2D< T > | operator* (const T &rhs) const |
Array2D< T > & | operator*= (const Array2D< T > &rhs) |
const Array2D< T > | operator* (const Array2D< T > &rhs) const |
Array2D< T > & | operator/= (const T &rhs) |
const Array2D< T > | operator/ (const T &rhs) const |
Array2D< T > & | operator/= (const Array2D< T > &rhs) |
const Array2D< T > | operator/ (const Array2D< T > &rhs) const |
bool | operator== (const Array2D< T > &) const |
Operator that tests for equality. More... | |
bool | operator!= (const Array2D< T > &) const |
Operator that tests for inequality. More... | |
Static Public Member Functions | |
static bool | checkEpsilonEquality (const Array2D< double > &rhs1, const Array2D< double > &rhs2, const double &epsilon) |
Protected Attributes | |
std::vector< T > | vecData |
size_t | nx |
size_t | ny |
bool | keep_nodata |
Friends | |
template<class P > | |
std::ostream & | operator<< (std::ostream &os, const Array2D< P > &array) |
template<class P > | |
std::istream & | operator>> (std::istream &is, Array2D< P > &array) |
mio::Array2D< T >::Array2D |
mio::Array2D< T >::Array2D | ( | const size_t & | anx, |
const size_t & | any | ||
) |
A constructor that creates an array of a given size
anx | number of columns of the new array |
any | number of rows of the new array |
mio::Array2D< T >::Array2D | ( | const size_t & | anx, |
const size_t & | any, | ||
const T & | init | ||
) |
A constructor that creates an array filled with constant values
anx | number of columns of the new array |
any | number of rows of the new array |
init | initial value to fill the array with |
mio::Array2D< T >::Array2D | ( | const Array2D< T > & | i_array2D, |
const size_t & | i_nx, | ||
const size_t & | i_ny, | ||
const size_t & | i_ncols, | ||
const size_t & | i_nrows | ||
) |
A constructor that can be used to create an Array2D object that is contained in the one passed as i_array2D argument. The resulting Array2D object is a by value copy of a subplane of the plane spanned by the i_array2D
i_array2D | array containing to extract the values from |
i_nx | lower left corner cell X index |
i_ny | lower left corner cell Y index |
i_ncols | number of columns of the new array |
i_nrows | number of rows of the new array |
mio::Array2D< T >::Array2D | ( | const Array3D< T > & | array3D, |
const size_t & | depth | ||
) |
void mio::Array2D< T >::abs |
bool mio::Array2D< T >::checkEpsilonEquality | ( | const Array2D< double > & | rhs, |
const double & | epsilon | ||
) | const |
|
static |
void mio::Array2D< T >::clear |
bool mio::Array2D< T >::empty |
void mio::Array2D< T >::fill | ( | const Array2D< T > & | i_array2D, |
const size_t & | i_nx, | ||
const size_t & | i_ny | ||
) |
void mio::Array2D< T >::fill | ( | const Array2D< T > & | i_array2D, |
const size_t & | i_nx, | ||
const size_t & | i_ny, | ||
const size_t & | i_ncols, | ||
const size_t & | i_nrows | ||
) |
A method that can be used to insert a subplane into an existing Array2D object that is passed as i_array2D argument. This is exactly the opposite of the subset method an can be used to rebuild an array from subsets.
i_array2D | array containing to subset values |
i_nx | lower left corner cell X index |
i_ny | lower left corner cell Y index |
i_ncols | number of columns of the new array |
i_nrows | number of rows of the new array |
const Array2D< T > mio::Array2D< T >::getAbs |
returns the grid of the absolute value of values contained in the grid
size_t mio::Array2D< T >::getCount |
returns the number of points contained in the grid. If setNodataHandling(IOUtils::RAW_NODATA), then the number of points is the size of the grid. If setNodataHandling(IOUtils::PARSE_NODATA), then it is the number of non-nodata values in the grid
bool mio::Array2D< T >::getKeepNodata |
get how to process nodata values (ie: as nodata or as normal numbers)
T mio::Array2D< T >::getMax |
returns the maximum value contained in the grid
T mio::Array2D< T >::getMean |
returns the mean value contained in the grid
T mio::Array2D< T >::getMin |
returns the minimum value contained in the grid
size_t mio::Array2D< T >::getNx |
size_t mio::Array2D< T >::getNy |
bool mio::Array2D< T >::operator!= | ( | const Array2D< T > & | in | ) | const |
Operator that tests for inequality.
|
inline |
|
inline |
|
inline |
|
inline |
const Array2D< T > mio::Array2D< T >::operator* | ( | const Array2D< T > & | rhs | ) | const |
const Array2D< T > mio::Array2D< T >::operator* | ( | const T & | rhs | ) | const |
Array2D< T > & mio::Array2D< T >::operator*= | ( | const Array2D< T > & | rhs | ) |
Array2D< T > & mio::Array2D< T >::operator*= | ( | const T & | rhs | ) |
const Array2D< T > mio::Array2D< T >::operator+ | ( | const Array2D< T > & | rhs | ) | const |
const Array2D< T > mio::Array2D< T >::operator+ | ( | const T & | rhs | ) | const |
Array2D< T > & mio::Array2D< T >::operator+= | ( | const Array2D< T > & | rhs | ) |
Array2D< T > & mio::Array2D< T >::operator+= | ( | const T & | rhs | ) |
const Array2D< T > mio::Array2D< T >::operator- | ( | const Array2D< T > & | rhs | ) | const |
const Array2D< T > mio::Array2D< T >::operator- | ( | const T & | rhs | ) | const |
Array2D< T > & mio::Array2D< T >::operator-= | ( | const Array2D< T > & | rhs | ) |
Array2D< T > & mio::Array2D< T >::operator-= | ( | const T & | rhs | ) |
const Array2D< T > mio::Array2D< T >::operator/ | ( | const Array2D< T > & | rhs | ) | const |
const Array2D< T > mio::Array2D< T >::operator/ | ( | const T & | rhs | ) | const |
Array2D< T > & mio::Array2D< T >::operator/= | ( | const Array2D< T > & | rhs | ) |
Array2D< T > & mio::Array2D< T >::operator/= | ( | const T & | rhs | ) |
Array2D< T > & mio::Array2D< T >::operator= | ( | const T & | value | ) |
bool mio::Array2D< T >::operator== | ( | const Array2D< T > & | in | ) | const |
Operator that tests for equality.
Array2DProxy< T > mio::Array2D< T >::operator[] | ( | const size_t & | i | ) |
void mio::Array2D< T >::resize | ( | const size_t & | anx, |
const size_t & | any | ||
) |
void mio::Array2D< T >::resize | ( | const size_t & | anx, |
const size_t & | any, | ||
const T & | init | ||
) |
void mio::Array2D< T >::setKeepNodata | ( | const bool | i_keep_nodata | ) |
set how to process nodata values (ie: as nodata or as normal numbers)
i_keep_nodata | true means that NODATA is interpreted as NODATA, false means that it is a normal number By default, arrays keep nodata. |
size_t mio::Array2D< T >::size |
void mio::Array2D< T >::size | ( | size_t & | anx, |
size_t & | any | ||
) | const |
void mio::Array2D< T >::subset | ( | const Array2D< T > & | i_array2D, |
const size_t & | i_nx, | ||
const size_t & | i_ny, | ||
const size_t & | i_ncols, | ||
const size_t & | i_nrows | ||
) |
A method that can be used to cut out a subplane of an existing Array2D object that is passed as i_array2D argument. The resulting Array2D object is a by value copy of a subplane of the plane spanned by the i_array2D.
i_array2D | array containing to extract the values from |
i_nx | lower left corner cell X index |
i_ny | lower left corner cell Y index |
i_ncols | number of columns of the new array |
i_nrows | number of rows of the new array |
const std::string mio::Array2D< T >::toString |
|
friend |
|
friend |
|
protected |
|
protected |
|
protected |
|
protected |