te::rst::Grid Class Reference

A rectified grid is the spatial support for raster data. More...

#include <Grid.h>

Public Member Functions

void geoToGrid (const double &x, const double &y, double &col, double &row) const
 Get the grid point associated to a spatial location. More...
 
te::gm::Coord2D geoToGrid (const double &x, const double &y) const
 Get the grid point associated to a spatial location. More...
 
te::gm::EnvelopegetExtent ()
 Returns the geographic extension of the grid. More...
 
const te::gm::EnvelopegetExtent () const
 Returns the geographic extension of the grid. More...
 
const double * getGeoreference () const
 Returns a list of 6 coefficients describing an affine transformation to georeference a grid. More...
 
unsigned int getNumberOfColumns () const
 Returns the grid number of columns. More...
 
unsigned int getNumberOfRows () const
 Returns the grid number of rows. More...
 
double getResolutionX () const
 Returns the grid horizontal (x-axis) resolution. More...
 
double getResolutionY () const
 Returns the grid vertical (y-axis) resolution. More...
 
int getSRID () const
 Returns the grid spatial reference system identifier. More...
 
 Grid (unsigned int nCols=0, unsigned int nRows=0, te::gm::Envelope *mbr=0, int srid=TE_UNKNOWN_SRS)
 Constructor. More...
 
 Grid (unsigned int nCols, unsigned int nRows, double resX, double resY, const te::gm::Coord2D *ulc, int srid=TE_UNKNOWN_SRS)
 Constructor. More...
 
 Grid (unsigned int nCols, unsigned int nRows, double resX, double resY, te::gm::Envelope *mbr, int srid=TE_UNKNOWN_SRS)
 Constructor. More...
 
 Grid (double resX, double resY, te::gm::Envelope *mbr, int srid=TE_UNKNOWN_SRS)
 Constructor. More...
 
 Grid (const double geoTrans[], unsigned int nCols, unsigned int nRows, int srid=TE_UNKNOWN_SRS)
 Constructor. More...
 
 Grid (const Grid &rhs)
 Copy constructor. More...
 
void gridToGeo (const double &col, const double &row, double &x, double &y) const
 Get the spatial location of a grid point. More...
 
te::gm::Coord2D gridToGeo (const double &col, const double &row) const
 Get the spatial location of a grid point. More...
 
bool isPointInGrid (unsigned int col, unsigned int row) const
 
Gridoperator= (const Grid &rhs)
 Assignment operator. More...
 
bool operator== (const Grid &rhs) const
 Equal operator. More...
 
void setGeoreference (const te::gm::Coord2D &ulLocation, int srid, double resX, double resY)
 Sets the information needed to georeference the grid. More...
 
void setGeoreference (const double geoTrans[], int srid)
 Sets the information needed to georeference the grid using an affine transformation. More...
 
void setNumberOfColumns (unsigned int nCols)
 Sets the grid number of columns. More...
 
void setNumberOfRows (unsigned int nRows)
 Sets the grid number of rows. More...
 
void setSRID (int srid)
 Just sets the grid spatial reference system identifier. More...
 
 ~Grid ()
 Destructor. More...
 

Private Member Functions

bool computeAffineParameters (const double extentWidth, const double extentHeight, const unsigned int nColumns, const unsigned int nRows, const double extentULX, const double extentULY, double *affineParamsPtr, double *inverseAffineParamsPtr) const
 Compute affine parameters from the given input parameters. More...
 
void computeExtent () const
 Computes the geographic extension of the grid. More...
 
bool computeInverseParameters (double *const affineParamsPtr, double *inverseAffineParamsPtr) const
 Compute inverse affine parameters. More...
 

Private Attributes

te::gm::Envelopem_extent
 The grid extent. More...
 
double m_geoT [6]
 A list of 6 coefficients describing an affine transformation to georeference a grid. More...
 
double m_geoTInverse [6]
 A list of 6 coefficients describing an inverse affine transformation to georeference a grid. More...
 
unsigned int m_nCols
 Number of columns. More...
 
unsigned int m_nRows
 Number of rows. More...
 
int m_srid
 The associated SRS. More...
 

Detailed Description

A rectified grid is the spatial support for raster data.

Note
The upper left corner of the upper left pixel is considered the grid extent top-left reference.
Affine transformation:
u = a.x + b.y + c
v = d.x + e.y + f
| x | | a b c | | column |
| y | = | d e f | * | row |
| 1 | | 0 0 1 | | 1 |
Georeference parameters order = [ a b c d e f ]
See also
Raster

Definition at line 68 of file Grid.h.

Constructor & Destructor Documentation

te::rst::Grid::Grid ( unsigned int  nCols = 0,
unsigned int  nRows = 0,
te::gm::Envelope mbr = 0,
int  srid = TE_UNKNOWN_SRS 
)

