Skip to content
Snippets Groups Projects
Commit 4af099b3 authored by lkugler's avatar lkugler
Browse files

.

parent 3e681508
No related branches found
No related tags found
No related merge requests found
......@@ -7,15 +7,22 @@ class ExperimentConfiguration(object):
pass
exp = ExperimentConfiguration()
exp.expname = "exp_v1.21_P3_wbub7_VIS_obs10_loc20"
exp.expname = "exp_v1.22_P3_wbub7_WV73_obs10_loc20"
exp.model_dx = 2000
exp.n_ens = 40
exp.n_nodes = 10
exp.filter_kind = 1
exp.inflation = True
exp.sec = True
exp.reject_smallFGD = False
exp.cov_loc_vert_km_horiz_km = (3, 20)
exp.superob_km = False
exp.cov_loc_vert_km_horiz_km = False # (3, 20)
exp.superob_km = False # False or int (spatial averaging of observations)
exp.use_existing_obsseq = False # False or pathname (use precomputed obs_seq.out files)
#exp.use_existing_obsseq = '/gpfs/data/fs71386/lkugler/sim_archive/exp_v1.21_P2_rr_REFL_obs10_loc20_oe1/obs_seq_out/2008-07-30_%H:%M_obs_seq.out'
#exp.use_existing_obsseq = '/gpfs/data/fs71386/lkugler/sim_archive/exp_v1.21_P3_wbub7_REFL2D_obs10_loc20_oe5/obs_seq_out/2008-07-30_%H:%M_obs_seq.out'
#exp.use_existing_obsseq = '/gpfs/data/fs71386/lkugler/sim_archive/exp_v1.21_P2_rr_VIS_obs20_loc4/obs_seq_out/2008-07-30_%H:%M_obs_seq.out'
#exp.nature_wrfout = '/home/fs71386/lkugler/data/sim_archive/exp_v1.19_P5+su_nat2/2008-07-30_07:00/1/wrfout_d01_%Y-%m-%d_%H:%M:%S'
......@@ -30,7 +37,6 @@ exp.nature_wrfout = '/home/fs71386/lkugler/data/sim_archive/exp_v1.19_P3_wbub7_n
#exp.input_profile = '/home/fs71386/lkugler/data/initial_profiles/wrf/ens/large_mean_error/raso.nat.<iens>.wrfprof'
exp.input_profile = '/gpfs/data/fs71386/lkugler/initial_profiles/wrf/ens/2022-03-31/raso.fc.<iens>.wrfprof'
#exp.input_profile = '/gpfs/data/fs71386/lkugler/initial_profiles/wrf/ens/2022-03-31/raso.nat.<iens>.wrfprof'
#exp.input_profile = '/gpfs/data/fs71386/lkugler/initial_profiles/wrf/ens/2022-05-18_nopert/raso.nat.<iens>.wrfprof'
#exp.input_profile = '/gpfs/data/fs71386/lkugler/initial_profiles/wrf/ens/2022-05-18/raso.fc.<iens>.wrfprof'
......@@ -40,12 +46,17 @@ exp.input_profile = '/gpfs/data/fs71386/lkugler/initial_profiles/wrf/ens/2022-03
n_obs = 961 # 22500: 2km, 5776: 4km, 121: 30km, 256:16x16 (20km); 961: 10km resoltn # radar: n_obs for each observation height level
vis = dict(plotname='VIS 0.6µm', plotunits='[1]',
vis = dict(plotname='VIS 0.6µm', plotunits='[1]',
kind='MSG_4_SEVIRI_BDRF', sat_channel=1, n_obs=n_obs,
error_generate=0.03, error_assimilate=0.06,
cov_loc_radius_km=20)
wv73 = dict(plotname='Brightness temperature WV 7.3µm', plotunits='[K]',
wv62 = dict(plotname='Brightness temperature WV 6.2µm', plotunits='[K]',
kind='MSG_4_SEVIRI_TB', sat_channel=5, n_obs=n_obs,
error_generate=1., error_assimilate=False,
cov_loc_radius_km=20)
wv73 = dict(plotname='Brightness temperature WV 7.3µm', plotunits='[K]',
kind='MSG_4_SEVIRI_TB', sat_channel=6, n_obs=n_obs,
error_generate=1., error_assimilate=False,
cov_loc_radius_km=20)
......@@ -57,8 +68,8 @@ ir108 = dict(plotname='Brightness temperature IR 10.8µm', plotunits='[K]',
radar = dict(plotname='Radar reflectivity', plotunits='[dBz]',
kind='RADAR_REFLECTIVITY', n_obs=n_obs,
error_generate=2.5, error_assimilate=2.5,
heights=np.arange(2000, 14001, 2000),
error_generate=2.5, error_assimilate=5,
heights=[2000,], #np.arange(2000, 14001, 2000),
cov_loc_radius_km=20)
t = dict(plotname='Temperature', plotunits='[K]',
......@@ -69,7 +80,7 @@ t = dict(plotname='Temperature', plotunits='[K]',
q = dict(plotname='Specific humidity', plotunits='[kg/kg]',
kind='RADIOSONDE_SPECIFIC_HUMIDITY', n_obs=n_obs,
error_generate=0., error_assimilate=0.001,
error_generate=0., error_assimilate=5*1e-5,
heights=[1000], #np.arange(1000, 17001, 2000),
cov_loc_radius_km=0.1)
......@@ -78,13 +89,13 @@ t2m = dict(plotname='SYNOP Temperature', plotunits='[K]',
error_generate=0.1, error_assimilate=1.,
cov_loc_radius_km=20)
psfc = dict(plotname='SYNOP Pressure', plotunits='[dBz]',
psfc = dict(plotname='SYNOP Pressure', plotunits='[Pa]',
kind='SYNOP_SURFACE_PRESSURE', n_obs=n_obs,
error_generate=50., error_assimilate=100.,
cov_loc_radius_km=32)
exp.observations = [vis]
exp.observations = [wv73]
exp.update_vars = ['U', 'V', 'W', 'THM', 'PH', 'MU', 'QVAPOR', 'QCLOUD', 'QICE', 'PSFC']
#exp.update_vars = ['U', 'V', 'W', 'T', 'PH', 'MU', 'QVAPOR', 'PSFC']
......
......@@ -67,8 +67,9 @@ vsc.name = 'vsc'
vsc.python = '/home/fs71386/lkugler/miniconda3/envs/DART/bin/python'
vsc.python_enstools = '/home/fs71386/lkugler/miniconda3/envs/enstools/bin/python'
vsc.ncks = '/home/fs71386/lkugler/miniconda3/envs/DART/bin/ncks'
vsc.ideal = '/home/fs71386/lkugler/compile/bin/ideal-v4.2.2_v1.16.exe'
vsc.wrfexe = '/home/fs71386/lkugler/compile/bin/wrf-v4.3_v1.19.exe'
vsc.ideal = '/home/fs71386/lkugler/compile/bin/ideal-v4.2.2_v1.22.exe'
vsc.wrfexe = '/home/fs71386/lkugler/compile/bin/wrf-v4.3_v1.22.exe'
vsc.container = '/home/fs71386/lkugler/run_container.sh python.gcc9.5.0.vsc4.sif'
# paths for data output
vsc.wrf_rundir_base = '/gpfs/data/fs71386/lkugler/run_WRF/' # path for temporary files
......@@ -85,7 +86,7 @@ vsc.scriptsdir = '/home/fs71386/lkugler/DART-WRF/dartwrf/'
vsc.namelist = vsc.scriptsdir+'/../templates/namelist.input'
vsc.run_WRF = '/home/fs71386/lkugler/DART-WRF/dartwrf/run_ens.vsc.sh'
vsc.slurm_cfg = {"account": "p71386", "partition": "mem_0384", "qos": "p71386_0384",
vsc.slurm_cfg = {"account": "p71386", "partition": "skylake_0384", "qos": "p71386_0384",
"nodes": "1", "ntasks": "1", "ntasks-per-node": "48", "ntasks-per-core": "1",
"mail-type": "FAIL", "mail-user": "lukas.kugler@univie.ac.at"}
......@@ -3,18 +3,20 @@ import builtins as __builtin__
#copy = shutil.copy
import subprocess
def shell(cmd):
# subprocess.check_output(cmd.split(' '), shell=True)
os.system(cmd)
def shell(args):
print(args)
subprocess.run(args.split(' ')) #, shell=True) #, stderr=subprocess.STDOUT)
#os.system(args)
def print(*args):
__builtin__.print(*args, flush=True)
def copy(src, dst):
try:
os.remove(dst)
except:
pass
def copy(src, dst, remove_if_exists=True):
if remove_if_exists:
try:
os.remove(dst)
except:
pass
shutil.copy(src, dst)
def try_remove(f):
......
......@@ -248,7 +248,7 @@ if __name__ == "__main__":
backup_scripts()
id = None
if False: # warm bubble
if True: # warm bubble
prior_path_exp = '/gpfs/data/fs71386/lkugler/sim_archive/exp_v1.19_P3_wbub7_noDA'
init_time = dt.datetime(2008, 7, 30, 12)
......@@ -257,10 +257,10 @@ if __name__ == "__main__":
forecast_until = dt.datetime(2008, 7, 30, 18)
prepare_WRFrundir(init_time)
id = run_ideal(depends_on=id)
id = wrfinput_insert_wbubble(depends_on=id)
# id = run_ideal(depends_on=id)
# id = wrfinput_insert_wbubble(depends_on=id)
if True: # random
if False: # random
prior_path_exp = '/gpfs/data/fs71386/lkugler/sim_archive/exp_v1.19_P2_noDA'
init_time = dt.datetime(2008, 7, 30, 12)
......@@ -269,11 +269,10 @@ if __name__ == "__main__":
forecast_until = dt.datetime(2008, 7, 30, 18)
prepare_WRFrundir(init_time)
id = run_ideal(depends_on=id)
# id = run_ideal(depends_on=id)
#prior_path_exp = cluster.archivedir #
#prior_path_exp = '/gpfs/data/fs71386/lkugler/sim_archive/exp_v1.19_P5+su_noDA'
# prior_path_exp = cluster.archivedir
# prior_path_exp = '/gpfs/data/fs71386/lkugler/sim_archive/exp_v1.19_P5+su_noDA'
prior_init_time = init_time
prior_valid_time = time
......@@ -286,7 +285,7 @@ if __name__ == "__main__":
prior_valid_time = time
id = assimilate(time, prior_init_time, prior_valid_time, prior_path_exp, depends_on=id)
# 1) Set posterior = prior
id = prepare_IC_from_prior(prior_path_exp, prior_init_time, prior_valid_time, depends_on=id)
......@@ -298,7 +297,7 @@ if __name__ == "__main__":
output_restart_interval = timedelta_btw_assim.total_seconds()/60
if time == last_assim_time: #this_forecast_init.minute in [0,]: # longer forecast every full hour
timedelta_integrate = forecast_until - last_assim_time # dt.timedelta(hours=4)
output_restart_interval = 9999 #timedelta_btw_assim.total_seconds()/60 # 9999
output_restart_interval = 9999 # timedelta_btw_assim.total_seconds()/60 # 9999
# 3) Run WRF ensemble
id = run_ENS(begin=time, # start integration from here
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment