te::rp::ClassifierMaxLikelihoodStrategy Class Reference

A maximum likelihood estimation strategy for classification (a.k.a. MaxVer in portuguese). More...

#include <ClassifierMaxLikelihoodStrategy.h>

Inheritance diagram for te::rp::ClassifierMaxLikelihoodStrategy:
te::rp::ClassifierStrategy

Classes

class  Parameters
 Classifier Parameters. More...
 

Public Member Functions

 ClassifierMaxLikelihoodStrategy ()
 
void enableMultiThread (const bool &enable)
 Enable / disable the use of multiple threads. More...
 
void enableOutputPalette (const bool enabled)
 Enable (true) or disable (false) the creation of a paletted output raster. More...
 
void enableProgressInterface (const bool &enable)
 Enable / disable the progress interface. More...
 
void enableRasterCache (const bool &enable)
 Enable / disable the use of raster data cache. More...
 
bool execute () throw (te::rp::Exception)
 Executes the classification strategy. More...
 
const std::string & getErrorMessage () const
 Return the current error message if there is any. More...
 
void getMetaData (std::map< std::string, std::string > &metadata) const
 Returns strategy-dependent metadata. More...
 
unsigned int getOutputNumberBands (void)
 
bool initialize (ClassifierStrategyParameters const *const strategyParams) throw (te::rp::Exception)
 Initialize the classification strategy. More...
 
std::unique_ptr< te::rst::RasterreleaseOutputRaster ()
 Returns a pointer to the output raster or a void pointer if there is none. More...
 
void setInputPolygons (const std::vector< te::gm::Polygon *> &polygonsPtrs)
 Set the input polygons. More...
 
void setInputRaster (const te::rst::Raster &raster)
 Set the input raster. More...
 
void setInputRasterBands (const std::vector< unsigned int > &rasterBands)
 Set the input raste bandsr. More...
 
void setUserOutputPalette (std::vector< te::rst::BandProperty::ColorEntry > &userPalette)
 Set the output user palette. More...
 
 ~ClassifierMaxLikelihoodStrategy ()
 

Protected Member Functions

bool applyICM (std::unique_ptr< te::rp::Matrix< unsigned int > > &matrixPtr, const unsigned int classifiedMatrixNoDataValue, std::string &errorMessage) const
 Apply an ICM filter. More...
 
bool createOutputRaster (const std::vector< int > &bandsDataTypes, const std::vector< double > &noDataValues)
 Create the output raster using the EXPANSIBLE driver. More...
 
bool getICMBeta (const te::rp::Matrix< unsigned int > &matrix, const unsigned int matrixNoDataValue, double &betaValue, std::string &errorMessage) const
 Iteration Beta value Calule. More...
 
virtual void reset ()
 Reset to an initial state. More...
 
double rtbis (double(*func)(double x, double *param), double *param) const
 Metodo da biseccao para achar os zeros de uma funcao de dupla precisao com parametros. Numerical Recipes in C cap 9. Versao del 22 de agosto de 1990. INPE. O vetor (double)param contem os seguintes valores: param[0] = o minimo do intervalo de procura param[1] = o maximo do intervalo de procura param[2] = a tolerancia param[3] ... param[n] = parametros da funcao. More...
 
void setErrorMessage (const std::string &newErrorMessage)
 Set the current error message. More...
 
bool setOutputRasterPalette (const unsigned int size)
 Create and set the output raster palette folowing the current internal settings. More...
 

Static Protected Member Functions

static int compara_uchar_vesre (const void *x, const void *y)
 
static void Estimacao_geral (double *term, const te::rp::Matrix< unsigned int > &matrix)
 Compute the common part in pseudo-likelihood equation. More...
 
static double plikehood_2 (double, double *)
 
static double plikehood_3 (double, double *)
 
static double plikehood_4 (double, double *)
 
static double sigmo (double a)
 

Protected Attributes

bool m_createRasterPalette
 Enable (true) or disable (false) the creation of a paletted output raster. More...
 
bool m_enableMultiThread
 Enable or disable the use multipe threads. More...
 
bool m_enableRasterCache
 Enable or disable the use a raster data cache. More...
 
