From 7b75efed26fb878a3231a63c7229b078ad5fcaa7 Mon Sep 17 00:00:00 2001 From: Lukas Kugler <lukas.kugler@univie.ac.at> Date: Mon, 3 Mar 2025 16:30:21 +0100 Subject: [PATCH] overwrite both time levels (_1, _2) with DART output --- dartwrf/update_IC.py | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/dartwrf/update_IC.py b/dartwrf/update_IC.py index a4f4969..c3bca30 100755 --- a/dartwrf/update_IC.py +++ b/dartwrf/update_IC.py @@ -1,17 +1,13 @@ -import os, sys, warnings -import datetime as dt +import os, sys import netCDF4 as nc from dartwrf.utils import Config def update_initials_in_WRF_rundir(cfg: Config) -> None: """Updates wrfrst-files in `/run_WRF/` directory with posterior state from ./filter output, e.g. filter_restart_d01.0001 - - Args: - time (dt.datetime): time of assimilation (directory preceeding ./assim_stage0/...) """ - time = cfg.time + time = cfg.time # dt.datetime use_wrfrst = True # if wrfrst is used to restart (recommended) if use_wrfrst: @@ -40,12 +36,14 @@ def update_initials_in_WRF_rundir(cfg: Config) -> None: # update all other variables for var in update_vars: if var in ds_new.variables: - var_new = var + # regular case + ds_new.variables[var][:] = ds_filter.variables[var][:] + print('updated', var) else: - var_new = var+'_2' # e.g. U_2, W_2, THM_2 - - ds_new.variables[var_new][:] = ds_filter.variables[var][:] - print('updated', var_new, 'from', var) + # special case, where a variable has 2 time levels, e.g. THM_1, THM_2 + for var_suffix in ['_1', '_2']: + ds_new.variables[var+var_suffix][:] = ds_filter.variables[var][:] + print('updated', var+var_suffix) print(ic_file, 'created, updated from', filter_out) -- GitLab