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 raster/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 37 of file raster/Grid.cpp.

References computeAffineParameters(), computeExtent(), te::gm::Envelope::getHeight(), te::gm::Envelope::getWidth(), m_extent, m_geoT, m_geoTInverse, te::gm::Envelope::m_llx, te::gm::Envelope::m_ury, nCols, 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 61 of file raster/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 76 of file raster/Grid.cpp.

References computeAffineParameters(), computeExtent(), te::gm::Envelope::getHeight(), te::gm::Envelope::getWidth(), m_extent, m_geoT, m_geoTInverse, te::gm::Envelope::m_llx, te::gm::Envelope::m_ury, nCols, 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 99 of file raster/Grid.cpp.

References computeAffineParameters(), te::gm::Envelope::getHeight(), te::gm::Envelope::getWidth(), m_extent, m_geoT, m_geoTInverse, 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 123 of file raster/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 134 of file raster/Grid.cpp.

References operator=().

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

Destructor.

Definition at line 143 of file raster/Grid.cpp.

References m_extent.

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.

Definition at line 337 of file raster/Grid.cpp.

References computeInverseParameters().

Referenced by Grid(), setGeoreference(), setNumberOfColumns(), and setNumberOfRows().

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

Computes the geographic extension of the grid.

Definition at line 285 of file raster/Grid.cpp.

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

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

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

Definition at line 353 of file raster/Grid.cpp.

Referenced by computeAffineParameters(), and setGeoreference().

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.

Definition at line 311 of file raster/Grid.cpp.

References m_geoTInverse.

Referenced by TsExpansibleRaster::addBottomLinesTest(), TsExpansibleRaster::addLeftColumnsTest(), te::graph::AddRasterAttribute::AddRasterAttribute(), TsExpansibleRaster::addRightColumnsTest(), TsExpansibleRaster::addTopLinesTest(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_SUITE(), te::rp::ComposeBands(), te::rst::Copy(), te::rst::CropRaster(), te::wms::WMSLayerRenderer::drawRaster(), te::map::DrawRaster(), te::rp::ArithmeticOperations::execBinaryOperatorRasterXRaster(), te::rp::GeoMosaic::execute(), te::rp::TiePointsMosaic::execute(), te::attributefill::GeoToGrid(), te::rst::Raster::getExtent(), te::map::GetExtentRaster(), te::qt::widgets::DefaultFeatureInfoMaker::getRasterInfo(), te::rp::Blender::initialize(), te::rst::PolygonIterator< T >::initialize(), InterpolateIn(), te::rst::LineIterator< T >::LineIterator(), Mask(), ReadPixelTool::mouseReleaseEvent(), te::qt::widgets::TiePointsLocatorDialog::on_autoAcquireTiePointsPushButton_clicked(), te::qt::widgets::MixtureModelDialog::on_coordTracked_changed(), te::qt::widgets::TiePointsLocatorDialog::on_mapDisplay1_coordTracked(), te::qt::widgets::TiePointsLocatorDialog::on_mapDisplay2_coordTracked(), te::qt::widgets::TiePointLocatorWidget::onAutoAcquireTiePointsToolButtonClicked(), te::rst::PointSetIterator< T >::PointSetIterator(), modis_dataset::impl::query(), te::attributefill::RasterToVector::run(), te::rst::Vectorizer::run(), and te::rst::Raster::trim().

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 raster/Grid.h.

References 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 280 of file raster/Grid.cpp.

References m_extent.

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

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

Definition at line 248 of file raster/Grid.cpp.

References m_geoT.

Referenced by te::gdal::CreateRaster(), te::ws::ogc::wms::GetLayerMapRaster(), te::ws::ogc::wms::GetMapRaster(), GribExample(), operator==(), and te::serialize::xml::Save().

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).

Definition at line 305 of file raster/Grid.cpp.

References m_geoT.

Referenced by TsExpansibleRaster::addBottomLinesTest(), TsExpansibleRaster::addLeftColumnsTest(), TsExpansibleRaster::addRightColumnsTest(), TsExpansibleRaster::addTopLinesTest(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_SUITE(), te::graph::LDDGraphBuilder::build(), te::rp::ComposeBands(), computeExtent(), te::rst::Copy(), te::rst::CropRaster(), te::rst::Vectorizer::detectEdge(), te::rp::ArithmeticOperations::execBinaryOperatorRasterXRaster(), te::rp::GeoMosaic::execute(), te::rp::Register::execute(), te::rp::TiePointsMosaic::execute(), te::qt::widgets::ClippingWizard::executeLayerClipping(), te::qt::widgets::ClippingWizard::executeLayerClippingAttribute(), te::mnt::TINCalculateGrid::FillGridLinear(), te::mnt::TINCalculateGrid::FillGridQuintic(), te::rst::Raster::getExtent(), te::map::GetExtentRaster(), te::rst::GetRandomPointsInRaster(), te::sa::GridAdaptRadiusKernel(), te::sa::GridStatRadiusKernel(), InterpolateIn(), te::rst::LineIterator< T >::LineIterator(), MakeRasterCrop(), te::qt::widgets::TiePointsLocatorDialog::on_mapDisplay1_extentChanged(), te::qt::widgets::TiePointsLocatorDialog::on_mapDisplay2_extentChanged(), te::qt::widgets::MixtureModelDialog::on_mapDisplay_extentChanged(), te::qt::widgets::TiePointLocatorWidget::onSaveTiePointsToolButtonClicked(), te::rp::RasterResample(), te::rst::Raster::resample(), te::rst::Vectorizer::run(), and te::rst::Raster::trim().

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 raster/Grid.h.

References 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 raster/Grid.h.

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 151 of file raster/Grid.cpp.

References computeExtent(), m_extent, m_geoT, m_geoTInverse, m_nCols, m_nRows, and m_srid.

Referenced by Grid().

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 317 of file raster/Grid.cpp.

References computeExtent(), te::gm::Envelope::equals(), 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 214 of file raster/Grid.cpp.

References computeAffineParameters(), computeExtent(), m_geoT, m_geoTInverse, m_nCols, m_nRows, m_srid, te::gm::Coord2D::x, and te::gm::Coord2D::y.

Referenced by DataSet(), DataSetTypePersistence(), te::ws::ogc::wms::GetLayerMapRaster(), te::ws::ogc::wms::GetMapRaster(), Grid(), TsManagerDataSource::initialize(), RasterizePolygonSet(), te::serialize::xml::ReadGrid(), TsPropertyTypes::tcRasterProperty(), TsPropertyTypes::tcRasterPropertyAssignOp(), and TsPropertyTypes::tcRasterPropertyClone().

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.

Definition at line 230 of file raster/Grid.cpp.

References computeExtent(), computeInverseParameters(), m_geoT, m_geoTInverse, and m_srid.

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

Sets the grid number of columns.

Parameters
nColsThe number of columns.

Definition at line 182 of file raster/Grid.cpp.

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

Referenced by BOOST_AUTO_TEST_CASE(), and BOOST_AUTO_TEST_SUITE().

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

Member Data Documentation

te::gm::Envelope* te::rst::Grid::m_extent
mutableprivate
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 raster/Grid.h.

Referenced by getGeoreference(), Grid(), gridToGeo(), operator=(), setGeoreference(), setNumberOfColumns(), and setNumberOfRows().

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 raster/Grid.h.

Referenced by geoToGrid(), Grid(), operator=(), setGeoreference(), setNumberOfColumns(), and setNumberOfRows().

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

The associated SRS.

Definition at line 295 of file raster/Grid.h.

Referenced by getSRID(), operator=(), operator==(), setGeoreference(), and setSRID().


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