GRASS 8 Programmer's Manual
8.6.0dev(2026)-4bb960b182
Loading...
Searching...
No Matches
c_means.c
Go to the documentation of this file.
1
/*!
2
\file cluster/c_means.c
3
4
\brief Cluster library - Means value
5
6
SPDX-FileCopyrightText: 2001-2009 GRASS Development Team
7
SPDX-License-Identifier: GPL-2.0-or-later
8
9
\author Original author CERL
10
*/
11
12
#include <math.h>
13
#include <
grass/cluster.h
>
14
15
/*!
16
\brief Calculate means value
17
18
\param C pointer to Cluster structure
19
20
\return 0
21
*/
22
int
I_cluster_means
(
struct
Cluster
*C)
23
{
24
int
band;
25
int
class
;
26
double
m
, v;
/* m=mean, v=variance then std dev */
27
double
s;
28
29
G_debug
(3,
"I_cluster_means(nbands=%d,nclasses=%d)"
, C->
nbands
,
30
C->
nclasses
);
31
32
for
(band = 0; band < C->
nbands
; band++) {
33
s = C->
band_sum
[band];
34
m
= s / C->
npoints
;
35
v = C->
band_sum2
[band] - s *
m
;
36
v =
sqrt
(v / (C->
npoints
- 1));
37
for
(
class
= 0;
class
< C->nclasses;
class
++)
38
C->
mean
[band][
class
] =
m
;
39
if
(C->
nclasses
> 1)
40
for
(
class
= 0;
class
< C->nclasses;
class
++)
41
C->
mean
[band][
class
] +=
42
((2.0 *
class
) / (C->
nclasses
- 1) - 1.0) * v;
43
}
44
45
return
0;
46
}
I_cluster_means
int I_cluster_means(struct Cluster *C)
Calculate means value.
Definition
c_means.c:22
AMI_STREAM
Definition
ami_stream.h:153
cluster.h
G_debug
int G_debug(int, const char *,...) __attribute__((format(printf
Cluster
Definition
cluster.h:7
Cluster::npoints
int npoints
Definition
cluster.h:9
Cluster::band_sum2
double * band_sum2
Definition
cluster.h:14
Cluster::nclasses
int nclasses
Definition
cluster.h:26
Cluster::mean
double ** mean
Definition
cluster.h:23
Cluster::band_sum
double * band_sum
Definition
cluster.h:13
Cluster::nbands
int nbands
Definition
cluster.h:8
lib
cluster
c_means.c
Generated on Sun Sep 13 2026 06:57:48 for GRASS 8 Programmer's Manual by
1.9.8