Loading...
Searching...
No Matches
GaussianModel.h
Go to the documentation of this file.
1/* Copyright (C) 2008 National Institute For Space Research (INPE) - Brazil.
2
3 This file is part of the TerraLib - a Framework for building GIS enabled applications.
4
5 TerraLib is free software: you can redistribute it and/or modify
6 it under the terms of the GNU Lesser General Public License as published by
7 the Free Software Foundation, either version 3 of the License,
8 or (at your option) any later version.
9
10 TerraLib is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public License
16 along with TerraLib. See COPYING. If not, write to
17 TerraLib Team at <terralib-team@terralib.org>.
18 */
19
20/*!
21 \file terralib/rp/radar/GaussianModel.h
22 \brief Gaussian model data manipulation.
23*/
24
25#ifndef __TERRALIB_RP_RADAR_INTERNAL_GAUSSIANMODEL_H
26#define __TERRALIB_RP_RADAR_INTERNAL_GAUSSIANMODEL_H
27
28// TerraLib includes
29#include "../Config.h"
30#include "../../raster/Raster.h"
31#include "../../geometry/Polygon.h"
32
33// Boost includes
34#include <boost/numeric/ublas/matrix.hpp>
35#include <boost/math/distributions/chi_squared.hpp>
36
37#include <vector>
38#include <map>
39
40namespace te
41{
42 namespace rp
43 {
44 namespace radar
45 {
46 /*!
47 \class GaussianModel
48
49 \brief Gaussian model data manipulation.
50 */
52 {
53 public:
54
55 //std::auto_ptr<te::rst::Raster> outputRasterClassesPtr;
56
57 unsigned int m_sourcesNumber; //!< Number of sources.
58
59 te::rst::Raster* m_inputRasterPtr; //!< Input raster.
60
61 std::vector< unsigned int > m_inputRastersBands; //!< Bands to process.
62
63 std::vector< te::gm::Polygon* > m_polygonsSegImage; //!< Polygons of segmented image.
64
65 unsigned int m_lagX; //!< The horizontal correlation value.
66
67 unsigned int m_lagY; //!< The vertical correlation value.
68
69 typedef unsigned int ClassIDT; //!< CLass ID type definiton.
70
71 std::vector< unsigned int > m_classesIDT; //!< Training class ID.
72
73 std::vector< te::gm::Polygon > m_polygonSamplesT; //!< Training samples polygons.
74 std::vector< std::vector< double > > m_polygonSamplesTNew; //!< Training samples polygons.
75 std::vector< int > m_numberOfSamples;
76
77 typedef std::vector< double > ClassSampleT; //!< Class sample type definition.
78
79 typedef std::vector< ClassSampleT > ClassSamplesContainerT; //!< Class samples container type definition.
80
81 typedef std::map< ClassIDT, ClassSamplesContainerT > MClassesSamplesCT; //!< Multi-classes samples container type definition.
82
83 typedef boost::shared_ptr<MClassesSamplesCT> MClassesSamplesCTPtr; //!< A shared pointer to a multi classes samples container type definition.
84
85 MClassesSamplesCTPtr m_trainSamplesPtr; //!< A shared pointer to a always-valid structure where training samples are stored.
86
87 std::vector< ClassIDT > m_classesIndex2IDMu; //!< A class index ordered vector of classes IDs for Mu parameter.
88
89 std::vector< std::vector< double > > m_muClassesParameters; //!< Mu classes parameter.
90
91 std::vector< boost::numeric::ublas::matrix< double > > m_classesCovarianceMatrixes; //!< Sigma classes parameter.
92
93 std::vector< std::vector< double > > m_muRegionsParameter; //!< Mu Regions parameter.
94
95 std::vector< boost::numeric::ublas::matrix< double > > m_regionsCovarianceMatrixes; //!< Sigma regions parameter.
96
97 std::string m_stochasticDistanceType; //!< The stochastic distance type definition.
98
99 std::vector< std::vector< double > > m_stochasticDistance; //!< Stochastic distance container.
100
101 std::vector< std::vector< double > > m_statisticalTest; //!< Statistical test container.
102
103 std::vector< std::vector< double > > m_pValue; //!< P-values container.
104
105 double m_significanceLevel; //!< The significance level.
106
107 std::vector< double > m_regionsSize; //!< Size of regions.
108
109 std::vector< double > m_samplesSize; //!< Size of sample containers.
110
111 /*! \brief Constructor. */
113
114 /*! \brief Destructor. */
116
117 boost::numeric::ublas::matrix< double > checkCovarianceMatrix(boost::numeric::ublas::matrix< double >);
118
119 bool LoadingSamples(void);
120
122
124
126
128
130
131 bool execute(void);
132 };
133
134 } // end namespace radar
135 } // end namespace rp
136} // end namespace msc
137
138#endif
139
Gaussian model data manipulation.
Definition: GaussianModel.h:52
std::vector< unsigned int > m_inputRastersBands
Bands to process.
Definition: GaussianModel.h:61
std::vector< boost::numeric::ublas::matrix< double > > m_regionsCovarianceMatrixes
Sigma regions parameter.
Definition: GaussianModel.h:95
unsigned int ClassIDT
CLass ID type definiton.
Definition: GaussianModel.h:69
std::vector< std::vector< double > > m_statisticalTest
Statistical test container.
std::vector< double > m_samplesSize
Size of sample containers.
std::vector< std::vector< double > > m_muRegionsParameter
Mu Regions parameter.
Definition: GaussianModel.h:93
std::vector< std::vector< double > > m_muClassesParameters
Mu classes parameter.
Definition: GaussianModel.h:89
std::vector< boost::numeric::ublas::matrix< double > > m_classesCovarianceMatrixes
Sigma classes parameter.
Definition: GaussianModel.h:91
std::vector< te::gm::Polygon * > m_polygonsSegImage
Polygons of segmented image.
Definition: GaussianModel.h:63
std::vector< unsigned int > m_classesIDT
Training class ID.
Definition: GaussianModel.h:71
boost::shared_ptr< MClassesSamplesCT > MClassesSamplesCTPtr
A shared pointer to a multi classes samples container type definition.
Definition: GaussianModel.h:83
bool CalculatingMuAndSigmaRegion(void)
std::map< ClassIDT, ClassSamplesContainerT > MClassesSamplesCT
Multi-classes samples container type definition.
Definition: GaussianModel.h:81
std::vector< double > m_regionsSize
Size of regions.
std::string m_stochasticDistanceType
The stochastic distance type definition.
Definition: GaussianModel.h:97
std::vector< ClassSampleT > ClassSamplesContainerT
Class samples container type definition.
Definition: GaussianModel.h:79
unsigned int m_sourcesNumber
Number of sources.
Definition: GaussianModel.h:57
std::vector< double > ClassSampleT
Class sample type definition.
Definition: GaussianModel.h:77
boost::numeric::ublas::matrix< double > checkCovarianceMatrix(boost::numeric::ublas::matrix< double >)
double m_significanceLevel
The significance level.
unsigned int m_lagX
The horizontal correlation value.
Definition: GaussianModel.h:65
unsigned int m_lagY
The vertical correlation value.
Definition: GaussianModel.h:67
std::vector< ClassIDT > m_classesIndex2IDMu
A class index ordered vector of classes IDs for Mu parameter.
Definition: GaussianModel.h:87
std::vector< int > m_numberOfSamples
Definition: GaussianModel.h:75
MClassesSamplesCTPtr m_trainSamplesPtr
A shared pointer to a always-valid structure where training samples are stored.
Definition: GaussianModel.h:85
std::vector< std::vector< double > > m_stochasticDistance
Stochastic distance container.
Definition: GaussianModel.h:99
te::rst::Raster * m_inputRasterPtr
Input raster.
Definition: GaussianModel.h:59
std::vector< std::vector< double > > m_polygonSamplesTNew
Training samples polygons.
Definition: GaussianModel.h:74
std::vector< std::vector< double > > m_pValue
P-values container.
std::vector< te::gm::Polygon > m_polygonSamplesT
Training samples polygons.
Definition: GaussianModel.h:73
An abstract class for raster data strucutures.
Definition: Raster.h:72
TerraLib.
#define TERPEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:139