1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
#!/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())
|