diff --git a/scripts/plot_approximation_results.py b/scripts/plot_approximation_results.py new file mode 100644 index 0000000000000000000000000000000000000000..b94f46bfd55fdd4118efc82947ccb31b5ad0fb86 --- /dev/null +++ b/scripts/plot_approximation_results.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +"""Script to plot results of ANN model testing. + +@author: Laura C. Kühle +""" +import sys +import time + +from tcd import Initial_Condition +from tcd import Quadrature +from tcd.Plotting import plot_approximation_results + + +def main() -> None: + """Plot results of ANN model tests.""" + with open(str(snakemake.log[0]), 'w', encoding='utf-8') as logfile: + sys.stdout = logfile + sys.stderr = logfile + + tic = time.perf_counter() + + if snakemake.config['schemes'][snakemake.wildcards['scheme']][ + 'detector'] == 'ArtificialNeuralNetwork': + snakemake.params['dg_params']['detector_config']['model_state'] = \ + snakemake.params['directory'] + '/trained models/' + \ + snakemake.config['schemes'][snakemake.wildcards['scheme']][ + 'detector_config']['model_state'] + + detector_dict = snakemake.params['dg_params'].copy() + + init_cond = getattr(Initial_Condition, detector_dict.pop( + 'init_cond', 'Sine'))(config=detector_dict.pop('init_config', {})) + quadrature = getattr(Quadrature, detector_dict.pop( + 'quadrature', 'Gauss'))(detector_dict.pop('quadrature_config', {})) + colors = detector_dict.pop('colors', None) + + plot_approximation_results( + directory=snakemake.params['plot_dir'], + plot_name=snakemake.wildcards['scheme'], colors=colors, + data_file=snakemake.params.plot_dir + '/' + snakemake.wildcards[ + 'scheme'], + quadrature=quadrature, init_cond=init_cond) + + toc = time.perf_counter() + print(f'Time: {toc - tic:0.4f}s') + + +if __name__ == '__main__': + if "snakemake" in locals(): + main() + else: + print('Not Defined.') diff --git a/workflows/approximation.smk b/workflows/approximation.smk index 5613a69722915b2d547481457dedad8f5f4c79f4..b07ba24caceaf8d071d42c2e11f54678ae0367db 100644 --- a/workflows/approximation.smk +++ b/workflows/approximation.smk @@ -1,10 +1,3 @@ -import sys -import time - -from scripts.tcd import Initial_Condition -from scripts.tcd import Quadrature -from scripts.tcd.Plotting import plot_approximation_results - configfile: 'config.yaml' @@ -43,41 +36,14 @@ rule approximate_solution: rule plot_approximation_results: input: - DIR +'/fig/{scheme}.json' + DIR+'/fig/{scheme}.json' output: expand(DIR + '/fig/{plot}/{{scheme}}.pdf', plot=PLOTS) params: dg_params=lambda wildcards: config['schemes'][wildcards.scheme], - plot_dir=DIR + '/fig' + plot_dir=DIR + '/fig', + directory = DIR log: DIR+'/log/plot_approximation_results/{scheme}.log' - run: - with open(str(log), 'w') as logfile: - sys.stdout = logfile - sys.stderr = logfile - - tic = time.perf_counter() - - if config['schemes'][wildcards.scheme]['detector'] == \ - 'ArtificialNeuralNetwork': - params.dg_params['detector_config']['model_state'] = \ - DIR + '/trained models/' + config['schemes'][ - wildcards.scheme]['detector_config']['model_state'] - - detector_dict = params.dg_params.copy() - - init_cond = getattr(Initial_Condition, detector_dict.pop( - 'init_cond', 'Sine'))( - config=detector_dict.pop('init_config', {})) - quadrature = getattr(Quadrature, detector_dict.pop( - 'quadrature', 'Gauss'))(detector_dict.pop( - 'quadrature_config', {})) - colors = detector_dict.pop('colors', None) - - plot_approximation_results(directory=params.plot_dir, - plot_name=wildcards.scheme, colors=colors, - data_file=params.plot_dir+'/'+wildcards.scheme, - quadrature=quadrature, init_cond=init_cond) - - toc = time.perf_counter() - print(f'Time: {toc - tic:0.4f}s') \ No newline at end of file + script: + '../scripts/plot_approximation_results.py'