SummaryFunctions.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 SummaryFunctions.h
22 
23  \brief A set of functions to calculate the statistic summary from a set of values.
24  */
25 
26 #ifndef __TERRALIB_STATISTICAL_CORE_INTERNAL_SUMMARYFUNCTIONS_H
27 #define __TERRALIB_STATISTICAL_CORE_INTERNAL_SUMMARYFUNCTIONS_H
28 
29 //Terralib
30 #include "Config.h"
31 #include "Enums.h"
35 
36 // STL
37 #include <map>
38 #include <string>
39 #include <vector>
40 
41 namespace te
42 {
43  namespace da { class DataSource; }
44 
45  namespace stat
46  {
47  /*! Fills the summary statistics structure from a set of categorical values.
48 
49  \param values a vector of categorical values. Do not pass empty.
50  \param ss to return the statistical summary.
51  \param nullVal a value to be considered as non-value or invalid value.
52  */
53  TESTATEXPORT void GetStringStatisticalSummary(std::vector<std::string>& values, te::stat::StringStatisticalSummary& ss, const std::string& nullValue);
54 
55  /*! Fills the summary statistics structure from a set of categorical values.
56 
57  \param values a vector of categorical values. Do not pass empty.
58  \param ss to return the statistical summary.
59  */
60  TESTATEXPORT void GetStringStatisticalSummary(std::vector<std::string>& values, te::stat::StringStatisticalSummary& ss);
61 
62  /*! Fills the summary statistics structure from a set of numerical values.
63 
64  \param values a vector of numerical values. Do not pass empty.
65  \param ss to return the statistical summary.
66  \param nullVal a value to be considered as non-value or invalid value.
67  */
68  TESTATEXPORT void GetNumericStatisticalSummary(std::vector<double>& values, te::stat::NumericStatisticalSummary& ss, double nullValue);
69 
70  /*! Fills the summary statistics structure from a set of numerical values.
71 
72  \param values a vector of numerical values. Do not pass empty.
73  \param ss to return the statistical summary.
74  */
76 
77  /*! Fills the summary statistics structure from a set of numerical values.
78 
79  \param values a map of numerical values as key and number of occurrence as value. Do not pass empty.
80  \param ss to return the statistical summary.
81  */
82  TESTATEXPORT void GetNumericStatisticalSummary(std::map<double, int>& values, te::stat::NumericStatisticalSummary& ss);
83 
84  /*! Fills the summary statistics structure from a set of numerical complex values.
85 
86  \param values a vector of numerical values. Do not pass empty.
87  \param ss to return the statistical summary.
88  */
89  TESTATEXPORT void GetNumericComplexStatisticalSummary(std::vector<std::complex<double> >& values, te::stat::NumericStatisticalComplexSummary& ss);
90 
91  /*! Fills the percentage of each class by area.
92 
93  \param values a map of numerical values as key and number of occurrence as value. Do not pass empty.
94  \param resolutionX a raster horizontal (x-axis) resolution.
95  \param resolutionY a raster vertical (y-axis) resolution.
96  \param area area of a geometry that intersects the raster.
97  \param ss to return the percentage of each class by area.
98 
99  */
100  TESTATEXPORT void GetPercentOfEachClassByArea(std::map<double, int>& values,
101  double& resolutionX,
102  double& resolutionY,
103  double& area,
105 
106  /*! Returns the mode of set of numerical values.
107 
108  \param values a reference to a set of numerical values. Do not pass empty.
109  \param ss to return the mode (most frequent value).
110  */
111  TESTATEXPORT void Mode(const std::vector<double>& values,
113 
114  /*! Returns the mode of set of categorical values.
115 
116  \param values a reference to a set of categorical values;
117  \param ss to return the mode (most frequent value).
118  */
119  TESTATEXPORT void Mode(const std::vector<std::string>& values,
121 
122 
123  /*! Fills the summary statistics structure of a given categorical property from a dataset.
124 
125  \param inDataset a dataset name.
126  \param inDatasource a pointer to a datasource. Do not pass null.
127  \param propName the name of the property to be summarized.
128  \param ss to return the statistical summary.
129  */
130  TESTATEXPORT void GetStringStatisticalSummaryQuery(const std::string& inDataset,
131  te::da::DataSource* inDatasource,
132  const std::string& propName,
134 
135  /*! Fills the summary statistics structure of a given numerical property from a dataset.
136 
137  \param inDataset a dataset name.
138  \param inDatasource a pointer to a datasource. Do not pass null.
139  \param propName the name of the property to be summarized.
140  \param ss to return the statistical summary.
141  */
142  TESTATEXPORT void GetNumericStatisticalSummaryQuery(const std::string& inDataset,
143  te::da::DataSource* inDatasource,
144  const std::string& propName,
146 
147  } // end namespace stat
148 } // end namespace te
149 
150 #endif // __TERRALIB_STATISTICAL_CORE_INTERNAL_SUMMARYFUNCTIONS_H
151 
TESTATEXPORT void GetNumericStatisticalSummaryQuery(const std::string &inDataset, te::da::DataSource *inDatasource, const std::string &propName, te::stat::NumericStatisticalSummary &ss)
A structure to hold the set of statistics from a set of numerical values.
TESTATEXPORT void GetPercentOfEachClassByArea(std::map< double, int > &values, double &resolutionX, double &resolutionY, double &area, te::stat::NumericStatisticalSummary &ss)
TESTATEXPORT void GetStringStatisticalSummaryQuery(const std::string &inDataset, te::da::DataSource *inDatasource, const std::string &propName, te::stat::StringStatisticalSummary &ss)
TESTATEXPORT void GetNumericStatisticalSummary(std::map< double, int > &values, te::stat::NumericStatisticalSummary &ss)
An abstract class for data providers like a DBMS, Web Services or a regular file. ...
Definition: DataSource.h:119
TESTATEXPORT void GetStringStatisticalSummary(std::vector< std::string > &values, te::stat::StringStatisticalSummary &ss)
TESTATEXPORT void GetNumericComplexStatisticalSummary(std::vector< std::complex< double > > &values, te::stat::NumericStatisticalComplexSummary &ss)
URI C++ Library.
Enumerations related to Vector Processing module.
#define TESTATEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:61
A structure to hold the set of statistics from a set of categorical (sample) values.
TESTATEXPORT void Mode(const std::vector< std::string > &values, te::stat::StringStatisticalSummary &ss)
Configuration flags for the Terrralib Statistic module.