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 = 0 , te::rp::B3SplineWAFilter = 1 , te::rp::TriangleWAFilter = 2 } |
Wavelet Atrous Filter types. More... | |
Functions | |
TERPEXPORT bool | te::rp::ComposeBands (const std::vector< te::rst::Raster const * > &inputRasters, 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, const bool allowNoDataPixels, const bool enableProgress, 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 bool | te::rp::FillBand (te::rst::Raster &raster, const unsigned int bandIndex, const std::complex< double > &value) |
TERPEXPORT void | te::rp::GetAllSpectralBandInfos (std::map< std::string, struct SpectralSensorParams > &specBandInfos) |
Get all spectral band infos. 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::GetExternalValidDataPolygon (const te::rst::Raster &inputRaster, const std::vector< unsigned int > &inputRasterBandsIdx, const std::vector< double > &bandNoDataValues, std::unique_ptr< te::gm::Polygon > &outPolygonPtr) |
Compute the external raster valid data area polygon. 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, double &corrlationCoef) |
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, const bool forceNoDataValue, const double noDataValue, 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 bool | te::rp::GetSpectralBandInfo (const std::string &bandName, SpectralSensorParams &specBandInfo) |
Get 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, const bool forceNoDataValue, const double noDataValue, 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::Raster * | te::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... | |
Raster Processing functions.
Definition in file Functions.h.