Constructor.

Parameters
nColsThe number of columns.
nRowsThe number of rows.
sridThe SRS associated to the grid.
mbrThe grid extent. The grid will take the ownership of the given envelope.
Note
If extent is not specified, no georeferencing is assumed.
The grid resolution (x-axis and y-axis) will be computed based on the number of columns/rows and the provided extent.
te::rst::Grid::Grid ( unsigned int  nCols,
unsigned int  nRows,
double  resX,
double  resY,
const te::gm::Coord2D ulc,
int  srid = TE_UNKNOWN_SRS 
)

Constructor.

Parameters
nColsThe number of columns.
nRowsThe number of rows.
resXThe grid horizontal (x-axis) resolution.
resYThe grid vertical (y-axis) resolution.
ulcThe location of the upper-left corner of the upper-left pixel (or cell) of the grid assuming srid as the SRS.
sridThe SRS associated to the grid.
Note
If ulc is not specified, no georeferencing is assumed.
te::rst::Grid::Grid ( unsigned int  nCols,
unsigned int  nRows,
double  resX,
double  resY,
te::gm::Envelope mbr,
int  srid = TE_UNKNOWN_SRS 
)

Constructor.

Parameters
nColsThe number of columns.
nRowsThe number of rows.
resXThe grid horizontal (x-axis) resolution.
resYThe grid vertical (y-axis) resolution.
mbrThe grid extent. The grid will take the ownership of the given envelope.
sridThe SRS associated to the grid.
Note
If extent is not specified, no georeferencing is assumed.
te::rst::Grid::Grid ( double  resX,
double  resY,
te::gm::Envelope mbr,
int  srid = TE_UNKNOWN_SRS 
)

Constructor.

Parameters
resXThe grid horizontal (x-axis) resolution.
resYThe grid vertical (y-axis) resolution.
mbrThe grid extent. The grid will take the ownership of the given envelope.
sridThe SRS associated to the grid.
Note
The grid resolution (x-axis and y-axis) will be computed based on the number of columns/rows and the provided extent.
te::rst::Grid::Grid ( const double  geoTrans[],
unsigned int  nCols,
unsigned int  nRows,
int  srid = TE_UNKNOWN_SRS 
)

Constructor.

Parameters
nColsThe number of columns.
nRowsThe number of rows.
geoTrans[]A list of 6 coefficients describing an affine transformation to georeference a grid.
sridThe SRS associated to the grid.
Note
If extent is not specified, no georeferencing is assumed.
te::rst::Grid::Grid ( const Grid rhs)

Copy constructor.

Parameters
rhsThe right-hand-side object to be used to copy from.
te::rst::Grid::~Grid ( )

Destructor.

Member Function Documentation

bool te::rst::Grid::computeAffineParameters ( const double  extentWidth,
const double  extentHeight,
const unsigned int  nColumns,
const unsigned int  nRows,
const double  extentULX,
const double  extentULY,
double *  affineParamsPtr,
double *  inverseAffineParamsPtr 
) const
private

Compute affine parameters from the given input parameters.

Parameters
extentWidthExtent width.
extentHeightExtent height.
nColumnsNumber of columns.
nRowsNumber of rows.
extentULXExtent upper-left X coordinate.
extentULYExtent upper-left Y coordinate.
affineParamsPtrA pointer to a allocated vector of 6 elements where the parameters will be stored.
Returns
true if ok, false on errors.
void te::rst::Grid::computeExtent ( ) const
private

Computes the geographic extension of the grid.

bool te::rst::Grid::computeInverseParameters ( double *const  affineParamsPtr,
double *  inverseAffineParamsPtr 
) const
private

Compute inverse affine parameters.

Parameters
affineParamsPtrA pointer to a allocated vector of 6 elements (affine parameters).
inverseAffineParamsPtrA pointer to a allocated vector of 6 elements where the parameters will be stored.
Returns
true if ok, false on errors
void te::rst::Grid::geoToGrid ( const double &  x,
const double &  y,
double &  col,
double &  row 
) const

Get the grid point associated to a spatial location.

Parameters
xThe spatial x-coordiante.
yThe spatial y-coordiante.
colThe grid point column.
rowThe grid point row.

Referenced by geoToGrid(), te::rst::LineIterator< T >::LineIterator(), te::rst::PointSetIterator< T >::PointSetIterator(), and te::rst::PolygonIterator< T >::PolygonIterator().

te::gm::Coord2D te::rst::Grid::geoToGrid ( const double &  x,
const double &  y 
) const
inline

Get the grid point associated to a spatial location.

Parameters
xThe spatial x-coordiante.
yThe spatial y-coordiante.
Returns
The grid location.

