Changeset 45707
- Timestamp:
- Mar 18, 2011, 1:53:57 AM (13 years ago)
- Location:
- grass/tags/release_20110103_grass_6_4_1RC1/raster3d/r3.stats
- Files:
-
- 2 edited
-
description.html (modified) (1 diff)
-
main.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
grass/tags/release_20110103_grass_6_4_1RC1/raster3d/r3.stats/description.html
r43659 r45707 10 10 <H2>NOTES</H2> 11 11 12 As with most GRASS raster3D modules, <EM>r3. univar</EM> operates on the cell12 As with most GRASS raster3D modules, <EM>r3.stats</EM> operates on the cell 13 13 array defined by the current 3D region settings, not the original extent and 14 14 resolution of the input map. See <em><A HREF="g.region.html">g.region</A></em>. -
grass/tags/release_20110103_grass_6_4_1RC1/raster3d/r3.stats/main.c
r32583 r45707 53 53 54 54 /*prototypes */ 55 equal_val_array *alloc_equal_val_array(int count);56 void free_equal_val_array(equal_val_array * vals);57 equal_val_array *add_equal_val_to_array(equal_val_array * array, double val);58 int check_equal_value(equal_val_array * array, double val);59 stat _table *create_stat_table(int nsteps, equal_val_array * values,55 static equal_val_array *alloc_equal_val_array(int count); 56 static void free_equal_val_array(equal_val_array * vals); 57 static equal_val_array *add_equal_val_to_array(equal_val_array * array, double val); 58 static int check_equal_value(equal_val_array * array, double val); 59 static stat_table *create_stat_table(int nsteps, equal_val_array * values, 60 60 double min, double max); 61 void free_stat_table(stat_table * stats);62 void print_stat_table(stat_table * stats);63 void update_stat_table(stat_table * stats, G3D_Region * region);64 void heapsort_eqvals(equal_val_array * data, int n);61 static void free_stat_table(stat_table * stats); 62 static void print_stat_table(stat_table * stats); 63 static void update_stat_table(stat_table * stats, G3D_Region * region); 64 static void heapsort_eqvals(equal_val_array * data, int n); 65 65 static void downheap_eqvals(equal_val_array * data, int n, int k); 66 66 static void check_range_value(stat_table * stats, double value); … … 547 547 float val_f; /* for misc use */ 548 548 double val_d; /* for misc use */ 549 stat_table *stats ;549 stat_table *stats = NULL; 550 550 double min, max; 551 equal_val_array *eqvals ;551 equal_val_array *eqvals = NULL; 552 552 553 553 unsigned int n = 0, nsteps; 554 554 int map_type; 555 char *infile ;556 void *map ;555 char *infile = NULL; 556 void *map = NULL; 557 557 G3D_Region region; 558 558 unsigned int rows, cols, depths; … … 661 661 } 662 662 663 /* sort the equal values array */664 G_message(_("Sort non-null values")); 665 heapsort_eqvals(eqvals, eqvals->count);666 667 /* create the statistic table with equal values */ 668 stats = create_stat_table(eqvals->count, eqvals, 0, 0); 669 /* compute the number of null values */ 670 stats->null->count = rows * cols * depths - n; 671 672 if (eqvals) 673 free_equal_val_array(eqvals);674 663 if (eqvals) { 664 /* sort the equal values array */ 665 G_message(_("Sort non-null values")); 666 heapsort_eqvals(eqvals, eqvals->count); 667 668 /* create the statistic table with equal values */ 669 stats = create_stat_table(eqvals->count, eqvals, 0, 0); 670 /* compute the number of null values */ 671 stats->null->count = rows * cols * depths - n; 672 673 free_equal_val_array(eqvals); 674 } 675 675 } 676 676 else { … … 710 710 } 711 711 712 /* Compute the volume and percentage */ 713 update_stat_table(stats, ®ion); 714 /* Print the statistics to stdout */ 715 print_stat_table(stats); 716 717 free_stat_table(stats); 712 if(stats) { 713 /* Compute the volume and percentage */ 714 update_stat_table(stats, ®ion); 715 /* Print the statistics to stdout */ 716 print_stat_table(stats); 717 718 free_stat_table(stats); 719 } 720 718 721 exit(EXIT_SUCCESS); 719 722 }
Note:
See TracChangeset
for help on using the changeset viewer.
