MixtureModelStrategy.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/MixtureModelStrategy.h
22 
23  \brief Raster mixture model strategy base class.
24  */
25 
26 #ifndef __TERRALIB_RP_INTERNAL_MIXTUREMODELSTRATEGY_H
27 #define __TERRALIB_RP_INTERNAL_MIXTUREMODELSTRATEGY_H
28 
29 // TerraLib
30 #include "../raster/Raster.h"
31 #include "StrategyParameters.h"
32 #include "Config.h"
33 #include "Exception.h"
34 
35 // STL
36 #include <vector>
37 
38 namespace te
39 {
40  namespace rp
41  {
42  /*!
43  \class MixtureModelStrategy
44  \brief Raster mixture model strategy base class.
45  */
47  {
48  public:
49 
50  /*! \brief Virtual destructor. */
51  virtual ~MixtureModelStrategy();
52 
53  /*!
54  \brief Initialize the segmentation strategy.
55 
56  \param strategyParams A pointer to the user given specific segmentation strategy parameters ou NULL if no parameters are present.
57 
58  \return true if OK, false on errors.
59  */
60  virtual bool initialize(StrategyParameters const* const strategyParams) throw(te::rp::Exception) = 0;
61 
62  /*!
63  \brief Executes the segmentation strategy.
64 
65  \param inputRaster Input raster.
66  \param inputRasterBands Input raster bands.
67  \param components The set of endmembers and its radiances.
68  \param outputRaster Output raster.
69  \param enableProgressInterface Enable the internal strategy to update the progress interface.
70 
71  \return true if OK, false on errors.
72  */
73  virtual bool execute(const te::rst::Raster& inputRaster, const std::vector<unsigned int>& inputRasterBands,
74  const std::vector<std::string>& inputSensorBands, const std::map<std::string, std::vector<double> >& components,
75  te::rst::Raster& outputRaster, const bool enableProgressInterface) throw(te::rp::Exception) = 0;
76 
77  protected:
78 
79  /*! \brief Default constructor. */
81 
82  private:
83 
84  /*!
85  \brief Copy constructor.
86 
87  \param rhs The right-hand side Raster.
88  */
90 
91  /*!
92  \brief Assignment operator.
93 
94  \param rhs The right-hand-side copy that would be used to copy from.
95 
96  \return A reference to this object.
97  */
98  const MixtureModelStrategy& operator=(const MixtureModelStrategy& rhs);
99  };
100 
101  } // end namespace rp
102 } // end namespace te
103 
104 #endif // __TERRALIB_RP_INTERNAL_MIXTUREMODELSTRATEGY_H
105 
Exception class.
Raster mixture model strategy base class.
An abstract class for raster data strucutures.
Definition: Raster.h:71
URI C++ Library.
Raster strategy parameters base class.
Raster strategy parameters base class.
#define TERPEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:139
Configuration flags for the Raster Processing module of TerraLib.