123456789101112131415161718192021222324252627282930313233343536373839 |
- #!/usr/bin/env python3
- # %module
- # % description: Selects values from raster above value of mean plus standard deviation
- # % keyword: raster
- # % keyword: select
- # % keyword: standard deviation
- # %end
- # %option G_OPT_R_INPUT
- # %end
- # %option G_OPT_R_OUTPUT
- # %end
- import sys
- import grass.script as gs
- from grass.exceptions import CalledModuleError
- def main():
- options, flags = gs.parser()
- input_raster = options["input"]
- output_raster = options["output"]
- try:
- stats = gs.parse_command("r.univar", map=input_raster, flags="g")
- except CalledModuleError as e:
- gs.fatal("{0}".format(e))
- raster_mean = float(stats["mean"])
- raster_stddev = float(stats["stddev"])
- raster_high = raster_mean + raster_stddev
- gs.mapcalc("{r} = {i} > {v}".format(r=output_raster, i=input_raster, v=raster_high))
- return 0
- if __name__ == "__main__":
- sys.exit(main())
|