Functions.h File Reference

Raster Processing functions. More...

#include "Config.h"
#include "FeedersRaster.h"
#include "Matrix.h"
#include "Macros.h"
#include "RasterHandler.h"
#include "../dataaccess/datasource/DataSource.h"
#include "../raster/Raster.h"
#include "../raster/RasterFactory.h"
#include "../raster/Grid.h"
#include "../raster/BandProperty.h"
#include "../raster/Interpolator.h"
#include "../raster/Utils.h"
#include "../raster/PositionIterator.h"
#include "../srs/Converter.h"
#include "../geometry/LinearRing.h"
#include "../geometry/GTParameters.h"
#include "../geometry/MultiPoint.h"
#include "../geometry/Surface.h"
#include <memory>
#include <map>
#include <vector>
#include <string>
#include <limits>
#include <boost/numeric/ublas/matrix.hpp>
#include <boost/shared_ptr.hpp>

Go to the source code of this file.

Classes

struct  te::rp::SpectralSensorParams
 

Namespaces

 te
 TerraLib.
 
 te::rp
 Namespace for Raster Processing module of TerraLib.
 
 te::rst
 Namespace for the Raster module of TerraLib.
 

Enumerations

enum  te::rp::WaveletAtrousFilterType { te::rp::InvalidWAFilter, te::rp::B3SplineWAFilter, te::rp::TriangleWAFilter }
 Wavelet Atrous Filter types. More...
 

Functions

TERPEXPORT bool te::rp::ComposeBands (te::rp::FeederConstRaster &feeder, const std::vector< unsigned int > &inputRasterBands, const te::rst::Interpolator::Method &interpMethod, const std::map< std::string, std::string > &outputRasterInfo, const std::string &outputDataSourceType, const unsigned int maxThreads, std::unique_ptr< te::rst::Raster > &outputRasterPtr)
 Compose a set of bands into one multi-band raster. More...
 
void TERPEXPORT te::rp::Convert2DoublesVector (void *inputVector, const int inputVectorDataType, unsigned int inputVectorSize, double *outputVector)
 Convert vector elements. More...
 
void TERPEXPORT te::rp::ConvertDoublesVector (double *inputVector, unsigned int inputVectorSize, const int outputVectorDataType, void *outputVector)
 Convert a doubles vector. More...
 
TERPEXPORT bool te::rp::ConvertHLS2RGB (const te::rst::Raster &inputHLSRaster, const unsigned int hueBandIdx, const unsigned int lightBandIdx, const unsigned int saturationBandIdx, const double rgbRangeMin, const double rgbRangeMax, te::rst::Raster &outputRGBRaster)
 HLS to RGB conversion. More...
 
TERPEXPORT bool te::rp::ConvertHLS2RGB (const te::rst::Raster &inputHRaster, const unsigned int hueBandIdx, const te::rst::Raster &inputLRaster, const unsigned int lightBandIdx, const te::rst::Raster &inputSRaster, const unsigned int saturationBandIdx, const double rgbRangeMin, const double rgbRangeMax, te::rst::Raster &outputRGBRaster)
 HLS to RGB conversion. More...
 
TERPEXPORT bool te::rp::ConvertIHS2RGB (const te::rst::Raster &inputIHSRaster, const unsigned int intensityBandIdx, const unsigned int hueBandIdx, const unsigned int saturationBandIdx, const double rgbRangeMin, const double rgbRangeMax, te::rst::Raster &outputRGBRaster)
 IHS to RGB conversion. More...
 
TERPEXPORT bool te::rp::ConvertIHS2RGB (const te::rst::Raster &inputIRaster, const unsigned int intensityBandIdx, const te::rst::Raster &inputHRaster, const unsigned int hueBandIdx, const te::rst::Raster &inputSRaster, const unsigned int saturationBandIdx, const double rgbRangeMin, const double rgbRangeMax, te::rst::Raster &outputRGBRaster)
 IHS to RGB conversion. More...
 
TERPEXPORT bool te::rp::ConvertRGB2HLS (const te::rst::Raster &inputRedRaster, const unsigned int redBandIdx, const te::rst::Raster &inputGreenRaster, const unsigned int greenBandIdx, const te::rst::Raster &inputBlueRaster, const unsigned int blueBandIdx, const double rgbRangeMin, const double rgbRangeMax, te::rst::Raster &outputHLSRaster)
 RGB to HLS conversion. More...
 
TERPEXPORT bool te::rp::ConvertRGB2HLS (const te::rst::Raster &inputRGBRaster, const unsigned int redBandIdx, const unsigned int greenBandIdx, const unsigned int blueBandIdx, const double rgbRangeMin, const double rgbRangeMax, te::rst::Raster &outputHLSRaster)
 RGB to HLS conversion. More...
 
