misc.c 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. #include "global.h"
  2. #include <grass/spawn.h>
  3. void gregion(void)
  4. {
  5. char *hdmap;
  6. hdmap = NULL;
  7. if (!flg.input) {
  8. hdmap = map.elev;
  9. }
  10. else {
  11. if (map.belev)
  12. hdmap = map.belev;
  13. else if (map.topidx)
  14. hdmap = map.topidx;
  15. }
  16. if (hdmap) {
  17. char buf[GPATH_MAX];
  18. sprintf(buf, "rast=%s", hdmap);
  19. G_verbose_message("g.region %s ...", buf);
  20. if (G_spawn("g.region", "g.region", "--quiet", buf, NULL) != 0)
  21. G_fatal_error("g.region failed");
  22. }
  23. }
  24. void depressionless(void)
  25. {
  26. char input[GPATH_MAX];
  27. char elev[GPATH_MAX];
  28. char dir[GPATH_MAX];
  29. sprintf(input, "input=%s", map.elev);
  30. sprintf(elev, "elev=%s", map.fill);
  31. sprintf(dir, "dir=%s", map.dir);
  32. G_verbose_message("r.fill.dir %s %s %s", input, elev, dir);
  33. if (G_spawn("r.fill.dir", "r.fill.dir", "--quiet", input, elev, dir, NULL) != 0)
  34. G_fatal_error("r.fill.dir failed");
  35. map.elev = map.fill;
  36. }
  37. void basin_elevation(void)
  38. {
  39. char buf[GPATH_MAX];
  40. sprintf(buf, "expression=%s = if(%s == 0 || isnull(%s), null(), %s)",
  41. map.belev, map.basin, map.basin, map.elev);
  42. G_verbose_message("r.mapcalc \"%s\" ...", buf);
  43. if (G_spawn("r.mapcalc", "r.mapcalc", "--quiet", buf, NULL) != 0)
  44. G_fatal_error("r.mapcalc failed");
  45. }
  46. void top_index(void)
  47. {
  48. char input[GPATH_MAX];
  49. char output[GPATH_MAX];
  50. char nsteps[32];
  51. if (map.belev) {
  52. sprintf(input, "input=%s", map.belev);
  53. sprintf(output, "output=%s", map.topidx);
  54. G_verbose_message("r.topidx %s %s ...", input, output);
  55. if (G_spawn("r.topidx", "r.topidx", "--quiet", input, output, NULL) != 0)
  56. G_fatal_error("r.topidx failed");
  57. }
  58. if (map.topidx) {
  59. sprintf(input, "input=%s", map.topidx);
  60. sprintf(input, "nsteps=%d", misc.nidxclass);
  61. sprintf(output, "output=%s", file.idxstats);
  62. G_verbose_message("r.stats -Anc %s %s %s ...", input, nsteps, output);
  63. if (G_spawn("r.stats", "r.stats", "-Anc", input, nsteps, output, NULL) != 0)
  64. G_fatal_error("r.stats failed");
  65. }
  66. }