diff --git a/config/exp_template.py b/config/exp_template.py index 5e551edf3188767d2cad1db11bbac5aca762ecdf..07247d7bc7265df4acae16e4800290dedc84b9b2 100755 --- a/config/exp_template.py +++ b/config/exp_template.py @@ -1,3 +1,7 @@ +""" +This configuration file is designed for the course Advanced Data Assimilation at the University of Vienna. +Copy and customize it as you wish. +""" from dartwrf.utils import Experiment exp = Experiment() @@ -6,18 +10,16 @@ exp.model_dx = 2000 exp.n_ens = 4 exp.do_quality_control = False -# path to the nature run, where we take observations from -#exp.nature_wrfout_pattern = '/jetfs/home/lkugler/data/sim_archive/exp_v1.18_P1_nature+1/*/1/wrfout_d01_%Y-%m-%d_%H:%M:%S' -#exp.nature_wrfout_pattern = '/jetfs/home/lkugler/data/sim_archive/exp_v1.18_P1_nature/*/1/wrfout_d01_%Y-%m-%d_%H:%M:%S' -exp.nature_wrfout_pattern = '/jetfs/home/lkugler/data/sim_archive/exp_v1.19_P3_wbub7_nat/*/1/wrfout_d01_%Y-%m-%d_%H:%M:%S' +# Path to the nature run. From there, observations are generated. Wildcards "*" are allowed in this path. +exp.nature_wrfout_pattern = '/users/students/lehre/advDA_s2023/data/sample_nature/wrfout_d01_%Y-%m-%d_%H:%M:%S' +# Path to sounding profiles for ensemble initialization. Not used in the Advanced DA course. exp.input_profile = '/mnt/jetfs/home/lkugler/data/initial_profiles/wrf/ens/2022-03-31/raso.fc.<iens>.wrfprof' - +# Configuration of DART. For details see the DART or DART-WRF documentation. exp.dart_nml = {'&assim_tools_nml': dict(filter_kind='1', sampling_error_correction='.true.', - # obs_impact_filename='/jetfs/home/lkugler/DART-WRF/templates/impactfactor_T.txt', ), '&filter_nml': dict( ens_size=exp.n_ens, @@ -88,9 +90,12 @@ exp.dart_nml = {'&assim_tools_nml': -# n_obs can be 22500: 2km, 5776: 4km, 121: 30km, 256:16x16 (20km); 961: 10km resoltn -# if radar: then n_obs is for each observation height level -oeinf = 4.**.5 +# n_obs is the number of observations +# currently allowed values are 22500 for one observation approximately every 2km; 5776 for 4km, and 961 for 10km resolution; 256 for 20km; 121 for 30km +# Note for radar, n_obs is the number of observations at each observation height level + +# oeinf is the observation inflation factor (1 means no inflation) +oeinf = 1 vis = dict(var_name='VIS 0.6µm', unit='[1]', kind='MSG_4_SEVIRI_BDRF', sat_channel=1, diff --git a/config/srvx1.py b/config/srvx1.py index eba2901881e1ed3db4573022893f12b63e90e939..80f5eb2f2a9608e22d79bbf93b3bc52af15c81b1 100755 --- a/config/srvx1.py +++ b/config/srvx1.py @@ -13,25 +13,23 @@ cluster.python_verif = '/users/staff/lkugler/miniconda3/bin/python' cluster.ncks = '/home/swd/spack/opt/spack/linux-rhel8-skylake_avx512/gcc-8.5.0/nco-5.0.1-ntu44aoxlvwtr2tsrobfr4lht7cpvccf/bin/ncks' cluster.ideal = '' #/jetfs/home/lkugler/bin/ideal-v4.3_v1.22.exe' cluster.wrfexe = '' #/jetfs/home/lkugler/bin/wrf-v4.3_v1.22.exe' -cluster.dart_modules = '' +cluster.dart_modules = 'pip install scipy; module purge; module load netcdf-fortran/4.5.2-gcc-8.5.0-MPI3.1.6; ' cluster.wrf_modules = '' # paths for data output -cluster.wrf_rundir_base = utils.userhome+'/AdvDA23/run_WRF/' # path for temporary files -cluster.dart_rundir_base = utils.userhome+'/AdvDA23/run_DART/' # path for temporary files +cluster.wrf_rundir_base = utils.userhome+'/AdvDA/run_WRF/' # path for temporary files +cluster.dart_rundir_base = utils.userhome+'/AdvDA/run_DART/' # path for temporary files cluster.archive_base = utils.userhome+'/data/sim_archive/' # paths used as input cluster.srcdir = '/users/staff/lkugler/AdvDA23/DART/WRF-4.3/run' cluster.dart_srcdir = '/users/students/lehre/advDA_s2023/DART/models/wrf/work' cluster.rttov_srcdir = '/users/students/lehre/advDA_s2023/RTTOV13/rtcoef_rttov13/' -cluster.dartwrf_dir = utils.userhome+'/AdvDA23/DART-WRF/' +cluster.dartwrf_dir = utils.userhome+'/AdvDA/DART-WRF/' cluster.geo_em_for_WRF_ideal = '/users/students/lehre/advDA_s2023/data/geo_em.d01.nc' # templates/run scripts cluster.namelist = cluster.dartwrf_dir+'/../templates/namelist.input' cluster.run_WRF = cluster.dartwrf_dir+'/run_ens.jet.sh' -cluster.slurm_cfg = {"account": "lkugler", "partition": "compute", - "ntasks": "1", "ntasks-per-core": "1", "mem": "50G", - "mail-type": "FAIL", "mail-user": "lukas.kugler@univie.ac.at"} +cluster.slurm_cfg = None diff --git a/dartwrf/assimilate.py b/dartwrf/assimilate.py index 94f69c8648bacb5ad63d359f5faf31a1e93855ef..c5cea4952386dd55d0a8044d8e7e83c9fe49e82e 100755 --- a/dartwrf/assimilate.py +++ b/dartwrf/assimilate.py @@ -612,7 +612,7 @@ if __name__ == "__main__": """Assimilate observations Example: - python assim_synth_obs.py 2008-08-07_13:00 2008-08_12:00 2008-08-07_13:00 /path/to/experiment/ + python assimilate.py 2008-08-07_13:00 2008-08_12:00 2008-08-07_13:00 /path/to/experiment/ """ time = dt.datetime.strptime(sys.argv[1], "%Y-%m-%d_%H:%M")