TERPEXPORT bool te::rp::ConvertRGB2IHS (const te::rst::Raster &inputRedRaster, const unsigned int redBandIdx, const te::rst::Raster &inputGreenRaster, const unsigned int greenBandIdx, const te::rst::Raster &inputBlueRaster, const unsigned int blueBandIdx, const double rgbRangeMin, const double rgbRangeMax, te::rst::Raster &outputIHSRaster)
 RGB to IHS conversion. More...
 
TERPEXPORT bool te::rp::ConvertRGB2IHS (const te::rst::Raster &inputRGBRaster, const unsigned int redBandIdx, const unsigned int greenBandIdx, const unsigned int blueBandIdx, const double rgbRangeMin, const double rgbRangeMax, te::rst::Raster &outputIHSRaster)
 RGB to IHS conversion. More...
 
bool TERPEXPORT te::rp::Copy2DiskRaster (const te::rst::Raster &inputRaster, const std::string &fileName)
 Create a new raster into a GDAL datasource. More...
 
TERPEXPORT void te::rp::CreateFixedStepPalette (const unsigned int paletteSize, const bool randomize, std::vector< te::rst::BandProperty::ColorEntry > &palette)
 Create a fixed step sequential color palette. More...
 
bool TERPEXPORT te::rp::CreateNewGdalRaster (const te::rst::Grid &rasterGrid, std::vector< te::rst::BandProperty * > bandsProperties, const std::string &fileName, RasterHandler &outRasterHandler)
 Create a new raster into a GDAL datasource. More...
 
bool TERPEXPORT te::rp::CreateNewGdalRaster (const te::rst::Grid &rasterGrid, std::vector< te::rst::BandProperty * > bandsProperties, const std::string &fileName, std::unique_ptr< te::rst::Raster > &outRasterPtr)
 Create a new raster into a GDAL datasource. More...
 
bool TERPEXPORT te::rp::CreateNewMemRaster (const te::rst::Grid &rasterGrid, std::vector< te::rst::BandProperty * > bandsProperties, RasterHandler &outRasterHandler)
 Create a new raster into a new memory datasource. More...
 
bool TERPEXPORT te::rp::CreateNewRaster (const te::rst::Grid &rasterGrid, const std::vector< te::rst::BandProperty * > &bandsProperties, const std::map< std::string, std::string > &rasterInfo, const std::string &rasterType, std::unique_ptr< te::rst::Raster > &outRasterPtr)
 Create a new raster into the givem data source. More...
 
bool TERPEXPORT te::rp::CreateNewRaster (const te::rst::Grid &rasterGrid, const std::vector< te::rst::BandProperty * > &bandsProperties, const std::string &outDataSetName, const std::string &dataSourceType, RasterHandler &outRasterHandler)
 Create a new raster into the givem data source. More...
 
bool TERPEXPORT te::rp::CreateNewRaster (const te::rst::Grid &rasterGrid, const std::vector< te::rst::BandProperty * > &bandsProperties, const std::string &outDataSetName, te::da::DataSource &outDataSource, RasterHandler &outRasterHandler)
 Create a new raster into the givem data source. More...
 
template<typename MatrixElementT >
bool te::rp::CreateRasterFileFromMatrix (const te::rp::Matrix< MatrixElementT > &matrix, const bool normalize, const std::string &fileName)
 Create a tiff file from a matrix. More...
 
TERPEXPORT boost::numeric::ublas::matrix< double > te::rp::CreateWaveletAtrousFilter (const WaveletAtrousFilterType &filterType)
 Create a Wavele Atrous Filter. More...
 
TERPEXPORT bool te::rp::DecomposeBands (const te::rst::Raster &inputRaster, const std::vector< unsigned int > &inputRasterBands, const std::vector< std::map< std::string, std::string > > &outputRastersInfos, const std::string &outputDataSourceType, std::vector< boost::shared_ptr< te::rst::Raster > > &outputRastersPtrs)
 Decompose a multi-band raster into a set of one-band rasters. More...
 
TERPEXPORT bool te::rp::DirectPrincipalComponents (const te::rst::Raster &inputRaster, const std::vector< unsigned int > &inputRasterBands, boost::numeric::ublas::matrix< double > &pcaMatrix, te::rst::Raster &pcaRaster, const std::vector< unsigned int > &pcaRasterBands, const unsigned int maxThreads)
 Generate all principal components from the given input raster. More...
 
