From bf8242f9e9ee711cd4d1033c4bc7a346859e1b77 Mon Sep 17 00:00:00 2001 From: Sanchit Minocha Date: Sat, 24 Feb 2024 16:47:04 -0800 Subject: [PATCH 1/2] Added plugin imports within if and try statments --- src/rat/rat_basin.py | 7 +++++-- src/rat/run_rat.py | 11 ++++++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/rat/rat_basin.py b/src/rat/rat_basin.py index fe874dd..2558af2 100644 --- a/src/rat/rat_basin.py +++ b/src/rat/rat_basin.py @@ -33,8 +33,6 @@ from rat.utils.convert_to_final_outputs import convert_sarea, convert_inflow, convert_dels, convert_evaporation, convert_outflow, convert_altimeter, copy_aec_files -from rat.plugins.resorr.runResorr import runResorr - # Step-(-1): Reading Configuration settings to run RAT # Step-0: Creating required directory structure for RAT # Step-1: Downloading and Pre-processing of meteorolgical data @@ -768,6 +766,11 @@ def rat_basin(config, rat_logger, forecast_mode=False): ## Plugins: RESORR if config.get('PLUGINS', {}).get('resorr'): + # Importing ResORR + try: + from rat.plugins.resorr.runResorr import runResorr + except: + rat_logger.exception("Failed to import ResORR due to missing package(s). Please check for geonetworkx package. You can install it using 'pip install geonetworkx'.") resorr_startDate = config['BASIN']['start'] resorr_endDate = config['BASIN']['end'] # check if basin_station_latlon_file exists: diff --git a/src/rat/run_rat.py b/src/rat/run_rat.py index b90002f..c19c347 100644 --- a/src/rat/run_rat.py +++ b/src/rat/run_rat.py @@ -14,7 +14,6 @@ from rat.utils.logging import init_logger,close_logger,LOG_LEVEL1_NAME import rat.ee_utils.ee_config as ee_configuration from rat.rat_basin import rat_basin -from rat.plugins.forecasting import forecast #------------ Define Variables ------------# def run_rat(config_fn, operational_latency=None): @@ -92,6 +91,11 @@ def run_rat(config_fn, operational_latency=None): no_errors, latest_altimetry_cycle = rat_basin(config, log) # Run RAT forecast for basin if forecast is True if config.get('PLUGINS', {}).get('forecasting'): + # Importing the forecast module + try: + from rat.plugins.forecasting import forecast + except: + log.exception("Failed to import Forecast plugin due to missing package(s).") log.info('############## Starting RAT forecast for '+config['BASIN']['basin_name']+' #################') forecast_no_errors = forecast(config, log) if(forecast_no_errors>0): @@ -173,6 +177,11 @@ def run_rat(config_fn, operational_latency=None): no_errors, latest_altimetry_cycle = rat_basin(config_copy, log) # Run RAT forecast for basin if forecast is True if config.get('PLUGINS', {}).get('forecasting'): + # Importing the forecast module + try: + from rat.plugins.forecasting import forecast + except: + log.exception("Failed to import Forecast plugin due to missing package(s).") log.info('############## Starting RAT forecast for '+config['BASIN']['basin_name']+' #################') forecast_no_errors = forecast(config, log) if(forecast_no_errors>0): From 3b308761fd35ca9e54e1ee989282885a5d373297 Mon Sep 17 00:00:00 2001 From: Sanchit Minocha Date: Sat, 24 Feb 2024 16:52:48 -0800 Subject: [PATCH 2/2] Added dependencies for plugins --- environment.yml | 4 ++++ pyproject.toml | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/environment.yml b/environment.yml index ad5399c..3e5f857 100644 --- a/environment.yml +++ b/environment.yml @@ -16,4 +16,8 @@ dependencies: - ruamel_yaml - yaml - gdown + - cfgrib - conda-build + - pip + - pip: + - geonetworkx diff --git a/pyproject.toml b/pyproject.toml index 03702be..e3b21a5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -32,7 +32,8 @@ dependencies = [ "ruamel-yaml", "PyYAML", "gdown", - "geonetworkx" + "geonetworkx", + "cfgrib" ] [project.urls]