Select Git revision
build-docs.sh
generate_free.py 5.98 KiB
#!/usr/bin/python3
"""
running the forecast model without assimilation
"""
import os, sys, shutil
import datetime as dt
import pandas as pd
from slurmpy import Slurm
from config.cfg import exp, cluster
from utils import backup_scripts
from dartwrf.utils import script_to_str, symlink
from cycled_exp import *
log_dir = cluster.archivedir+'/logs/'
slurm_scripts_dir = cluster.archivedir+'/slurm-scripts/'
print('logging to', log_dir)
print('scripts, which are submitted to SLURM:', slurm_scripts_dir)
################################
print('starting osse')
backup_scripts()
id = None
if False: #True: # is_nature
begin = dt.datetime(2008, 7, 30, 7)
id = prepare_WRFrundir(begin) # create initial conditions
id = run_ideal(depends_on=id)
#id = wrfinput_insert_wbubble(perturb=False, depends_on=id)
end = dt.datetime(2008, 7, 30, 12)
id = run_ENS(begin=begin, end=end,
input_is_restart=False,
output_restart_interval=(end-begin).total_seconds()/60,
depends_on=id)
# id = create_satimages(begin, depends_on=id)
if False: # if free run (all inits)
begin = dt.datetime(2008, 7, 30, 7)
id = prepare_WRFrundir(begin) # create initial conditions
id = run_ideal(depends_on=id)
#id = wrfinput_insert_wbubble(perturb=True, depends_on=id)
restarts = pd.date_range(start=dt.datetime(2008, 7, 30, 10),
end=dt.datetime(2008, 7, 30, 12),
freq=dt.timedelta(minutes=60))
#restarts = [dt.datetime(2008, 7, 30, 12, 30)]
input_is_restart = False
time = begin
last_init = dt.datetime(2008, 7, 30, 9) # dummy value
for i, next_restart in enumerate(restarts):
print('run_WRF from', time, 'to', next_restart)
id = run_ENS(begin=time, end=next_restart,
input_is_restart=input_is_restart,
output_restart_interval=(next_restart-time).total_seconds()/60,
#output_restart_interval=720,
depends_on=id)
last_init = time
time = next_restart
input_is_restart = True
create_satimages(last_init, depends_on=id)
prior_path_exp = cluster.archivedir
prior_init_time = last_init
prior_valid_time = time
id = prepare_IC_from_prior(prior_path_exp, prior_init_time, prior_valid_time, depends_on=id)
# free run, no restart files anymore
end = dt.datetime(2008, 7, 30, 18)
print('run WRF from', time, 'until', end)
id = run_ENS(begin=time, end=end,
input_is_restart=input_is_restart,
#output_restart_interval=(next_restart-time).total_seconds()/60,
output_restart_interval=9999,
depends_on=id)
id = create_satimages(time, depends_on=id)
verify(depends_on=id)
if False: # continuation of free run
start = dt.datetime(2008, 7, 30, 7)
end = dt.datetime(2008, 7, 30, 10)
id = prepare_WRFrundir(start) # create initial conditions
prior_path_exp = '/gpfs/data/fs71386/lkugler/sim_archive/exp_v1.19_P5_noDA' # cluster.archivedir
prior_init_time = dt.datetime(2008, 7, 30, 11)
prior_valid_time = start
id = prepare_IC_from_prior(prior_path_exp, prior_init_time, prior_valid_time, depends_on=id)
id = run_ENS(begin=start, end=end,
input_is_restart=True,
output_restart_interval=(end-start).total_seconds()/60,
#output_restart_interval=9999,
depends_on=id)
id = create_satimages(start, depends_on=id)
verify(depends_on=id)
if True: # continuation of free run after spinup
start = dt.datetime(2008, 7, 30, 7)
end = dt.datetime(2008, 7, 30, 10)
id = prepare_WRFrundir(start) # create initial conditions
id = run_ideal(depends_on=id)
prior_path_exp = '/gpfs/data/fs71386/lkugler/sim_archive/exp_v1.19_P5_noDA' # cluster.archivedir
prior_init_time = dt.datetime(2008, 7, 30, 11)
prior_valid_time = dt.datetime(2008, 7, 30, 12)
id = prepare_IC_from_prior(prior_path_exp, prior_init_time, prior_valid_time,
new_start_time=start, # <---------- to start again after spinup
depends_on=id)
id = run_ENS(begin=start, end=end,
input_is_restart=False,
output_restart_interval=(end-start).total_seconds()/60,
#output_restart_interval=9999,
depends_on=id)
id = create_satimages(start, depends_on=id)
# continue now with free run
# no restart files anymore
prior_path_exp = cluster.archivedir
prior_init_time = start
prior_valid_time = end
id = prepare_IC_from_prior(prior_path_exp, prior_init_time, prior_valid_time, depends_on=id)
start = end
end = dt.datetime(2008, 7, 30, 18)
print('run WRF from', start, 'until', end)
id = run_ENS(begin=start, end=end,
input_is_restart=True,
#output_restart_interval=(next_restart-time).total_seconds()/60,
output_restart_interval=9999,
depends_on=id)
id = create_satimages(start, depends_on=id)
verify(depends_on=id)
if False: # continuation of nature after spinup
start = dt.datetime(2008, 7, 30, 7)
end = dt.datetime(2008, 7, 30, 18)
id = prepare_WRFrundir(start) # create initial conditions
id = run_ideal(depends_on=id)
prior_path_exp = '/gpfs/data/fs71386/lkugler/sim_archive/exp_v1.19_P5_nat2' # cluster.archivedir
prior_init_time = dt.datetime(2008, 7, 30, 7)
prior_valid_time = dt.datetime(2008, 7, 30, 12)
id = prepare_IC_from_prior(prior_path_exp, prior_init_time, prior_valid_time,
new_start_time=start, # <---------- to start again after spinup
depends_on=id)
id = run_ENS(begin=start, end=end,
input_is_restart=False,
output_restart_interval=(end-start).total_seconds()/60,
#output_restart_interval=9999,
depends_on=id)
id = create_satimages(start, depends_on=id)
verify(depends_on=id)