All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
te::rst::Grid Class Reference

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

#include <Grid.h>

Public Member Functions

void computeExtent () const
 Computes the geographic extension of the grid. More...
 
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 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. In a north up image, m_geoT[1] is the pixel width, and m_geoT[5] is the pixel height. The upper left corner of the upper left pixel is at position (m_geoT[0],m_geoT[3]). 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.
See Also
Raster

Definition at line 55 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.

Definition at line 36 of file Grid.cpp.

References computeExtent(), te::gm::Envelope::getHeight(), te::gm::Envelope::getWidth(), m_extent, m_geoT, te::gm::Envelope::m_llx, te::gm::Envelope::m_ury, and setGeoreference().

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.

Definition at line 66 of file Grid.cpp.

References computeExtent(), and setGeoreference().

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.

Definition at line 81 of file Grid.cpp.

References computeExtent(), te::gm::Envelope::getHeight(), te::gm::Envelope::getWidth(), m_extent, m_geoT, te::gm::Envelope::m_llx, te::gm::Envelope::m_ury, and setGeoreference().

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.

Definition at line 109 of file Grid.cpp.

References te::gm::Envelope::getHeight(), te::gm::Envelope::getWidth(), m_extent, m_geoT, te::gm::Envelope::m_llx, m_nCols, m_nRows, and te::gm::Envelope::m_ury.

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.

Definition at line 133 of file Grid.cpp.

References computeExtent(), and setGeoreference().

te::rst::Grid::Grid ( const Grid rhs)

Copy constructor.

Parameters
rhsThe right-hand-side object to be used to copy from.

Definition at line 144 of file Grid.cpp.

References computeExtent(), m_extent, and m_geoT.

te::rst::Grid::~Grid ( )

Destructor.

Definition at line 162 of file Grid.cpp.

Member Function Documentation

void te::rst::Grid::computeExtent ( ) const

Computes the geographic extension of the grid.

Definition at line 286 of file Grid.cpp.

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

Referenced by Grid(), and operator==().

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 304 of file Grid.h.

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

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

Returns the geographic extension of the grid.

Definition at line 281 of file Grid.cpp.

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

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

Definition at line 251 of file Grid.cpp.

Referenced by te::gdal::CreateRaster(), operator==(), and te::serialize::xml::Save().

unsigned int te::rst::Grid::getNumberOfColumns ( ) const
unsigned int te::rst::Grid::getNumberOfRows ( ) const
double te::rst::Grid::getResolutionX ( ) const
double te::rst::Grid::getResolutionY ( ) const
void te::rst::Grid::gridToGeo ( const double &  col,
const double &  row,
double &  x,
double &  y 
) const
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 297 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 311 of file Grid.h.

References m_nCols, and m_nRows.

Referenced by InterpolateIn().

te::rst::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.

Definition at line 170 of file Grid.cpp.

References m_extent, m_geoT, m_nCols, m_nRows, and m_srid.

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.

Definition at line 314 of file Grid.cpp.

References computeExtent(), getGeoreference(), m_extent, m_nCols, m_nRows, and m_srid.

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

Definition at line 220 of file Grid.cpp.

References te::gm::Coord2D::x, and te::gm::Coord2D::y.

Referenced by te::qt::widgets::AddProperty::buildRasterProperty(), Grid(), te::serialize::xml::ReadGrid(), and te::rst::Raster::trim().

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:

X = geoTrans(0) + col*geoTrans(1) + lin*geoTrans(2) Y = geoTrans(3) + col*geoTrans(4) + lin*geoTrans(5)

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.

Definition at line 238 of file Grid.cpp.

void te::rst::Grid::setNumberOfColumns ( unsigned int  nCols)

Sets the grid number of columns.

Parameters
nColsThe number of columns.

Definition at line 200 of file Grid.cpp.

Referenced by te::rst::Raster::trim().

void te::rst::Grid::setNumberOfRows ( unsigned int  nRows)

Sets the grid number of rows.

Parameters
nRowsThe number of rows.

Definition at line 210 of file Grid.cpp.

Referenced by te::rst::Raster::trim().

void te::rst::Grid::setSRID ( int  srid)

Just sets the grid spatial reference system identifier.

Definition at line 271 of file Grid.cpp.

Member Data Documentation

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

The grid extent.

Definition at line 288 of file Grid.h.

Referenced by Grid(), operator=(), and operator==().

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

A list of 6 coefficients describing an affine transformation to georeference a grid. In a north up image, m_geoT[1] is the pixel width, and m_geoT[5] is the pixel height. The upper left corner of the upper left pixel is at position (m_geoT[0],m_geoT[3]).

Definition at line 292 of file Grid.h.

Referenced by Grid(), and operator=().

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

Number of columns.

Definition at line 289 of file Grid.h.

Referenced by Grid(), isPointInGrid(), operator=(), and operator==().

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

Number of rows.

Definition at line 290 of file Grid.h.

Referenced by Grid(), isPointInGrid(), operator=(), and operator==().

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

The associated SRS.

Definition at line 291 of file Grid.h.

Referenced by operator=(), and operator==().


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