From 99e4316a909f360f3e5bf1ab547773a5e5d6b202 Mon Sep 17 00:00:00 2001 From: Teagan King <98482480+TeaganKing@users.noreply.github.com> Date: Thu, 30 Jan 2025 12:17:26 -0700 Subject: [PATCH] very preliminary updates in helper script for updated cupid workflow --- .../generate_cupid_config_for_cesm_case.py | 36 +++++++++++++++---- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/helper_scripts/generate_cupid_config_for_cesm_case.py b/helper_scripts/generate_cupid_config_for_cesm_case.py index d02f75f..0534f8d 100755 --- a/helper_scripts/generate_cupid_config_for_cesm_case.py +++ b/helper_scripts/generate_cupid_config_for_cesm_case.py @@ -46,7 +46,7 @@ def _parse_args(): return parser.parse_args() -def generate_cupid_config(case_root, cesm_root, cupid_example): +def generate_cupid_config(case_root, cesm_root, cupid_example, cupid_baseline_case=None, cupid_baseline_root=None, cupid_start_year=None, cupid_end_year=None, cupid_base_start_year=None, cupid_base_end_year=None): """ Generate a CUPiD `config.yml` file based on information from a CESM case and a specific CUPiD example configuration (such as 'key metrics'). @@ -108,16 +108,38 @@ def generate_cupid_config(case_root, cesm_root, cupid_example): dout_s_root = cesm_case.get_value("DOUT_S_ROOT") # Additional options we need to get from env_cupid.xml - base_case = "b.e23_alpha17f.BLT1850.ne30_t232.092" - nyears = 1 - start_date = "0001-01-01" - end_date = f"{nyears+1:04d}-01-01" + if cupid_baseline_case: + base_case = cupid_baseline_case + else: + base_case = "b.e23_alpha17f.BLT1850.ne30_t232.092" + if cupid_baseline_root: + base_case_output_dir = cupid_baseline_root + else: + base_case_output_dir = "/glade/campaign/cesm/development/cross-wg/diagnostic_framework/CESM_output_for_testing" + if cupid_start_year: + start_date = cupid_start_year + else: + start_date = "0001-01-01" + if cupid_end_year: + end_date = cupid_end_year + else: + end_date = f"{nyears+1:04d}-01-01" + if cupid_base_start_year: + base_case_start_date = cupid_base_start_year + else: + continue # default for this one? + if cupid_base_end_year: + base_end_date = cupid_base_end_year + else: + base_end_date = f"{base_nyears+1:04d}-01-01" + + # TODO: these should also perhaps be added as environment vars? + nyears = 1 climo_nyears = nyears - base_case_output_dir = "/glade/campaign/cesm/development/cross-wg/diagnostic_framework/CESM_output_for_testing" base_nyears = 100 - base_end_date = f"{base_nyears+1:04d}-01-01" base_climo_nyears = 40 + # -------------------------------------------------------------------------------- with open(os.path.join(cupid_root, "examples", cupid_example, "config.yml")) as f: my_dict = yaml.safe_load(f)