te::rp::MixtureModelLinearStrategy Class Reference

#include <MixtureModelLinearStrategy.h>

Inheritance diagram for te::rp::MixtureModelLinearStrategy:
te::rp::MixtureModelStrategy

Classes

class  Parameters
 MixtureModel Parameters. More...
 

Public Member Functions

bool execute (const te::rst::Raster &inputRaster, const std::vector< unsigned int > &inputRasterBands, const std::vector< std::string > &inputSensorBands, const std::map< std::string, std::vector< double > > &components, std::vector< te::rst::Raster * > &outputRaster, const bool normalize, const bool enableProgressInterface) throw (te::rp::Exception)
 Executes the segmentation strategy. More...
 
bool generateTransformMatrix (const std::vector< unsigned int > &inputRasterBands, const std::vector< std::string > &inputSensorBands, const std::map< std::string, std::vector< double > > &components)
 Generates the used transformation matrix (when applicable). More...
 
const std::string & getErrorMessage () const
 Return the current error message if there is any. More...
 
bool getMinMax (std::vector< double > &, std::vector< double > &) const
 
bool getMinMaxError (std::vector< double > &, std::vector< double > &) const
 
bool getTransformMatrix (boost::numeric::ublas::matrix< double > &matrix) const
 Returns the used transformation matrix (when applicable). More...
 
bool initialize (StrategyParameters const *const strategyParams) throw (te::rp::Exception)
 Initialize the segmentation strategy. More...
 
 MixtureModelLinearStrategy ()
 
bool setTransformMatrix (boost::numeric::ublas::matrix< double > &matrix)
 Sets the used transformation matrix. More...
 
 ~MixtureModelLinearStrategy ()
 

Protected Member Functions

virtual void reset ()
 Reset to an initial state. More...
 
void setErrorMessage (const std::string &newErrorMessage)
 Set the current error message. More...
 

Protected Attributes

bool m_isInitialized
 True if this instance is initialized. More...
 
std::vector< double > m_max
 Maximum value. More...
 
std::vector< double > m_maxerror
 Maximum error value. More...
 
std::vector< double > m_min
 Transpose of A (A is the set of known reflectances for each component);. More...
 
std::vector< double > m_minerror
 Minimun error value. More...
 
MixtureModelLinearStrategy::Parameters m_parameters
 Internal execution parameters. More...
 
boost::numeric::ublas::matrix< double > m_transfMatrix
 
boost::numeric::ublas::matrix< double > m_transposeA
 Transformation matrix;. More...
 

Detailed Description