TERPEXPORT bool te::rp::DirectWaveletAtrous (const te::rst::Raster &inputRaster, const std::vector< unsigned int > &inputRasterBands, te::rst::Raster &waveletRaster, const unsigned int levelsNumber, const boost::numeric::ublas::matrix< double > &filter)
 Generate all wavelet planes from the given input raster. More...
 
TERPEXPORT std::vector< std::string > te::rp::GetBandNames ()
 Returns a vector os with band's names. More...
 
TERPEXPORT bool te::rp::GetCovarianceValue (const te::rst::Raster &inputRaster1, const unsigned int inputBandIndex1, const te::rst::Raster &inputRaster2, const unsigned int inputBandIndex2, const unsigned int maxThreads, double const *const mean1ValuePtr, double const *const mean2ValuePtr, double &covarianceValue)
 Get the covariance of band pixel values. More...
 
void TERPEXPORT te::rp::GetDataTypeRange (const int dataType, double &min, double &max)
 Returns the real data type range (all values that can be represented by the given data type). More...
 
TERPEXPORT bool te::rp::GetDetailedExtent (const te::rst::Grid &grid, te::gm::LinearRing &detailedExtent)
 Create a datailed extent from the given grid. More...
 
TERPEXPORT std::pair< double, double > te::rp::GetDigitalNumberBandInfo (std::string bandName)
 Returns the maximun and minimum digital numbers of a given sensor/band. More...
 
TERPEXPORT double te::rp::GetDigitalNumberBandMax (std::string bandName)
 Returns the maximum digital number of a given sensor/band. More...
 
TERPEXPORT double te::rp::GetDigitalNumberBandMin (std::string bandName)
 Returns the minimum digital number of a given sensor/band. More...
 
TERPEXPORT bool te::rp::getHistograms (const te::rst::Raster &raster, const unsigned int bandIndex, const std::vector< te::gm::Polygon const * > &rois, const unsigned int histoBins, const unsigned int maxThreads, const te::rst::PolygonIterator< double >::IterationType roisItType, std::map< double, unsigned > &rHistogram, std::map< double, unsigned > &iHistogram)
 Compute and return the histogram soccurring values (real and imaginary) inside defined regions of interest. More...
 
TERPEXPORT void te::rp::getHistogramStats (const std::map< double, unsigned int > &histogram, double &min, double &max, double &mean, double &stdDev, double &mode, double &entropy, double &sum, double &sum2, double &sum3, double &sum4, double &variance, double &median)
 Compute statiscts from the given histogram. More...
 
TERPEXPORT bool te::rp::GetIndexedDetailedExtent (const te::rst::Grid &grid, te::gm::LinearRing &indexedDetailedExtent)
 Create a indexed (lines,columns) datailed extent from the given grid. More...
 
TERPEXPORT bool te::rp::getJointHistograms (const te::rst::Raster &raster, const unsigned int bandIndex1, const unsigned int bandIndex2, const std::vector< te::gm::Polygon const * > &rois, const unsigned int histoBins, const unsigned int maxThreads, const te::rst::PolygonIterator< double >::IterationType roisItType, std::map< std::pair< double, double >, unsigned int > &realJointHistogram, std::map< std::pair< double, double >, unsigned int > &imagJointHistogram, std::map< double, unsigned int > const *const rasterRealHistogram1ptr, std::map< double, unsigned int > const *const rasterImagHistogram1Ptr, std::map< double, unsigned int > const *const rasterRealHistogram2Ptr, std::map< double, unsigned int > const *const rasterImagHistogram2Ptr)
 Compute and return the joint histogram of occurring values (real and imaginary) inside defined regions of interest. More...
 
TERPEXPORT bool te::rp::getJointHistogramStats (const std::map< std::pair< double, double >, unsigned int > &jointHistogram, const std::map< double, unsigned int > &histogram1, const std::map< double, unsigned int > &histogram2, double &covariance)
 Compute statiscts from the given histogram. More...
 
TERPEXPORT bool te::rp::GetMeanValue (const te::rst::Raster &inputRaster, const unsigned int inputBandIndex, const unsigned int maxThreads, double &meanValue)
 Get the mean of band pixel values. More...
 
TERPEXPORT std::string te::rp::GetSensorFilename ()
 Returns a json filename with spectral sensors parameters. More...
 
TERPEXPORT std::map< std::string, SpectralSensorParams > te::rp::getSensorParams ()
 Returns a map with spectral sensors parameters defined in SpectralSensor.json file. More...
 
TERPEXPORT SpectralSensorParams te::rp::GetSpectralBandInfo (std::string bandName)
 Returns the maximun and minimum reflectance values of a given sensor/band. More...
 
TERPEXPORT double te::rp::GetSpectralBandMax (std::string bandName)
 Returns the maximum reflectance value of a given sensor/band. More...
 
