1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- #ifndef GRASS_CLUSTER_H
- #define GRASS_CLUSTER_H
- #include <grass/gis.h>
- #include <grass/imagery.h>
- struct Cluster
- {
- int nbands; /* number of bands */
- int npoints; /* number of points */
- DCELL **points; /* array of points */
- int np;
- double *band_sum; /* sum over each band */
- double *band_sum2; /* sum of squares over each band */
- int *class; /* class of each point */
- int *reclass; /* for removing empty classes */
- int *count; /* number of points in each class */
- int *countdiff; /* change in count */
- double **sum; /* sum over band per class */
- double **sumdiff; /* change in sum */
- double **sum2; /* sum of squares per band per class */
- double **mean; /* initial class means */
- struct Signature S; /* final signature(s) */
- int nclasses; /* number of classes */
- int merge1, merge2;
- int iteration; /* number of iterations */
- double percent_stable; /* percentage stable */
- };
- /* c_assign.c */
- int I_cluster_assign(struct Cluster *, int *);
- /* c_begin.c */
- int I_cluster_begin(struct Cluster *, int);
- /* c_clear.c */
- int I_cluster_clear(struct Cluster *);
- /* c_distinct.c */
- int I_cluster_distinct(struct Cluster *, double);
- /* c_exec.c */
- int I_cluster_exec(struct Cluster *, int, int, double, double, int, int (*)(),
- int *);
- /* c_execmem.c */
- int I_cluster_exec_allocate(struct Cluster *);
- int I_cluster_exec_free(struct Cluster *);
- /* c_means.c */
- int I_cluster_means(struct Cluster *);
- /* c_merge.c */
- int I_cluster_merge(struct Cluster *);
- /* c_nclasses.c */
- int I_cluster_nclasses(struct Cluster *, int);
- /* c_point.c */
- int I_cluster_point(struct Cluster *, DCELL *);
- int I_cluster_begin_point_set(struct Cluster *, int);
- int I_cluster_point_part(struct Cluster *, DCELL, int, int);
- int I_cluster_end_point_set(struct Cluster *, int);
- /* c_reassign.c */
- int I_cluster_reassign(struct Cluster *, int *);
- /* c_reclass.c */
- int I_cluster_reclass(struct Cluster *, int);
- /* c_sep.c */
- double I_cluster_separation(struct Cluster *, int, int);
- /* c_sig.c */
- int I_cluster_signatures(struct Cluster *);
- /* c_sum2.c */
- int I_cluster_sum2(struct Cluster *);
- #endif
|