Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
7e7dc06
add folder and README for figures
clairemerker Jun 5, 2026
9a23cd3
add config for Varda-Single
jonasbhend Jun 11, 2026
6e9f0ab
add config for Varda-Single paper
jonasbhend Jun 11, 2026
9111cb7
Merge branch 'main' into paper-figures
jonasbhend Jun 11, 2026
7192c2d
add ensemble mean baselines
jonasbhend Jun 16, 2026
0a9f39f
update config model with optional publication block
jonasbhend Jun 16, 2026
f36abbc
add new cli endpoint publication
jonasbhend Jun 16, 2026
a5848b8
tweak config model
jonasbhend Jun 16, 2026
aaaee47
Add snakemake rule for publication-grade figures
jonasbhend Jun 16, 2026
db7a02a
First plot (lead times)
jonasbhend Jun 16, 2026
19f97b6
exclude figures directory from being tracked
jonasbhend Jun 16, 2026
e842de7
add grey shading behind TOT_PREC and additional styling
jonasbhend Jun 16, 2026
a53672c
add zero line for BIAS
jonasbhend Jun 19, 2026
ae97441
Merge branch 'main' into paper-figures
jonasbhend Jun 19, 2026
f84556c
Merge branch 'main' into paper-figures
jonasbhend Jun 22, 2026
05b7c62
Varda-Single evaluation with station observations
jonasbhend Jun 22, 2026
b3eab4a
Add meteogram and centralise plot style (#192)
clairemerker Jun 22, 2026
4ecc8c3
remove superseeded top-level directory for figures
jonasbhend Jun 23, 2026
f1a92cb
add rule for scoremaps
jonasbhend Jun 23, 2026
7582aeb
minor tweaks
jonasbhend Jun 23, 2026
6faf05c
linting
jonasbhend Jun 23, 2026
52084d1
Fix meteogram obs for non-default stations and missing time import (#…
clairemerker Jun 24, 2026
ecf19da
fix ci
clairemerker Jun 24, 2026
a113ee2
two separate plots for lead times
jonasbhend Jun 24, 2026
1f7c4f2
Add 6-hourly lead time for scoremaps
jonasbhend Jun 26, 2026
5d8884c
add enabled switch for all publication tasks
jonasbhend Jun 26, 2026
314a1b3
Refactor/figures (#202)
clairemerker Jul 2, 2026
d98e280
Merge branch 'main' into paper-figures
jonasbhend Jul 10, 2026
8f5cb36
linting
jonasbhend Jul 10, 2026
480e0c5
fix broken evalml runs introduced with MEC PR
jonasbhend Jul 10, 2026
d8409f9
updated varda-paper config
jonasbhend Jul 11, 2026
d500413
Use RdBu skill colormap and widen value range to ±0.55
clairemerker Jul 15, 2026
2eabb2f
Add areal-mean precipitation meteogram over a region (Valais) (#216)
adestefani8 Jul 17, 2026
9d7a00a
Merge branch 'main' into paper-figures
jonasbhend Jul 20, 2026
97e7e82
Separate configs for analysis-based and station-based verification
jonasbhend Jul 20, 2026
5b3ddaf
remove outdated eckit_grids rule
jonasbhend Jul 20, 2026
08cbfe5
enable configs without publication section
jonasbhend Jul 20, 2026
2d39361
Merge branch 'main' into paper-figures
jonasbhend Jul 23, 2026
b68e53d
add AIFS
jonasbhend Jul 24, 2026
3e11c00
scoremaps config
jonasbhend Jul 24, 2026
1889ad6
updated configs for Varda paper
jonasbhend Jul 24, 2026
779d55a
Merge branch 'main' into paper-figures
jonasbhend Jul 24, 2026
65ba778
add icon region for compliance with new region naming scheme
jonasbhend Jul 24, 2026
de743fc
comment out AIFS
jonasbhend Jul 24, 2026
5109e60
Fix missing pre-defined regions
jonasbhend Jul 25, 2026
27f21ed
adjust AIFS inference config to work with old anemoi-inference versio…
jonasbhend Jul 25, 2026
84f146b
Enable lapse-rate correction for AIFS
jonasbhend Jul 25, 2026
03f47ea
updated configs
jonasbhend Jul 26, 2026
a21de74
linting
jonasbhend Jul 26, 2026
4b856d5
updated scorecards
jonasbhend Aug 3, 2026
6a61879
TRUTH_HASH --> VERIF_HASH: Adapt to change introduced with lapse-rate…
jonasbhend Aug 3, 2026
042a517
Add scorecard for publication (#251)
jonasbhend Aug 10, 2026
28a273c
updated regions
jonasbhend Aug 10, 2026
27a7dc3
Merge branch 'main' into paper-figures
jonasbhend Aug 10, 2026
b1c6eb5
adjust time period
jonasbhend Aug 10, 2026
37f8c3d
linting
jonasbhend Aug 10, 2026
1cd2291
further linting
jonasbhend Aug 10, 2026
02f8a67
fix documentation of rule
jonasbhend Aug 10, 2026
625356f
fix failing tests
jonasbhend Aug 10, 2026
71d355b
change test datasets to cover beginning 2026
jonasbhend Aug 10, 2026
f3d6d3b
add patch metadata as a dependency
jonasbhend Aug 10, 2026
dc627a9
Add anemoi-plugin dependency to support copying of prognostics from f…
jonasbhend Aug 11, 2026
6bdbfb7
add extended dataset to all necessary patch files
jonasbhend Aug 11, 2026
1e4731f
pin anemoi inference
jonasbhend Aug 11, 2026
463ec89
change to stage-E with rollout
jonasbhend Aug 14, 2026
b7d5eea
add extended datasets
jonasbhend Aug 14, 2026
335fe7e
add ensemble mean
jonasbhend Aug 14, 2026
7554ffa
add ensemble mean baselines
jonasbhend Aug 19, 2026
ac9e753
fix config and empty patches
jonasbhend Aug 19, 2026
9f7b995
Decouple publication plotting from Snakemake (#250)
clairemerker Aug 20, 2026
65bf51f
Adjust colour and skill palette
jonasbhend Aug 20, 2026
d84992f
change to lower case Varda-single
jonasbhend Aug 20, 2026
1509734
protect scoremaps output
jonasbhend Aug 20, 2026
1801293
respect de-capitalization
jonasbhend Aug 20, 2026
0d30a83
fewer axis labels
jonasbhend Aug 20, 2026
cad6c71
Add AIFS and ensemble mean baselines
jonasbhend Aug 20, 2026
6346fad
updated colours and styles
jonasbhend Aug 20, 2026
e0d231b
add seasonal plot
jonasbhend Aug 20, 2026
88a00af
use pre-defined styles
jonasbhend Aug 20, 2026
2a42e59
fix output path
jonasbhend Aug 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ _dev
.idea
.snakemake
output
figures
_sandbox/
experiment_report.html

Expand Down
135 changes: 135 additions & 0 deletions config/varda-single_paper_analysis.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
# yaml-language-server: $schema=../workflow/tools/config.schema.json
description: |
Evaluation of Varda-Single version 1.0.

dates:
start: 2025-04-01T00:00
end: 2026-03-31T18:00
frequency: 30h

runs:
- temporal_downscaler:
checkpoint: /scratch/mch/miccatta/ICON_interpolator_checkpoints/checkpoint_stage-C-interpolator-n320-6hto1h-reduced-variables/f9279244ed6f4c458597bdcf335ab36f/inference-last.ckpt
label: Varda-single
steps: 0/120/1
config: resources/inference/configs/sgm-temporal-downscaler-global_trimedge_multi.yaml
extra_requirements:
- anemoi-datasets==0.5.35
- anemoi-inference==0.11.1
# NOTE this pins the merge commit that introduced 'copy-prognostic-from-forecaster'
# TODO pin a release tag once the plugins are versioned. Do not pin the main branch to avoid stale code (changes do to main to not change the evalml hash)
- git+https://github.com/MeteoSwiss/anemoi-plugins-meteoswiss.git@b4835d76346e1e5ec0181884520da00e317fbfbc
forecaster:
checkpoint: https://service.meteoswiss.ch/mlstore#/experiments/602/runs/98d4e297f0164f18a0ad50fb01fbff42
config: resources/inference/configs/sgm-multidataset-forecaster-global-ich1-oper.yaml
steps: 0/120/6
- forecaster:
checkpoint: https://huggingface.co/ecmwf/aifs-single-1.1/resolve/main/aifs-single-mse-1.1.ckpt
label: AIFS-single-1.1
steps: 0/120/6
config: resources/inference/configs/aifs-single-forecaster.yaml
extra_requirements:
- torch-geometric==2.4.0
- anemoi-inference==0.6.3
- anemoi-models==0.5.0
- https://github.com/Dao-AILab/flash-attention/releases/download/v2.7.4.post1/flash_attn-2.7.4.post1+cu12torch2.6cxx11abiFALSE-cp312-cp312-linux_x86_64.whl
disable_local_eccodes_definitions: true
- baseline:
label: ICON-CH1-CTRL
root: /store_new/mch/msopr/osm/ICON-CH1-EPS
steps: 0/33/1
member: control
- baseline:
label: ICON-CH2-CTRL
root: /store_new/mch/msopr/osm/ICON-CH2-EPS
steps: 0/120/1
member: control
- baseline:
label: ICON-CH1-EPS mean
root: /store_new/mch/msopr/osm/ICON-CH1-EPS
steps: 0/33/1
member: mean
- baseline:
label: ICON-CH2-EPS mean
root: /store_new/mch/msopr/osm/ICON-CH2-EPS
steps: 0/120/1
member: mean

truth:
label: KENDA-CH1
root: /store_new/mch/msopr/ml/datasets/mch-ich1-1km-2024-2026-1h-pl13-v2.0.zarr

experiment:
params:
- T_2M
- TD_2M
- SP_10M
- TOT_PREC1
- TOT_PREC6
- PMSL
stratification:
regions:
- icon
- jura
- mittelland
- alpennordhang
- innerealpentaeler
- alpensuedseite
- alpen
- tiefelagen
- berge
root: /scratch/mch/bhendj/regions/Prognoseregionen_LV95_20220517
thresholds:
TOT_PREC1:
gt: [0.0, 0.1, 1, 5, 10]
TOT_PREC6:
gt: [0.0, 0.1, 5, 10, 20, 50]
SP_10M:
gt: [2.5, 5.0, 10.0]
T_2M:
lt: [273.15]
gt: [288.15, 298.15]
dashboard:
stratification:
# - region
# - init_hour
- season
scorecards:
enabled: true
sections:
short_range:
baseline: ICON-CH1-CTRL
lead_times: "6/33/6"
stratification: region
variables:
- "U_10M:RMSE,R2,ETS"
- "T_2M:RMSE,R2"
- "TOT_PREC1:RMSE,R2,ETS"
medium_range:
baseline: ICON-CH2-CTRL
lead_times: "24/120/24"
stratification: region
variables:
- "U_10M:RMSE,R2,ETS"
- "T_2M:RMSE,R2"
- "TOT_PREC6:RMSE,R2,ETS"
scoremaps:
enabled: false
leadtimes: [6, 24]
params: ["T_2M", "SP_10M", "TOT_PREC1", "TOT_PREC6"]

locations:
output_root: output/

profile:
executor: slurm
global_resources:
gpus: 16
default_resources:
slurm_partition: "postproc"
cpus_per_task: 1
mem_mb_per_cpu: 1800
runtime: "1h"
gpus: 0
slurm_account: s83
jobs: 20
113 changes: 113 additions & 0 deletions config/varda-single_paper_forecaster_analysis.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
# yaml-language-server: $schema=../workflow/tools/config.schema.json
description: |
Evaluation of Varda-Single version 1.0.

dates:
start: 2025-04-01T00:00
end: 2026-03-31T18:00
frequency: 30h

runs:
- forecaster:
label: stage-E-no-rollout
checkpoint: https://service.meteoswiss.ch/mlstore#/experiments/602/runs/c30490b6ba064e4db03b430f3a2595ad
config: resources/inference/configs/sgm-multidataset-forecaster-global-ich1-oper.yaml
steps: 0/120/6
- forecaster:
label: stage-E-with-rollout
checkpoint: https://service.meteoswiss.ch/mlstore#/experiments/602/runs/98d4e297f0164f18a0ad50fb01fbff42
config: resources/inference/configs/sgm-multidataset-forecaster-global-ich1-oper.yaml
steps: 0/120/6
# - forecaster:
# checkpoint: https://huggingface.co/ecmwf/aifs-single-1.1/resolve/main/aifs-single-mse-1.1.ckpt
# label: AIFS-single-1.1
# steps: 0/120/6
# config: resources/inference/configs/aifs-single-forecaster.yaml
# extra_requirements:
# - torch-geometric==2.4.0
# - anemoi-inference==0.6.3
# - anemoi-models==0.5.0
# - https://github.com/Dao-AILab/flash-attention/releases/download/v2.7.4.post1/flash_attn-2.7.4.post1+cu12torch2.6cxx11abiFALSE-cp312-cp312-linux_x86_64.whl
# disable_local_eccodes_definitions: true
- baseline:
label: ICON-CH1-CTRL
root: /store_new/mch/msopr/osm/ICON-CH1-EPS
steps: 0/33/6
member: control
- baseline:
label: ICON-CH2-CTRL
root: /store_new/mch/msopr/osm/ICON-CH2-EPS
steps: 0/120/6
member: control

truth:
label: KENDA-CH1
root: /store_new/mch/msopr/ml/datasets/mch-ich1-1km-2024-2026-1h-pl13-v2.0.zarr

experiment:
params:
- T_2M
- TD_2M
- SP_10M
- TOT_PREC6
- PMSL
stratification:
regions:
- icon
- jura
- mittelland
- alpennordhang
- innerealpentaeler
- alpensuedseite
- alpen
- tiefelagen
- berge
root: /scratch/mch/bhendj/regions/Prognoseregionen_LV95_20220517
thresholds:
TOT_PREC6:
gt: [0.0, 0.1, 5, 10, 20, 50]
SP_10M:
gt: [2.5, 5.0, 10.0]
T_2M:
lt: [273.15]
gt: [288.15, 298.15]
dashboard:
stratification:
# - region
# - init_hour
- season
scorecards:
enabled: true
sections:
short_range:
baseline: ICON-CH1-CTRL
lead_times: "6/33/6"
stratification: region
variables:
- "U_10M:RMSE,R2,ETS"
- "T_2M:RMSE,R2"
- "TOT_PREC6:RMSE,R2,ETS"
medium_range:
baseline: ICON-CH2-CTRL
lead_times: "24/120/24"
stratification: region
variables:
- "U_10M:RMSE,R2,ETS"
- "T_2M:RMSE,R2"
- "TOT_PREC6:RMSE,R2,ETS"

locations:
output_root: output/

profile:
executor: slurm
global_resources:
gpus: 16
default_resources:
slurm_partition: "postproc"
cpus_per_task: 1
mem_mb_per_cpu: 1800
runtime: "1h"
gpus: 0
slurm_account: s83
jobs: 20
90 changes: 90 additions & 0 deletions config/varda-single_paper_forecaster_scoremaps.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
# yaml-language-server: $schema=../workflow/tools/config.schema.json
description: |
Evaluation of Varda-Single version 1.0.

dates:
start: 2025-04-01T00:00
end: 2026-03-31T18:00
frequency: 30h

runs:
- forecaster:
label: Varda-single
checkpoint: https://service.meteoswiss.ch/mlstore#/experiments/602/runs/98d4e297f0164f18a0ad50fb01fbff42
config: resources/inference/configs/sgm-multidataset-forecaster-global-ich1-oper.yaml
steps: 0/120/6
- baseline:
label: ICON-CH1-CTRL
root: /store_new/mch/msopr/osm/ICON-CH1-EPS
steps: 0/33/6
member: control

truth:
label: KENDA-CH1
root: /store_new/mch/msopr/ml/datasets/mch-ich1-1km-2024-2026-1h-pl13-v2.0.zarr

experiment:
params:
- T_2M
- TD_2M
- SP_10M
- TOT_PREC6
- PMSL
stratification:
regions:
- icon
- jura
- mittelland
- alpennordhang
- innerealpentaeler
- alpensuedseite
- alpen
- tiefelagen
- berge
root: /scratch/mch/bhendj/regions/Prognoseregionen_LV95_20220517
thresholds:
TOT_PREC6:
gt: [0.0, 0.1, 5, 10, 20, 50]
SP_10M:
gt: [2.5, 5.0, 10.0]
T_2M:
lt: [273.15]
gt: [288.15, 298.15]
dashboard:
stratification:
# - region
# - init_hour
- season
scorecards:
enabled: false
sections:
short_range:
baseline: ICON-CH1-CTRL
lead_times: "6/33/6"
stratification: region
variables:
- "U_10M:RMSE,R2,ETS"
- "T_2M:RMSE,R2"
- "TOT_PREC6:RMSE,R2,ETS"
scoremaps:
enabled: true
leadtimes: [6, 24]
params: ["T_2M", "SP_10M", "TOT_PREC6", "PMSL"]
scores: ["BIAS", "RMSE"]


locations:
output_root: output/

profile:
executor: slurm
global_resources:
gpus: 16
default_resources:
slurm_partition: "postproc"
cpus_per_task: 1
mem_mb_per_cpu: 1800
runtime: "1h"
gpus: 0
slurm_account: s83
jobs: 20
Loading