GRASS GIS 8 Programmer's Manual
8.5.0dev(2024)-d6dec75dd4
c_reclass.c
Go to the documentation of this file.
1
/*!
2
\file cluster/c_reclass.c
3
4
\brief Cluster library - Reclass data
5
6
(C) 2001-2009 by the GRASS Development Team
7
8
This program is free software under the GNU General Public License
9
(>=v2). Read the file COPYING that comes with GRASS for details.
10
11
\author Original author CERL
12
*/
13
14
#include <
grass/cluster.h
>
15
16
/*!
17
\brief Reclass data
18
19
\param C pointer to Cluster structure
20
\param minsize minimum class size
21
22
\return 0 on success
23
\return 1 no change
24
*/
25
int
I_cluster_reclass
(
struct
Cluster
*C,
int
minsize)
26
{
27
int
band, c, hole, move, p;
28
29
for
(c = 0; c < C->
nclasses
; c++)
30
C->
reclass
[c] = c;
31
32
/* find first `empty' class */
33
for (hole = 0; hole < C->
nclasses
; hole++)
34
if
(C->
count
[hole] < minsize)
35
break
;
36
37
/* if none, just return */
38
if
(hole >= C->
nclasses
)
39
return
1;
40
41
for
(move = hole; move < C->
nclasses
; move++)
42
if
(C->
count
[move] >= minsize) {
43
C->
reclass
[move] = hole;
44
C->
count
[hole] = C->
count
[move];
45
for
(band = 0; band < C->
nbands
; band++)
46
C->
sum
[band][hole] = C->
sum
[band][move];
47
hole++;
48
}
49
else
50
C->
reclass
[move] = -1;
/* eliminate this class */
51
52
for
(p = 0; p < C->
npoints
; p++)
53
C->
class
[p] = C->
reclass
[C->
class
[p]];
54
C->
nclasses
= hole;
55
56
return
0;
57
}
I_cluster_reclass
int I_cluster_reclass(struct Cluster *C, int minsize)
Reclass data.
Definition:
c_reclass.c:25
cluster.h
Cluster
Definition:
cluster.h:7
Cluster::count
int * count
Definition:
cluster.h:18
Cluster::npoints
int npoints
Definition:
cluster.h:9
Cluster::class
int * class
Definition:
cluster.h:16
Cluster::nclasses
int nclasses
Definition:
cluster.h:26
Cluster::reclass
int * reclass
Definition:
cluster.h:17
Cluster::sum
double ** sum
Definition:
cluster.h:20
Cluster::nbands
int nbands
Definition:
cluster.h:8
lib
cluster
c_reclass.c
Generated on Sun Dec 22 2024 07:38:11 for GRASS GIS 8 Programmer's Manual by
1.9.1