te::cl::MaxLikelihood m_genClassInstance
 A generir classifier instance. More...
 
Parameters::ClassIDT m_highestTrainClassID
 The highest train sample lable. More...
 
ClassifierMaxLikelihoodStrategy::Parameters m_initParams
 Initialization parameters. More...
 
std::vector< te::gm::Polygon * > const * m_inputPolygonsPtr
 Input polygons. More...
 
std::vector< unsigned int > m_inputRasterBands
 Input raster bands. More...
 
te::rst::Raster const * m_inputRasterPtr
 A pointer to the input raster. More...
 
bool m_isInitialized
 Is this instance initialized? More...
 
std::map< std::string, std::string > m_metaData
 Strategy-dependent metadata. More...
 
std::unique_ptr< te::rst::Rasterm_outputRasterPtr
 A pointer to the output raster. More...
 
bool m_progressInterfaceEnabled
 Progress interface status. More...
 
std::vector< te::rst::BandProperty::ColorEntrym_userOutputPalette
 User output raster palette (it must be large enough to accomodate all classifyier generated classes or an empty vector to automatically generate an random palette. More...
 

Detailed Description

A maximum likelihood estimation strategy for classification (a.k.a. MaxVer in portuguese).

See also
te::cl::MaxLikelihood class docs

Definition at line 53 of file ClassifierMaxLikelihoodStrategy.h.

Constructor & Destructor Documentation

◆ ClassifierMaxLikelihoodStrategy()

te::rp::ClassifierMaxLikelihoodStrategy::ClassifierMaxLikelihoodStrategy ( )

◆ ~ClassifierMaxLikelihoodStrategy()

te::rp::ClassifierMaxLikelihoodStrategy::~ClassifierMaxLikelihoodStrategy ( )

Member Function Documentation

◆ applyICM()

bool te::rp::ClassifierMaxLikelihoodStrategy::applyICM ( std::unique_ptr< te::rp::Matrix< unsigned int > > &  matrixPtr,
const unsigned int  classifiedMatrixNoDataValue,
std::string &  errorMessage 
) const
protected

Apply an ICM filter.

Parameters
matrixPtrA pointer to a input/output classified matrix (the pointer may be reassigned if required).
classifiedMatrixNoDataValueMatrix no-data value.
errorMessageError message.
Returns
true if OK, false on errors;

◆ compara_uchar_vesre()

static int te::rp::ClassifierMaxLikelihoodStrategy::compara_uchar_vesre ( const void *  x,
const void *  y 
)
staticprotected

◆ createOutputRaster()

bool te::rp::ClassifierStrategy::createOutputRaster ( const std::vector< int > &  bandsDataTypes,
const std::vector< double > &  noDataValues 
)
protectedinherited

Create the output raster using the EXPANSIBLE driver.

Parameters
bandsDataTypesBands data types.
noDataValuesA vector of no-data values for each band.
Returns
true if ok,false on errors.
Note
A pointer to the created raster will be handled by m_outputRasterPtr.

◆ enableMultiThread()

void te::rp::ClassifierStrategy::enableMultiThread ( const bool &  enable)
inherited

Enable / disable the use of multiple threads.

Parameters
enableEnable (true) or disable (false) the use of multiple threads.

◆ enableOutputPalette()

void te::rp::ClassifierStrategy::enableOutputPalette ( const bool  enabled)
inherited

Enable (true) or disable (false) the creation of a paletted output raster.

Parameters
enabledEnable (true) or disable (false) the creation of a paletted output raster.

◆ enableProgressInterface()

void te::rp::ClassifierStrategy::enableProgressInterface ( const bool &  enable)
inherited

Enable / disable the progress interface.

Parameters
enableEnable (true) or disable (false) the progress interface.

◆ enableRasterCache()

void te::rp::ClassifierStrategy::enableRasterCache ( const bool &  enable)
inherited

Enable / disable the use of raster data cache.

Parameters
enableEnable (true) or disable (false) the use of raster cache.

◆ Estimacao_geral()

static void te::rp::ClassifierMaxLikelihoodStrategy::Estimacao_geral ( double *  term,
const te::rp::Matrix< unsigned int > &  matrix 
)
staticprotected

Compute the common part in pseudo-likelihood equation.

Parameters
img_box: image to process.
term: comom part

◆ execute()

bool te::rp::ClassifierMaxLikelihoodStrategy::execute ( )
throw (te::rp::Exception
)
virtual

Executes the classification strategy.

Returns
true if OK, false on errors.

Implements te::rp::ClassifierStrategy.

◆ getErrorMessage()

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

Return the current error message if there is any.

Returns
Return the current error message if there is any.

◆ getICMBeta()

bool te::rp::ClassifierMaxLikelihoodStrategy::getICMBeta ( const te::rp::Matrix< unsigned int > &  matrix,
const unsigned int  matrixNoDataValue,
double &  betaValue,
std::string &  errorMessage 
) const
protected

Iteration Beta value Calule.

Parameters
matrixCurrent classified matrix.
matrixNoDataValueMatrix no-data value.
errorMessageError message.
Returns
true if OK, false on errors;

◆ getMetaData()

void te::rp::ClassifierStrategy::getMetaData ( std::map< std::string, std::string > &  metadata) const
inherited

Returns strategy-dependent metadata.

Parameters
metadataStrategy-dependent metadata.

◆ getOutputNumberBands()

unsigned int te::rp::ClassifierMaxLikelihoodStrategy::getOutputNumberBands ( void  )

◆ initialize()

bool te::rp::ClassifierMaxLikelihoodStrategy::initialize ( ClassifierStrategyParameters const *const  strategyParams)
throw (te::rp::Exception
)
virtual

Initialize the classification strategy.

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

Implements te::rp::ClassifierStrategy.

◆ plikehood_2()

static double te::rp::ClassifierMaxLikelihoodStrategy::plikehood_2 ( double  ,
double *   
)
staticprotected

◆ plikehood_3()

static double te::rp::ClassifierMaxLikelihoodStrategy::plikehood_3 ( double  ,
double *   
)
staticprotected

◆ plikehood_4()

static double te::rp::ClassifierMaxLikelihoodStrategy::plikehood_4 ( double  ,
double *   
)
staticprotected

◆ releaseOutputRaster()

std::unique_ptr< te::rst::Raster > te::rp::ClassifierStrategy::releaseOutputRaster ( )
inherited

Returns a pointer to the output raster or a void pointer if there is none.

Returns
Returns a pointer to the output raster or a void pointer if there is none.
Note
The caller of this method must take the ownership of the returned object.

◆ reset()

virtual void te::rp::ClassifierStrategy::reset ( )
protectedvirtualinherited

Reset to an initial state.

◆ rtbis()

double te::rp::ClassifierMaxLikelihoodStrategy::rtbis ( double(*)(double x, double *param)  func,
double *  param 
) const
protected

Metodo da biseccao para achar os zeros de uma funcao de dupla precisao com parametros. Numerical Recipes in C cap 9. Versao del 22 de agosto de 1990. INPE. O vetor (double)param contem os seguintes valores: param[0] = o minimo do intervalo de procura param[1] = o maximo do intervalo de procura param[2] = a tolerancia param[3] ... param[n] = parametros da funcao.

Note
Imported from SPRING

◆ setErrorMessage()

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

Set the current error message.

Parameters
newErrorMessageNew error message;

◆ setInputPolygons()

void te::rp::ClassifierStrategy::setInputPolygons ( const std::vector< te::gm::Polygon *> &  polygonsPtrs)
inherited

Set the input polygons.

Parameters
polygonsPtrsInput polygons pointers.
Note
The caller of this method must keep the ownership of the objects.

◆ setInputRaster()

void te::rp::ClassifierStrategy::setInputRaster ( const te::rst::Raster raster)
inherited

Set the input raster.

Parameters
rasterInput raster.

◆ setInputRasterBands()

void te::rp::ClassifierStrategy::setInputRasterBands ( const std::vector< unsigned int > &  rasterBands)
inherited

Set the input raste bandsr.

Parameters
rasterBandsInput raster bands.

◆ setOutputRasterPalette()

bool te::rp::ClassifierStrategy::setOutputRasterPalette ( const unsigned int  size)
protectedinherited

Create and set the output raster palette folowing the current internal settings.

Parameters
sizePalette size.
Returns
true if ok,false on errors.

◆ setUserOutputPalette()

void te::rp::ClassifierStrategy::setUserOutputPalette ( std::vector< te::rst::BandProperty::ColorEntry > &  userPalette)
inherited

Set the output user palette.

Parameters
userPaletteUser output raster palette (it must be large enough to accomodate all classifyier generated classes or an empty vector to automatically generate an random palette.

◆ sigmo()

static double te::rp::ClassifierMaxLikelihoodStrategy::sigmo ( double  a)
staticprotected

Member Data Documentation

◆ m_createRasterPalette

bool te::rp::ClassifierStrategy::m_createRasterPalette
protectedinherited

Enable (true) or disable (false) the creation of a paletted output raster.

Definition at line 164 of file ClassifierStrategy.h.

◆ m_enableMultiThread

bool te::rp::ClassifierStrategy::m_enableMultiThread
protectedinherited

Enable or disable the use multipe threads.

Definition at line 159 of file ClassifierStrategy.h.

◆ m_enableRasterCache

bool te::rp::ClassifierStrategy::m_enableRasterCache
protectedinherited

Enable or disable the use a raster data cache.

Definition at line 154 of file ClassifierStrategy.h.

◆ m_genClassInstance

te::cl::MaxLikelihood te::rp::ClassifierMaxLikelihoodStrategy::m_genClassInstance
protected

A generir classifier instance.

Definition at line 118 of file ClassifierMaxLikelihoodStrategy.h.

◆ m_highestTrainClassID

Parameters::ClassIDT te::rp::ClassifierMaxLikelihoodStrategy::m_highestTrainClassID
protected

The highest train sample lable.

Definition at line 114 of file ClassifierMaxLikelihoodStrategy.h.

◆ m_initParams

ClassifierMaxLikelihoodStrategy::Parameters te::rp::ClassifierMaxLikelihoodStrategy::m_initParams
protected

Initialization parameters.

Definition at line 116 of file ClassifierMaxLikelihoodStrategy.h.

◆ m_inputPolygonsPtr

std::vector<te::gm::Polygon*> const* te::rp::ClassifierStrategy::m_inputPolygonsPtr
protectedinherited

Input polygons.

Definition at line 179 of file ClassifierStrategy.h.

◆ m_inputRasterBands

std::vector<unsigned int> te::rp::ClassifierStrategy::m_inputRasterBands
protectedinherited

Input raster bands.

Definition at line 174 of file ClassifierStrategy.h.

◆ m_inputRasterPtr

te::rst::Raster const* te::rp::ClassifierStrategy::m_inputRasterPtr
protectedinherited

A pointer to the input raster.

Definition at line 144 of file ClassifierStrategy.h.

◆ m_isInitialized

bool te::rp::ClassifierMaxLikelihoodStrategy::m_isInitialized
protected

Is this instance initialized?

Definition at line 112 of file ClassifierMaxLikelihoodStrategy.h.

◆ m_metaData

std::map< std::string, std::string > te::rp::ClassifierStrategy::m_metaData
protectedinherited

Strategy-dependent metadata.

Definition at line 184 of file ClassifierStrategy.h.

◆ m_outputRasterPtr

std::unique_ptr< te::rst::Raster > te::rp::ClassifierStrategy::m_outputRasterPtr
protectedinherited

A pointer to the output raster.

Definition at line 169 of file ClassifierStrategy.h.

◆ m_progressInterfaceEnabled

bool te::rp::ClassifierStrategy::m_progressInterfaceEnabled
protectedinherited

Progress interface status.

Definition at line 149 of file ClassifierStrategy.h.

◆ m_userOutputPalette

std::vector< te::rst::BandProperty::ColorEntry > te::rp::ClassifierStrategy::m_userOutputPalette
protectedinherited

User output raster palette (it must be large enough to accomodate all classifyier generated classes or an empty vector to automatically generate an random palette.

Definition at line 189 of file ClassifierStrategy.h.


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