GRASS Programmer's Manual
6.4.2(2012)
|
00001 #include <grass/gis.h> 00002 00003 void c_range(DCELL * result, DCELL * values, int n, const void *closure) 00004 { 00005 DCELL min, max; 00006 int i; 00007 00008 G_set_d_null_value(&min, 1); 00009 G_set_d_null_value(&max, 1); 00010 00011 for (i = 0; i < n; i++) { 00012 if (G_is_d_null_value(&values[i])) 00013 continue; 00014 00015 if (G_is_d_null_value(&min) || min > values[i]) 00016 min = values[i]; 00017 00018 if (G_is_d_null_value(&max) || max < values[i]) 00019 max = values[i]; 00020 } 00021 00022 if (G_is_d_null_value(&min) || G_is_d_null_value(&max)) 00023 G_set_d_null_value(result, 1); 00024 else 00025 *result = max - min; 00026 }