30 #include "../raster/Band.h" 96 "Invalid classes samples pointer" )
98 "Invalid classes samples number" )
100 "Invalid classes samples number" )
106 std::vector< std::vector< double > > samples;
107 std::vector<unsigned int> samplesLabels;
108 std::vector<unsigned int> samplesAttributesIndices;
111 Parameters::MClassesSamplesCT::const_iterator classesSamplesIt = castParamsPtr->
m_trainSamplesPtr->begin();
112 const Parameters::MClassesSamplesCT::const_iterator classesSamplesItEnd = castParamsPtr->
m_trainSamplesPtr->end();
113 Parameters::ClassSamplesContainerT::const_iterator classSamplesIt;
114 Parameters::ClassSamplesContainerT::const_iterator classSamplesItEnd;
118 while( classesSamplesIt != classesSamplesItEnd )
120 classSamplesIt = classesSamplesIt->second.begin();
121 classSamplesItEnd = classesSamplesIt->second.end();
124 classesSamplesIt->first );
126 while( classSamplesIt != classSamplesItEnd )
128 samples.push_back( *classSamplesIt);
129 samplesLabels.push_back( classesSamplesIt->first );
137 if( !samples.empty() )
139 const std::size_t featuresNmb = samples[ 0 ].size();
141 for( std::size_t featureIdx = 0 ; featureIdx < featuresNmb ; ++featureIdx )
143 samplesAttributesIndices.push_back(static_cast<unsigned int>(featureIdx));
155 "Invalid parameters" )
163 samplesLabels,
false ),
"Classifier trainning error" );
175 "Classification strategy not initialized" );
179 std::vector< int >
dt;
182 std::vector< double > noDataValues;
186 "Output raster creation error" );
189 "Output raster palette creation error" );
194 std::vector< double > inputNoDataValues;
195 for(
unsigned int inputRasterBandsIdx = 0 ; inputRasterBandsIdx <
m_inputRasterBands.size() ;
196 ++inputRasterBandsIdx )
unsigned int m_prioriCalcSampleStep
A positive non-zero sample step used when calculating piori probabilities (default:5 - 1/5 of samples...
ClassifierMAPStrategy::Parameters m_initParams
Initialization parameters.
MClassesSamplesCTPtr m_trainSamplesPtr
A shared pointer to a always-valid structure where trainning samples are stored.
Maximum a posteriori probability strategy factory.
te::cl::MAP m_genClassInstance
A generir classifier instance.
ClassifierMAPStrategyFactory()
unsigned int m_prioriCalcSampleStep
A positive non-zero sample step used when calculating piori probabilities (default:5 - 1/5 of samples...
Maximum a posteriori probability strategy.
Base exception class for plugin module.
bool createOutputRaster(const std::vector< int > &bandsDataTypes, const std::vector< double > &noDataValues)
Create the output raster using the EXPANSIBLE driver.
bool train(const InputAdaptor< double > &samples, const std::vector< unsigned int > &attributesIndices, const std::vector< unsigned int > &sampleLabels, const bool enableProgressInterface)
Train this classifier instance using the initialization parameters and the suppied train data...
const Parameters & operator=(const Parameters ¶ms)
std::vector< double > m_prioriProbs
Priori probabilities, one for each class. Values from 0 to 1 (use an empty vector to allow internal c...
double m_noDataValue
Value to indicate elements where there is no data, default is std::numeric_limits<double>::max().
bool initialize(const Parameters ¶ms)
Initialize this classifier instance with new parameters.
std::vector< unsigned int > m_inputRasterBands
Input raster bands.
std::vector< double > m_prioriProbs
Priori probabilities, one for each class. Values from 0 to 1 (use an empty vector to allow internal c...
Raster classifier strategy factory base class.
bool classify(const InputAdaptor< double > &input, const std::vector< unsigned int > &attributesIndices, const std::vector< double > &inputNoDataValues, OutputAdaptor< unsigned int > &output, const unsigned int outputIndex, const double outputNoDataValue, const bool enableProgressInterface)
Classify an input iterated data and save the result on the output iterated data.
bool execute()
Executes the classification strategy.
BandProperty * getProperty()
Returns the band property.
static te::dt::TimeDuration dt(20, 30, 50, 11)
bool m_isInitialized
Is this instance initialized?
virtual const Band * getBand(std::size_t i) const =0
Returns the raster i-th band.
Maximum a posteriori probability strategy.
std::unique_ptr< te::rst::Raster > m_outputRasterPtr
A pointer to the output raster.
Abstract parameters base interface.
bool m_progressInterfaceEnabled
Progress interface status.
te::rp::ClassifierStrategy * build()
Concrete factories (derived from this one) must implement this method in order to create objects...
AbstractParameters * clone() const
Create a clone copy of this instance.
te::rst::Raster const * m_inputRasterPtr
A pointer to the input raster.
Classifier Strategy Parameters.
Raster classifier strategy base class.
Classifiers raster output data adaptor.
~ClassifierMAPStrategyFactory()
bool initialize(ClassifierStrategyParameters const *const strategyParams)
Initialize the classification strategy.
void reset()
Clear all internal allocated resources and reset the parameters instance to its initial state...
Parameters::ClassIDT m_highestTrainClassID
The highest train sample lable.
#define TERP_INSTANCE_TRUE_OR_RETURN_FALSE(value, message)
Checks if value is true. For false values a warning message will be logged, the current instance erro...
bool setOutputRasterPalette(const unsigned int size)
Create and set the output raster palette folowing the current internal settings.