GRASS 8 Programmer's Manual
8.6.0dev(2026)-4bb960b182
Loading...
Searching...
No Matches
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
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 <
grass/cluster.h
>
13
14
/*!
15
\brief Reclass data
16
17
\param C pointer to Cluster structure
18
\param minsize minimum class size
19
20
\return 0 on success
21
\return 1 no change
22
*/
23
int
I_cluster_reclass
(
struct
Cluster
*C,
int
minsize
)
24
{
25
int
band, c,
hole
, move, p;
26
27
for
(c = 0; c < C->
nclasses
; c++)
28
C->
reclass
[c] = c;
29
30
/* find first `empty' class */
31
for
(
hole
= 0;
hole
< C->
nclasses
;
hole
++)
32
if
(C->
count
[
hole
] <
minsize
)
33
break
;
34
35
/* if none, just return */
36
if
(
hole
>= C->
nclasses
)
37
return
1;
38
39
for
(move =
hole
; move < C->
nclasses
; move++)
40
if
(C->
count
[move] >=
minsize
) {
41
C->
reclass
[move] =
hole
;
42
C->
count
[
hole
] = C->
count
[move];
43
for
(band = 0; band < C->
nbands
; band++)
44
C->
sum
[band][
hole
] = C->
sum
[band][move];
45
hole
++;
46
}
47
else
48
C->
reclass
[move] = -1;
/* eliminate this class */
49
50
for
(p = 0; p < C->
npoints
; p++)
51
C->
class
[p] = C->
reclass
[C->
class
[p]];
52
C->
nclasses
=
hole
;
53
54
return
0;
55
}
I_cluster_reclass
int I_cluster_reclass(struct Cluster *C, int minsize)
Reclass data.
Definition
c_reclass.c:23
AMI_STREAM
Definition
ami_stream.h:153
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 Sep 13 2026 06:57:48 for GRASS 8 Programmer's Manual by
1.9.8