r.example.py 905 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #!/usr/bin/env python3
  2. # %module
  3. # % description: Selects values from raster above value of mean plus standard deviation
  4. # % keyword: raster
  5. # % keyword: select
  6. # % keyword: standard deviation
  7. # %end
  8. # %option G_OPT_R_INPUT
  9. # %end
  10. # %option G_OPT_R_OUTPUT
  11. # %end
  12. import sys
  13. import grass.script as gs
  14. from grass.exceptions import CalledModuleError
  15. def main():
  16. options, flags = gs.parser()
  17. input_raster = options["input"]
  18. output_raster = options["output"]
  19. try:
  20. stats = gs.parse_command("r.univar", map=input_raster, flags="g")
  21. except CalledModuleError as e:
  22. gs.fatal("{0}".format(e))
  23. raster_mean = float(stats["mean"])
  24. raster_stddev = float(stats["stddev"])
  25. raster_high = raster_mean + raster_stddev
  26. gs.mapcalc("{r} = {i} > {v}".format(r=output_raster, i=input_raster, v=raster_high))
  27. return 0
  28. if __name__ == "__main__":
  29. sys.exit(main())