Skip to content
Snippets Groups Projects
Commit 34d4774e authored by lkugler's avatar lkugler
Browse files

Merge branch 'master' of https://github.com/lkugler/DART-WRF

parents c054935a 6df321d9
No related branches found
No related tags found
No related merge requests found
......@@ -6,9 +6,9 @@ import datetime as dt
from dartwrf.workflows import WorkFlows
prior_path_exp = '/mnt/jetfs/scratch/lkugler/data/sim_archive/exp_v1.19_P3_wbub7_noDA'
prior_path_exp = '/users/students/lehre/advDA_s2023/data/sample_ensemble/'
prior_init_time = dt.datetime(2008,7,30,12)
prior_valid_time = dt.datetime(2008,7,30,12,30)
prior_valid_time = dt.datetime(2008,7,30,13)
assim_time = prior_valid_time
w = WorkFlows(exp_config='cfg.py', server_config='srvx1.py')
......
from dartwrf import utils
exp = utils.Experiment()
exp.expname = "test_newcode"
exp.expname = "obs-cold_localization-narrow"
exp.model_dx = 2000
exp.n_ens = 10
......@@ -9,30 +9,20 @@ exp.filter_kind = 1
exp.prior_inflation = 0
exp.post_inflation = 4
exp.sec = True
exp.reject_smallFGD = False
exp.cov_loc_vert_km_horiz_km = (3, 20)
exp.cov_loc_vert_km_horiz_km = (4, 40)
exp.superob_km = False # False or int (spatial averaging of observations)
exp.adjust_obs_impact = False
exp.use_existing_obsseq = False # False or pathname (use precomputed obs_seq.out files)
#exp.use_existing_obsseq = '/jetfs/home/lkugler/data/sim_archive/NoImpactFactors/obs_seq_out/2008-07-30_%H:%M_obs_seq.out'
#exp.use_existing_obsseq = '/jetfs/home/lkugler/data/sim_archive/exp_v1.21_P3_wbub7_VIS_obs10_loc20/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.use_existing_obsseq = '/users/students/lehre/advDA_s2023/dartwrf_tutorial/very_cold_observation.out'
#exp.nature = '/mnt/jetfs/scratch/lkugler/data/sim_archive/exp_v1.19_P3_wbub7_nat/2008-07-30_12:00/1'
exp.nature = '/mnt/jetfs/scratch/lkugler/data/sim_archive/exp_v1.18_P1_nature/2008-07-30_06:00/1'
# path to the nature run, where we take observations from
exp.nature = '/users/students/lehre/advDA_s2023/data/sample_nature/'
exp.input_profile = '/mnt/jetfs/home/lkugler/data/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/raso.fc.<iens>.wrfprof'
# localize vertically, if it has a vertical position
# needs a horizontal scale too, to calculate the vertical normalization
# since you can not specify different vertical localizations for diff. variables
# n_obs= 22500: 2km, 5776: 4km, 121: 30km, 256:16x16 (20km); 961: 10km resoltn # radar: n_obs for each observation height level
# 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
vis = dict(plotname='VIS 0.6µm', plotunits='[1]',
kind='MSG_4_SEVIRI_BDRF', sat_channel=1,
......@@ -82,15 +72,15 @@ q = dict(plotname='Specific humidity', plotunits='[kg/kg]',
t2m = dict(plotname='SYNOP Temperature', plotunits='[K]',
kind='SYNOP_TEMPERATURE', n_obs=1,
error_generate=0.1, error_assimilate=1.,
cov_loc_radius_km=20)
error_generate=0.1, error_assimilate=0.1,
cov_loc_radius_km=40)
psfc = dict(plotname='SYNOP Pressure', plotunits='[Pa]',
kind='SYNOP_SURFACE_PRESSURE', n_obs=1,
error_generate=50., error_assimilate=100.,
cov_loc_radius_km=32)
exp.observations = [t]
exp.observations = [t2m]
exp.update_vars = ['U', 'V', 'W', 'THM', 'PH', 'MU', 'QVAPOR', 'QCLOUD', 'QICE', 'PSFC']
#exp.update_vars = ['U', 'V', 'W', 'T', 'PH', 'MU', 'QVAPOR', 'PSFC']
......@@ -56,6 +56,9 @@ cluster.ncks = '/jetfs/spack/opt/spack/linux-rhel8-skylake_avx512/intel-2021.7.1
cluster.ideal = '/jetfs/home/lkugler/bin/ideal-v4.3_v1.22.exe'
cluster.wrfexe = '/jetfs/home/lkugler/bin/wrf-v4.3_v1.22_ifort_20230413.exe'
cluster.dart_modules = 'module purge; module load netcdf-fortran/4.5.3-gcc-8.5.0-qsqbozc;'
cluster.wrf_modules = """module purge; module load intel-oneapi-compilers/2022.2.1-zkofgc5 hdf5/1.12.2-intel-2021.7.1-w5sw2dq netcdf-fortran/4.5.3-intel-2021.7.1-27ldrnt netcdf-c/4.7.4-intel-2021.7.1-lnfs5zz intel-oneapi-mpi/2021.7.1-intel-2021.7.1-pt3unoz
export HDF5=/jetfs/spack/opt/spack/linux-rhel8-skylake_avx512/intel-2021.7.1/hdf5-1.12.2-w5sw2dqpcq2orlmeowleamoxr65dhhdc
"""
# paths for data output
cluster.wrf_rundir_base = '/jetfs/home/lkugler/data/run_WRF/' # path for temporary files
......
......@@ -63,7 +63,7 @@ cluster.archive_base = utils.userhome+'/data/sim_archive/'
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.scriptsdir = utils.userhome+'/DART-WRF/dartwrf/'
cluster.scriptsdir = utils.userhome+'/AdvDA23/DART-WRF/dartwrf/'
cluster.geo_em = '/users/students/lehre/advDA_s2023/data/geo_em.d01.nc'
# templates/run scripts
......
module purge
module load intel-oneapi-compilers/2022.2.1-zkofgc5 hdf5/1.12.2-intel-2021.7.1-w5sw2dq netcdf-fortran/4.5.3-intel-2021.7.1-27ldrnt netcdf-c/4.7.4-intel-2021.7.1-lnfs5zz intel-oneapi-mpi/2021.7.1-intel-2021.7.1-pt3unoz
export HDF5=/jetfs/spack/opt/spack/linux-rhel8-skylake_avx512/intel-2021.7.1/hdf5-1.12.2-w5sw2dqpcq2orlmeowleamoxr65dhhdc
<cluster.wrf_modules>
export SLURM_STEP_GRES=none
echo "SLURM_ARRAY_TASK_ID:"$SLURM_ARRAY_TASK_ID
......
......@@ -226,8 +226,11 @@ class WorkFlows(object):
id = self.cluster.run_job(' '.join(args), "preWRF", cfg_update=dict(time="2"), depends_on=[depends_on])
cmd = script_to_str(self.cluster.run_WRF).replace('<exp.expname>', exp.expname
).replace('<cluster.wrf_rundir_base>', self.cluster.wrf_rundir_base)
cmd = script_to_str(self.cluster.run_WRF
).replace('<exp.expname>', exp.expname
).replace('<cluster.wrf_rundir_base>', self.cluster.wrf_rundir_base
).replace('<cluster.wrf_modules>', self.cluster.wrf_modules)
time_in_simulation_hours = (end-begin).total_seconds()/3600
runtime_wallclock_mins_expected = int(8+time_in_simulation_hours*9.5) # usually below 9 min/hour
......
......@@ -23,7 +23,8 @@ extensions = [
'sphinx.ext.autosummary',
'sphinx.ext.intersphinx',
'sphinx.ext.napoleon',
'nbsphinx'
'nbsphinx',
'sphinx_rtd_theme',
]
autodoc_mock_imports = ['numpy','scipy','xarray','pandas','netCDF4','osselyze','osselyze.utils']
......
name: DART
channels:
- conda-forge
- defaults
dependencies:
- cdo
- docopt
- hdf5
- ipython
- matplotlib
- nco
- netcdf-fortran
- netcdf4
- numpy
- pandas
- pip
- python
- python-dateutil
- pytz
- proj4
- scipy
- setuptools
- wrf-python
- xarray
- yaml
- pysolar>=0.10.0
......@@ -51,7 +51,7 @@
output_timestamps = .false.,
trace_execution = .false.,
stages_to_write = 'output'
stages_to_write = 'preassim', 'postassim'
output_members = .true.
output_mean = .true.
output_sd = .true.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment