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 nullVal);
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 complex values.
78 
79  \param values a vector of numerical values. Do not pass empty.
80  \param ss to return the statistical summary.
81  */
82  TESTATEXPORT void GetNumericComplexStatisticalSummary(std::vector<std::complex<double> >& values, te::stat::NumericStatisticalComplexSummary& ss);
83 
84  /*! Fills the percentage of each class by area.
85 
86  \param values a vector of numerical values, representing pixels from a raster. Do not pass empty.
87  \param resolutionX a raster horizontal (x-axis) resolution.
88  \param resolutionY a raster vertical (y-axis) resolution.
89  \param area area of a geometry that intersects the raster.
90  \param ss to return the percentage of each class by area.
91  \param fullIntersection set as true if geometry is all inside of the raster box.
92 
93  */
94  TESTATEXPORT void GetPercentOfEachClassByArea(std::vector<double>& values,
95  double& resolutionX,
96  double& resolutionY,
97  double& area,
99  bool fullIntersection = true);
100 
101  /*! Returns the mode of set of numerical values.
102 
103  \param values a reference to a set of numerical values. Do not pass empty.
104  \param ss to return the mode (most frequent value).
105  */
106  TESTATEXPORT void Mode(const std::vector<double>& values,
108 
109  /*! Returns the mode of set of categorical values.
110 
111  \param values a reference to a set of categorical values;
112  \param ss to return the mode (most frequent value).
113  */
114  TESTATEXPORT void Mode(const std::vector<std::string>& values,
116 
117 
118  /*! Fills the summary statistics structure of a given categorical property from a dataset.
119 
120  \param inDataset a dataset name.
121  \param inDatasource a pointer to a datasource. Do not pass null.
122  \param propName the name of the property to be summarized.
123  \param ss to return the statistical summary.
124  */
125  TESTATEXPORT void GetStringStatisticalSummaryQuery(const std::string& inDataset,
126  te::da::DataSource* inDatasource,
127  const std::string& propName,
129 
130  /*! Fills the summary statistics structure of a given numerical property from a dataset.
131 
132  \param inDataset a dataset name.
133  \param inDatasource a pointer to a datasource. Do not pass null.
134  \param propName the name of the property to be summarized.
135  \param ss to return the statistical summary.
136  */
137  TESTATEXPORT void GetNumericStatisticalSummaryQuery(const std::string& inDataset,
138  te::da::DataSource* inDatasource,
139  const std::string& propName,
141 
142  } // end namespace stat
143 } // end namespace te
144 
145 #endif // __TERRALIB_STATISTICAL_CORE_INTERNAL_SUMMARYFUNCTIONS_H
146 
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 GetStringStatisticalSummaryQuery(const std::string &inDataset, te::da::DataSource *inDatasource, const std::string &propName, te::stat::StringStatisticalSummary &ss)
TESTATEXPORT void GetStringStatisticalSummary(std::vector< std::string > &values, te::stat::StringStatisticalSummary &ss, const std::string &nullValue)
An abstract class for data providers like a DBMS, Web Services or a regular file. ...
Definition: DataSource.h:119
TESTATEXPORT void GetNumericStatisticalSummary(std::vector< double > &values, te::stat::NumericStatisticalSummary &ss, double nullVal)
TESTATEXPORT void GetPercentOfEachClassByArea(std::vector< double > &values, double &resolutionX, double &resolutionY, double &area, te::stat::NumericStatisticalSummary &ss, bool fullIntersection=true)
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< double > &values, te::stat::NumericStatisticalSummary &ss)
Configuration flags for the Terrralib Statistic module.