GRASS 8 Programmer's Manual 8.5.0RC1(2026)-3334b87d9c
Loading...
Searching...
No Matches
c_ave.c
Go to the documentation of this file.
1#include <grass/gis.h>
2#include <grass/raster.h>
3
4void c_ave(DCELL *result, DCELL *values, int n, const void *closure G_UNUSED)
5{
6 DCELL sum;
7 int count;
8 int i;
9
10 sum = 0.0;
11 count = 0;
12
13 for (i = 0; i < n; i++) {
14 if (Rast_is_d_null_value(&values[i]))
15 continue;
16
17 sum += values[i];
18 count++;
19 }
20
21 if (count == 0)
22 Rast_set_d_null_value(result, 1);
23 else
24 *result = sum / count;
25}
26
27void w_ave(DCELL *result, DCELL (*values)[2], int n,
28 const void *closure G_UNUSED)
29{
30 DCELL sum;
31 DCELL count;
32 int i;
33
34 sum = 0.0;
35 count = 0.0;
36
37 for (i = 0; i < n; i++) {
38 if (Rast_is_d_null_value(&values[i][0]))
39 continue;
40
41 sum += values[i][0] * values[i][1];
42 count += values[i][1];
43 }
44
45 if (count == 0)
46 Rast_set_d_null_value(result, 1);
47 else
48 *result = sum / count;
49}
void w_ave(DCELL *result, DCELL(*values)[2], int n, const void *closure)
Definition c_ave.c:27
void c_ave(DCELL *result, DCELL *values, int n, const void *closure)
Definition c_ave.c:4
int count