c_min.c 865 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #include <grass/gis.h>
  2. #include <grass/raster.h>
  3. void c_min(DCELL * result, DCELL * values, int n, const void *closure)
  4. {
  5. DCELL min;
  6. int i;
  7. Rast_set_d_null_value(&min, 1);
  8. for (i = 0; i < n; i++) {
  9. if (Rast_is_d_null_value(&values[i]))
  10. continue;
  11. if (Rast_is_d_null_value(&min) || min > values[i])
  12. min = values[i];
  13. }
  14. if (Rast_is_d_null_value(&min))
  15. Rast_set_d_null_value(result, 1);
  16. else
  17. *result = min;
  18. }
  19. void w_min(DCELL * result, DCELL(*values)[2], int n, const void *closure)
  20. {
  21. DCELL min;
  22. int i;
  23. Rast_set_d_null_value(&min, 1);
  24. for (i = 0; i < n; i++) {
  25. if (Rast_is_d_null_value(&values[i][0]))
  26. continue;
  27. if (Rast_is_d_null_value(&min) || min > values[i][0])
  28. min = values[i][0];
  29. }
  30. if (Rast_is_d_null_value(&min))
  31. Rast_set_d_null_value(result, 1);
  32. else
  33. *result = min;
  34. }