From a1cd45a7f933e67d50d946d8a8c9c7d65ced37d8 Mon Sep 17 00:00:00 2001 From: leufen1 <l.leufen@fz-juelich.de> Date: Thu, 4 Feb 2021 15:34:43 +0100 Subject: [PATCH] IntelliO3 reference model is downloaded during preprocessing if required, IntelliO3 is now fully available as reference model! --- mlair/run_modules/pre_processing.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/mlair/run_modules/pre_processing.py b/mlair/run_modules/pre_processing.py index 21aebd62..4888a60b 100644 --- a/mlair/run_modules/pre_processing.py +++ b/mlair/run_modules/pre_processing.py @@ -65,6 +65,7 @@ class PreProcessing(RunEnvironment): self.data_store.set("stations", valid_stations) self.split_train_val_test() self.report_pre_processing() + self.prepare_competitors() def report_pre_processing(self): """Log some metrics on data and create latex report.""" @@ -325,6 +326,25 @@ class PreProcessing(RunEnvironment): if transformation_dict is not None: self.data_store.set("transformation", transformation_dict) + def prepare_competitors(self): + """ + Prepare competitor models already in the preprocessing stage. This is performed here, because some models might + need to have internet access, which is depending on the operating system not possible during postprocessing. + This method checks currently only, if the Intelli03-ts-v1 model is requested as competitor and downloads the + data if required. + """ + logging.info("Searching for competitors to be prepared for use.") + competitors = self.data_store.get_default("competitors", default=None) + if competitors is not None: + for competitor_name in competitors: + if competitor_name.lower() == "IntelliO3-ts-v1".lower(): + logging.info("Prepare IntelliO3-ts-v1 model") + from mlair.reference_models.reference_model_intellio3_v1 import IntelliO3_ts_v1 + path = os.path.join(self.data_store.get("competitor_path"), competitor_name) + IntelliO3_ts_v1("IntelliO3-ts-v1", path).make_reference_available_locally(remove_tmp_dir=False) + else: + logging.info("No preparation required because no competitor was provided to the workflow.") + def f_proc(data_handler, station, name_affix, store, **kwargs): """ -- GitLab