TERPEXPORT double te::rp::GetSpectralBandMin (std::string bandName)
 Returns the minimum reflectance value of a given sensor/band. More...
 
TERPEXPORT bool te::rp::GetStdDevValue (const te::rst::Raster &inputRaster, const unsigned int inputBandIndex, const unsigned int maxThreads, double const *const meanValuePtr, double &stdDevValue)
 Get the standard deviation of band pixel values. More...
 
template<typename ContainerT >
double te::rp::GetTPConvexHullArea (const ContainerT &tiePoints, const bool useTPSecondCoordPair)
 Returns the tie points converx hull area. More...
 
TERPEXPORT bool te::rp::InversePrincipalComponents (const te::rst::Raster &pcaRaster, const boost::numeric::ublas::matrix< double > &pcaMatrix, te::rst::Raster &outputRaster, const std::vector< unsigned int > &outputRasterBands, const unsigned int maxThreads)
 Regenerate the original raster from its principal components. More...
 
TERPEXPORT bool te::rp::InverseWaveletAtrous (const te::rst::Raster &waveletRaster, const unsigned int levelsNumber, te::rst::Raster &outputRaster, const std::vector< unsigned int > &outputRasterBands)
 Regenerate the original raster from its wavelets planes. More...
 
TERPEXPORT te::rst::Rasterte::rp::NormalizeRaster (const te::rst::Raster *inputRaster)
 Normalizes a raster in a given interval. More...
 
TERPEXPORT bool te::rp::NormalizeRaster (te::rst::Raster &inputRaster, double nmin=0.0, double nmax=255.0)
 Normalizes one raster in a given interval. More...
 
TERPEXPORT bool te::rp::RasterResample (const te::rst::Raster &inputRaster, const std::vector< unsigned int > &inputRasterBands, const te::rst::Interpolator::Method interpMethod, const unsigned int interpWindowRadius, const unsigned int firstRow, const unsigned int firstColumn, const unsigned int height, const unsigned int width, const unsigned int newheight, const unsigned int newwidth, const std::map< std::string, std::string > &rinfo, const std::string &dataSourceType, std::unique_ptr< te::rst::Raster > &resampledRasterPtr)
 Resample a subset of the raster, given a box. More...
 
TERPEXPORT bool te::rp::RasterSlicing (const te::rst::Raster &inputRaster, const unsigned int inputRasterBand, const bool createPaletteRaster, const unsigned int slicesNumber, const bool eqHistogram, const std::map< std::string, std::string > &rasterInfo, const std::string &rasterType, const bool enableProgress, std::vector< te::rst::BandProperty::ColorEntry > const *const palettePtr, std::unique_ptr< te::rst::Raster > &outRasterPtr, std::vector< double > const *slicesLimitsPtr, std::vector< double > const *slicesOutputValuesPtr)
 Create a new raster grouping pixel values following the number of slices and/or slice limits. More...
 
TERPEXPORT bool te::rp::RemapValues (const te::rst::Raster &inputRaster, const std::vector< unsigned int > &inputRasterBands, const boost::numeric::ublas::matrix< double > &remapMatrix, te::rst::Raster &outputRaster, const std::vector< unsigned int > &outputRasterBands, const unsigned int maxThreads)
 Remap pixel values using a remap function matrix. More...
 
TERPEXPORT bool te::rp::ReplaceContiguousSegmentValues (const te::rst::Raster &inputRaster, const unsigned int &inputRasterBandIdx, te::rst::Raster &outputRaster, const unsigned int &outputRasterBandIdx, const unsigned targetInputRow, const unsigned targetInputCol, const double &outputValue)
 Replace a contiguos segment pixel values. More...
 
TERPEXPORT bool te::rp::ReplaceContiguousSegmentValues (te::rst::Raster &inputRaster, const unsigned int &inputRasterBandIdx, const unsigned targetRow, const unsigned targetCol, const double &outputValue)
 Replace a contiguos segment pixel values. More...
 
TERPEXPORT void te::rp::SaveSensorParams (std::map< std::string, SpectralSensorParams > &)
 Saves in SpectralSensor.json file the spectral sensors parameters. More...
 
TERPEXPORT bool te::rp::SelectiveReplaceValues (const te::rst::Raster &inputRaster, const unsigned int &inputRasterBandIdx, const std::vector< std::pair< double, double > > &targetValues, const bool enableProgress, const std::vector< te::gm::Polygon * > &restrictionPols, te::rst::Raster &outputRaster, const unsigned int &outputRasterBandIdx)
 Remap all pixel values using a user supplied target values (non-target values are just copied from input to output). More...
 

Detailed Description

Raster Processing functions.

Definition in file Functions.h.