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 */
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}
int I_cluster_reclass(struct Cluster *C, int minsize)
Reclass data.
Definition c_reclass.c:23
int * count
Definition cluster.h:18
int npoints
Definition cluster.h:9
int * class
Definition cluster.h:16
int nclasses
Definition cluster.h:26
int * reclass
Definition cluster.h:17
double ** sum
Definition cluster.h:20
int nbands
Definition cluster.h:8