From e0f335a6edf8af3485a2c98ff6b718108212d881 Mon Sep 17 00:00:00 2001 From: aaronsms Date: Fri, 13 Aug 2021 20:38:35 +0800 Subject: [PATCH] Allow r.random.surf to fail for benchmarking Fix flake8: bare exceptions --- .../r.univar/benchmark/benchmark_r_univar.py | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/raster/r.univar/benchmark/benchmark_r_univar.py b/raster/r.univar/benchmark/benchmark_r_univar.py index e111a77c3b5..2765b067783 100644 --- a/raster/r.univar/benchmark/benchmark_r_univar.py +++ b/raster/r.univar/benchmark/benchmark_r_univar.py @@ -3,6 +3,7 @@ @author Aaron Saw Min Sern """ +from grass.exceptions import CalledModuleError from grass.pygrass.modules import Module from subprocess import DEVNULL @@ -12,6 +13,7 @@ def main(): results = [] + # Users can add more or modify existing reference maps benchmark(7071, "r.univar_50M", results) benchmark(10000, "r.univar_100M", results) benchmark(14142, "r.univar_200M", results) @@ -20,26 +22,32 @@ def main(): bm.nprocs_plot(results) -def benchmark(length, label, results): - fractal = "benchmark_fractal" +def benchmark(size, label, results): + reference = "r_univar_reference_map" output = "benchmark_r_univar_nprocs" - generate_fractal(rows=length, cols=length, fname=fractal) + generate_map(rows=size, cols=size, fname=reference) module = Module( "r.univar", - map=[fractal] * 5, + map=reference, run_=False, stdout_=DEVNULL, overwrite=True, ) results.append(bm.benchmark_nprocs(module, label=label, max_nprocs=16, repeat=3)) - Module("g.remove", quiet=True, flags="f", type="raster", name=fractal) + Module("g.remove", quiet=True, flags="f", type="raster", name=reference) Module("g.remove", quiet=True, flags="f", type="raster", name=output) -def generate_fractal(rows, cols, fname): +def generate_map(rows, cols, fname): Module("g.region", flags="p", s=0, n=rows, w=0, e=cols, res=1) - Module("r.surf.fractal", output=fname) + # Generate using r.random.surface if r.surf.fractal fails + try: + print("Generating reference map using r.surf.fractal...") + Module("r.surf.fractal", output=fname) + except CalledModuleError: + print("r.surf.fractal fails, using r.random.surface instead...") + Module("r.random.surface", output=fname) if __name__ == "__main__":