GRASS Programmer's Manual  6.5.svn(2014)-r66266
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
c_reclass.c
Go to the documentation of this file.
1 #include <grass/cluster.h>
2 
3 int I_cluster_reclass(struct Cluster *C, int minsize)
4 {
5  int band, c, hole, move, p;
6 
7  for (c = 0; c < C->nclasses; c++)
8  C->reclass[c] = c;
9 
10  /* find first `empty' class */
11  for (hole = 0; hole < C->nclasses; hole++)
12  if (C->count[hole] < minsize)
13  break;
14 
15  /* if none, just return */
16  if (hole >= C->nclasses)
17  return 1;
18 
19  for (move = hole; move < C->nclasses; move++)
20  if (C->count[move] >= minsize) {
21  C->reclass[move] = hole;
22  C->count[hole] = C->count[move];
23  for (band = 0; band < C->nbands; band++)
24  C->sum[band][hole] = C->sum[band][move];
25  hole++;
26  }
27  else
28  C->reclass[move] = -1; /* eliminate this class */
29 
30  for (p = 0; p < C->npoints; p++)
31  C->class[p] = C->reclass[C->class[p]];
32  C->nclasses = hole;
33 
34  return 0;
35 }
#define C
Definition: intr_char.c:17
int I_cluster_reclass(struct Cluster *C, int minsize)
Definition: c_reclass.c:3
for(cat=0;;cat++)
Definition: g3dcats.c:140