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  \param fullIntersection set as true if geometry is all inside of the raster box.
99 
100  */
101  TESTATEXPORT void GetPercentOfEachClassByArea(std::map<double, int>& values,
102  double& resolutionX,
103  double& resolutionY,
104  double& area,
106  bool fullIntersection = true);
107 
108  /*! Returns the mode of set of numerical values.
109 
110  \param values a reference to a set of numerical values. Do not pass empty.
111  \param ss to return the mode (most frequent value).
112  */
113  TESTATEXPORT void Mode(const std::vector<double>& values,
115 
116  /*! Returns the mode of set of categorical values.
117 
118  \param values a reference to a set of categorical values;
119  \param ss to return the mode (most frequent value).
120  */
121  TESTATEXPORT void Mode(const std::vector<std::string>& values,
123 
124 
125  /*! Fills the summary statistics structure of a given categorical property from a dataset.
126 
127  \param inDataset a dataset name.
128  \param inDatasource a pointer to a datasource. Do not pass null.
129  \param propName the name of the property to be summarized.
130  \param ss to return the statistical summary.
131  */
132  TESTATEXPORT void GetStringStatisticalSummaryQuery(const std::string& inDataset,
133  te::da::DataSource* inDatasource,
134  const std::string& propName,
136 
137  /*! Fills the summary statistics structure of a given numerical property from a dataset.
138 
139  \param inDataset a dataset name.
140  \param inDatasource a pointer to a datasource. Do not pass null.
141  \param propName the name of the property to be summarized.
142  \param ss to return the statistical summary.
143  */
144  TESTATEXPORT void GetNumericStatisticalSummaryQuery(const std::string& inDataset,
145  te::da::DataSource* inDatasource,
146  const std::string& propName,
148 
149  } // end namespace stat
150 } // end namespace te
151 
152 #endif // __TERRALIB_STATISTICAL_CORE_INTERNAL_SUMMARYFUNCTIONS_H
153 
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 GetNumericStatisticalSummary(std::vector< double > &values, te::stat::NumericStatisticalSummary &ss, double nullValue)
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 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
TESTATEXPORT void GetPercentOfEachClassByArea(std::map< double, int > &values, double &resolutionX, double &resolutionY, double &area, te::stat::NumericStatisticalSummary &ss, bool fullIntersection=true)
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.