Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
D
DART-WRF-delete_byApril
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Model registry
Monitor
Service Desk
Analyze
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
DataAssimilation
DART-WRF-delete_byApril
Commits
543029b2
Unverified
Commit
543029b2
authored
3 years ago
by
lkugler
Committed by
GitHub
3 years ago
Browse files
Options
Downloads
Patches
Plain Diff
Update README.md
parent
3ee9b32c
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
README.md
+28
-38
28 additions, 38 deletions
README.md
with
28 additions
and
38 deletions
README.md
+
28
−
38
View file @
543029b2
...
...
@@ -15,42 +15,35 @@ Functions return a SLURM ID which can be used to trigger the start of another fu
-
Can I use it for real weather?
-
Yes, but you need to
[
convert your observations into DART format.
](
https://docs.dart.ucar.edu
)
### A possible workflow:
## Workflow
### Configure your experiment
Define simulation specific variables in
[
`config/cfg.py`
](
https://github.com/lkugler/DART-WRF/blob/master/config/cfg.py
)
.
Define paths for python, ncks, etc. in
[
`config/clusters.py`
](
https://github.com/lkugler/DART-WRF/blob/master/config/clusters.py
)
.
Dependencies are
`numpy, pandas, scipy, xarray, netCDF4`
. Install non-standard packages with
`pip install docopt slurmpy --user`
.
### Prepare initial conditions (from input_sounding)
1) Define starting time:
`begin = dt.datetime(2008, 7, 30, 7)`
2) WRF needs directories with certain files:
`id = prepare_WRFrundir(begin)`
3) Create 3D initial conditions from input_sounding etc.:
`id = run_ideal(depends_on=id)`
### Run free forecast
...
### Prepare initial conditions from a previous run (wrfrst/wrfout)
`prepare_IC_from_prior`
(set initial state to prior wrfrst/out)
### Update initial conditions from Data Assimilation
`update_IC_from_DA`
(overwrite assimilated variables in initial state)
### Examples
[
`scheduler.py`
](
https://github.com/lkugler/DART-WRF/blob/master/scheduler.py
)
```
python
### define your functions gen_synth_obs, assimilate, run_ENS, ...
# create initial conditions
id
=
prep_osse
()
# spin up the ensemble
background_init_time
=
dt
.
datetime
(
2008
,
7
,
30
,
6
,
0
)
integration_end_time
=
dt
.
datetime
(
2008
,
7
,
30
,
11
,
0
)
id
=
run_ENS
(
begin
=
background_init_time
,
end
=
integration_end_time
,
depends_on
=
id
)
time
=
integration_end_time
# time now
# now, start the ensemble data assimilation cycles
timedelta_integrate
=
dt
.
timedelta
(
minutes
=
15
)
timedelta_btw_assim
=
dt
.
timedelta
(
minutes
=
15
)
while
time
<
dt
.
datetime
(
2008
,
7
,
30
,
16
,
15
):
assim_time
=
time
id
=
gen_synth_obs
(
assim_time
,
depends_on
=
id
)
id
=
assimilate
(
assim_time
,
background_init_time
,
depends_on
=
id
)
background_init_time
=
assim_time
# start integration now
integration_end_time
=
assim_time
+
timedelta_integrate
id
=
run_ENS
(
begin
=
background_init_time
,
end
=
integration_end_time
,
depends_on
=
id
)
time
+=
timedelta_btw_assim
```
[
`generate_free.py`
](
https://github.com/lkugler/DART-WRF/blob/master/generate_free.py
)
## Finally
### SLURM submissions
`scheduler.py`
submits jobs into the SLURM queue with dependencies, so that SLURM starts the jobs itself as soon as resources are available. Most jobs need only one node, but model integration is done in a SLURM job array across e.g. 5 nodes:
...
...
@@ -75,9 +68,6 @@ $ squeue -u `whoami` --sort=i
308393_[1-5] mem_0384 EnsWRF-3 lkugler PD 0:00 1 (Dependency)
```
### Configure your experiment
Define simulation specific variables in
[
`config/cfg.py`
](
https://github.com/lkugler/DART-WRF/blob/master/config/cfg.py
)
.
### Easily switch between clusters
Define cluster specific variables in
`config/clusters.py `
:
```
python
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment