123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- /*
- * Calculates univariate statistics from the non-null cells
- *
- * Copyright (C) 2004-2010 by the GRASS Development Team
- * Author(s): Soeren Gebbert
- * Based on r.univar from Hamish Bowman, University of Otago, New Zealand
- * and Martin Landa
- * zonal loop by Markus Metz
- *
- * This program is free software under the GNU General Public
- * License (>=v2). Read the file COPYING that comes with GRASS
- * for details.
- *
- */
- #ifndef _GLOBALS_H_
- #define _GLOBALS_H_
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- #include <grass/gis.h>
- #include <grass/raster3d.h>
- #include <grass/raster.h>
- #include <grass/glocale.h>
- /*- Parameters and global variables -----------------------------------------*/
- typedef struct
- {
- double sum;
- double sumsq;
- double min;
- double max;
- unsigned int n_perc;
- double *perc;
- double sum_abs;
- unsigned long n;
- unsigned long size;
- DCELL *dcell_array;
- FCELL *fcell_array;
- CELL *cell_array;
- int map_type;
- void *nextp;
- size_t n_alloc;
- int first;
- } univar_stat;
- typedef struct
- {
- CELL min, max, n_zones;
- struct Categories cats;
- char *sep;
- } zone_type;
- /* command line options are the same for raster and raster3d maps */
- typedef struct
- {
- struct Option *inputfile, *zonefile, *percentile, *output_file, *separator;
- struct Flag *shell_style, *extended, *table, *use_rast_region;
- } param_type;
- extern param_type param;
- extern zone_type zone_info;
- /* fn prototypes */
- void heapsort_double(double *data, int n);
- void heapsort_float(float *data, int n);
- void heapsort_int(int *data, int n);
- int print_stats(univar_stat * stats);
- int print_stats_table(univar_stat * stats);
- univar_stat *create_univar_stat_struct(int map_type, int n_perc);
- void free_univar_stat_struct(univar_stat * stats);
- #endif
|