r.example.py 935 B

12345678910111213141516171819202122232425262728293031323334353637383940
  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,
  27. v=raster_high))
  28. return 0
  29. if __name__ == "__main__":
  30. sys.exit(main())