Note
The transformation matrix (A) returned by getTransformMatrix by definition: A * X = R, we have A, so that X = inv(A' * A) * A' * R where A is the set of known reflectances for each component, R is the reflectances of a specific pixel and X is the proportion of each component.

Definition at line 51 of file MixtureModelLinearStrategy.h.

Constructor & Destructor Documentation

te::rp::MixtureModelLinearStrategy::MixtureModelLinearStrategy ( )

Definition at line 70 of file MixtureModelLinearStrategy.cpp.

References m_isInitialized.

te::rp::MixtureModelLinearStrategy::~MixtureModelLinearStrategy ( )

Definition at line 75 of file MixtureModelLinearStrategy.cpp.

Member Function Documentation

bool te::rp::MixtureModelLinearStrategy::execute ( const te::rst::Raster inputRaster,
const std::vector< unsigned int > &  inputRasterBands,
const std::vector< std::string > &  inputSensorBands,
const std::map< std::string, std::vector< double > > &  components,
std::vector< te::rst::Raster * > &  outputRaster,
const bool  normalize,
const bool  enableProgressInterface 
)
throw (te::rp::Exception
)
virtual

Executes the segmentation strategy.

Parameters
inputRasterInput raster.
inputRasterBandsInput raster bands.
componentsThe set of endmembers and its radiances.
outputRasterOutput raster vector, contains output raster and error raster if requested.
enableProgressInterfaceEnable the internal strategy to update the progress interface.
Returns
true if OK, false on errors.

Implements te::rp::MixtureModelStrategy.

Definition at line 95 of file MixtureModelLinearStrategy.cpp.

References b, te::dt::DOUBLE_TYPE, generateTransformMatrix(), te::rp::GetDigitalNumberBandMax(), te::rp::GetDigitalNumberBandMin(), te::common::GetInverseMatrix(), te::rst::GrayIdxCInt, te::sa::Grid, te::rst::BandProperty::m_colorInterp, m_isInitialized, m_max, m_maxerror, m_min, m_minerror, m_transfMatrix, m_transposeA, te::rst::BandProperty::m_type, te::rst::RasterFactory::make(), TE_TR, TERP_TRUE_OR_RETURN_FALSE, and te::common::TaskProgress::UNDEFINED.

bool te::rp::MixtureModelLinearStrategy::generateTransformMatrix ( const std::vector< unsigned int > &  inputRasterBands,
const std::vector< std::string > &  inputSensorBands,
const std::map< std::string, std::vector< double > > &  components 
)
virtual

Generates the used transformation matrix (when applicable).

Parameters
inputRasterBandsInput raster bands.
inputSensorBandsInput names of the sensor/bands.
componentsA set of endmembers and its radiances.
Returns
true if OK, false on errors or not applicable cases.

Implements te::rp::MixtureModelStrategy.

Definition at line 257 of file MixtureModelLinearStrategy.cpp.

References te::rp::GetDigitalNumberBandMax(), m_transfMatrix, and m_transposeA.

Referenced by execute().

const std::string & te::rp::MixtureModelStrategy::getErrorMessage ( ) const
inherited

Return the current error message if there is any.

Returns
Return the current error message if there is any.

Definition at line 38 of file MixtureModelStrategy.cpp.

References te::rp::MixtureModelStrategy::m_errorMessage.

bool te::rp::MixtureModelLinearStrategy::getMinMax ( std::vector< double > &  min,
std::vector< double > &  max 
) const
virtual

Implements te::rp::MixtureModelStrategy.

Definition at line 299 of file MixtureModelLinearStrategy.cpp.

References m_max, and m_min.

bool te::rp::MixtureModelLinearStrategy::getMinMaxError ( std::vector< double > &  min,
std::vector< double > &  max 
) const
virtual

Implements te::rp::MixtureModelStrategy.

Definition at line 306 of file MixtureModelLinearStrategy.cpp.

References m_maxerror, and m_minerror.

bool te::rp::MixtureModelLinearStrategy::getTransformMatrix ( boost::numeric::ublas::matrix< double > &  matrix) const
virtual

Returns the used transformation matrix (when applicable).

Parameters
matrixThe transformation matrix.
Returns
true if OK, false on errors or not applicable cases.

Implements te::rp::MixtureModelStrategy.

Definition at line 243 of file MixtureModelLinearStrategy.cpp.

References m_transfMatrix.

bool te::rp::MixtureModelLinearStrategy::initialize ( StrategyParameters const *const  strategyParams)
throw (te::rp::Exception
)
virtual

Initialize the segmentation strategy.

Parameters
strategyParamsA pointer to the user given specific segmentation strategy parameters ou NULL if no parameters are present.
Returns
true if OK, false on errors.

Implements te::rp::MixtureModelStrategy.

Definition at line 79 of file MixtureModelLinearStrategy.cpp.

References m_isInitialized, and m_parameters.

void te::rp::MixtureModelStrategy::reset ( )
protectedvirtualinherited

Reset to an initial state.

Definition at line 48 of file MixtureModelStrategy.cpp.

References te::rp::MixtureModelStrategy::m_errorMessage.

void te::rp::MixtureModelStrategy::setErrorMessage ( const std::string &  newErrorMessage)
protectedinherited

Set the current error message.

Parameters
newErrorMessageNew error message;

Definition at line 43 of file MixtureModelStrategy.cpp.

References te::rp::MixtureModelStrategy::m_errorMessage.

bool te::rp::MixtureModelLinearStrategy::setTransformMatrix ( boost::numeric::ublas::matrix< double > &  matrix)
virtual

Sets the used transformation matrix.

Parameters
matrixThe transformation matrix.
Returns
true if OK, false on errors or not applicable cases.

Implements te::rp::MixtureModelStrategy.

Definition at line 251 of file MixtureModelLinearStrategy.cpp.

References m_transfMatrix.

Member Data Documentation

bool te::rp::MixtureModelLinearStrategy::m_isInitialized
protected

True if this instance is initialized.

Definition at line 108 of file MixtureModelLinearStrategy.h.

Referenced by execute(), initialize(), and MixtureModelLinearStrategy().

std::vector<double> te::rp::MixtureModelLinearStrategy::m_max
protected

Maximum value.

Definition at line 113 of file MixtureModelLinearStrategy.h.

Referenced by execute(), and getMinMax().

std::vector<double> te::rp::MixtureModelLinearStrategy::m_maxerror
protected

Maximum error value.

Definition at line 115 of file MixtureModelLinearStrategy.h.

Referenced by execute(), and getMinMaxError().

std::vector<double> te::rp::MixtureModelLinearStrategy::m_min
protected

Transpose of A (A is the set of known reflectances for each component);.

Minimun value

Definition at line 112 of file MixtureModelLinearStrategy.h.

Referenced by execute(), and getMinMax().

std::vector<double> te::rp::MixtureModelLinearStrategy::m_minerror
protected

Minimun error value.

Definition at line 114 of file MixtureModelLinearStrategy.h.

Referenced by execute(), and getMinMaxError().

MixtureModelLinearStrategy::Parameters te::rp::MixtureModelLinearStrategy::m_parameters
protected

Internal execution parameters.

Definition at line 109 of file MixtureModelLinearStrategy.h.

Referenced by initialize().

boost::numeric::ublas::matrix<double> te::rp::MixtureModelLinearStrategy::m_transfMatrix
protected
boost::numeric::ublas::matrix<double> te::rp::MixtureModelLinearStrategy::m_transposeA
protected

Transformation matrix;.

Definition at line 111 of file MixtureModelLinearStrategy.h.

Referenced by execute(), and generateTransformMatrix().


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