Definition at line 342 of file Grid.h.

References geoToGrid(), te::gm::Coord2D::x, and te::gm::Coord2D::y.

te::gm::Envelope* te::rst::Grid::getExtent ( )

Returns the geographic extension of the grid.

const te::gm::Envelope* te::rst::Grid::getExtent ( ) const

Returns the geographic extension of the grid.

const double* te::rst::Grid::getGeoreference ( ) const

Returns a list of 6 coefficients describing an affine transformation to georeference a grid.

unsigned int te::rst::Grid::getNumberOfColumns ( ) const

Returns the grid number of columns.

unsigned int te::rst::Grid::getNumberOfRows ( ) const

Returns the grid number of rows.

double te::rst::Grid::getResolutionX ( ) const

Returns the grid horizontal (x-axis) resolution.

double te::rst::Grid::getResolutionY ( ) const

Returns the grid vertical (y-axis) resolution.

int te::rst::Grid::getSRID ( ) const

Returns the grid spatial reference system identifier.

void te::rst::Grid::gridToGeo ( const double &  col,
const double &  row,
double &  x,
double &  y 
) const

Get the spatial location of a grid point.

Parameters
colThe grid point column.
rowThe grid point row.
xThe spatial location (X axis).
yThe spatial location (Y axis).

Referenced by gridToGeo(), and te::rst::LineIterator< T >::LineIterator().

te::gm::Coord2D te::rst::Grid::gridToGeo ( const double &  col,
const double &  row 
) const
inline

Get the spatial location of a grid point.

Parameters
colThe grid point column.
rowThe grid point row.
Returns
The spatial location.

Definition at line 335 of file Grid.h.

References gridToGeo(), te::gm::Coord2D::x, and te::gm::Coord2D::y.

bool te::rst::Grid::isPointInGrid ( unsigned int  col,
unsigned int  row 
) const
inline

Definition at line 349 of file Grid.h.

References m_nCols, and m_nRows.

Grid& te::rst::Grid::operator= ( const Grid rhs)

Assignment operator.

Parameters
rhsThe right-hand-side object to be used to copy from.
Returns
A reference to this.
bool te::rst::Grid::operator== ( const Grid rhs) const

Equal operator.

Parameters
rhsThe source object to be compared.
Returns
True if the grids have the same exact coordinates, number of cols and rows, srid, and 6 coefficients.
void te::rst::Grid::setGeoreference ( const te::gm::Coord2D ulLocation,
int  srid,
double  resX,
double  resY 
)

Sets the information needed to georeference the grid.

Specifies a transformation that maps a grid point (col, row) to a spatial location (x, y).

This method should be used when there is no translation associated to the mapping.

Parameters
ulLocationThe location of the upper-left corner of the upper-left pixel (or cell) of the grid.
sridThe id of the SRS that the location refers to. resX The grid horizontal (x-axis) resolution resY The grid vertical (y-axis) resolution
void te::rst::Grid::setGeoreference ( const double  geoTrans[],
int  srid 
)

Sets the information needed to georeference the grid using an affine transformation.

An affine transformation maps grid point (col,lin) to a spatial location (x,y) using to the following relationship: This method should be used mainly when there is a translation associated to the mapping. Otherwise use the method above.

Parameters
geoTrans[]A list of 6 coefficients describing an affine transformation to georeference a grid.
sridThe SRS id to which the location refers to.
void te::rst::Grid::setNumberOfColumns ( unsigned int  nCols)

Sets the grid number of columns.

Parameters
nColsThe number of columns.
void te::rst::Grid::setNumberOfRows ( unsigned int  nRows)

Sets the grid number of rows.

Parameters
nRowsThe number of rows.
void te::rst::Grid::setSRID ( int  srid)

Just sets the grid spatial reference system identifier.

Member Data Documentation

te::gm::Envelope* te::rst::Grid::m_extent
mutableprivate

The grid extent.

Definition at line 292 of file Grid.h.

double te::rst::Grid::m_geoT[6]
private

A list of 6 coefficients describing an affine transformation to georeference a grid.

Definition at line 296 of file Grid.h.

double te::rst::Grid::m_geoTInverse[6]
private

A list of 6 coefficients describing an inverse affine transformation to georeference a grid.

Definition at line 297 of file Grid.h.

unsigned int te::rst::Grid::m_nCols
private

Number of columns.

Definition at line 293 of file Grid.h.

Referenced by isPointInGrid().

unsigned int te::rst::Grid::m_nRows
private

Number of rows.

Definition at line 294 of file Grid.h.

Referenced by isPointInGrid().

int te::rst::Grid::m_srid
private

The associated SRS.

Definition at line 295 of file Grid.h.


The documentation for this class was generated from the following file: