You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTEXT.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,21 +1,21 @@
1
1
# MeteoCompare
2
2
3
-
Multi-model weather forecast comparison. The app pulls deterministic numerical-weather-prediction (NWP) forecasts from many models via open-meteo, weights them, and produces a single aggregate forecast plus a per-timestep confidence score. A secondary verification surface compares past forecasts against a reference reanalysis field to expose which models (and the aggregate) were actually right.
3
+
Multi-model weather forecast comparison. The app pulls operational forecast products from many models via open-meteo, weights them, and produces a single aggregate forecast plus a per-timestep confidence score. A secondary verification surface compares past forecasts against a reference reanalysis field to expose which models (and the aggregate) were actually right.
4
4
5
5
## Language
6
6
7
7
### Models & runs
8
8
9
9
**Model**:
10
-
A specific NWP product exposed by open-meteo, e.g. ECMWF IFS or DWD ICON-EU. One logical model per row in `src/domain/models.ts`.
10
+
A specific forecast product exposed by open-meteo, e.g. ECMWF IFS HRES, DWD ICON-EU, or ECMWF AIFS. One logical model per row in `src/domain/models.ts`.
11
11
_Avoid_: provider, source, dataset.
12
12
13
13
**Probability graft**:
14
14
open-meteo derives `precipitation_probability` only from ensembles, so deterministic models return null for it. Where a model has an ensemble-backed _seamless_ sibling, we fetch that sibling solely for the probability variable and read its series under the registered model's id — the _graft_. Today `icon_seamless` is grafted onto DWD ICON (`icon_global`). The **graft source** (`icon_seamless`) is never a Model: no registry row, no chip, no aggregate vote of its own; it supplies one variable under the host model's identity and weight. Note we consume open-meteo's _derived_ probability, never raw ensemble members (see "Aggregate").
15
15
_Avoid_: registering a graft source as a Model.
16
16
17
17
**Model class**:
18
-
Resolution-and-scope tier: `global`, `regional-mid`, or `regional-cam` (convection-allowing). Drives lead-time decay and precipitation boost.
18
+
Resolution/product-and-scope tier: `global`, `regional-mid`, `regional-cam` (convection-allowing), `ai` (machine-learned single forecast product), or `ensemble-mean` (mean of ensemble members exposed as one forecast product). Drives lead-time decay, precipitation boost, and how strongly a model contributes relative to deterministic NWP products.
19
19
20
20
**Home region**:
21
21
The geographic bounding box where a regional model has a structural advantage. Drives the region bonus inside the weighting recipe. Global models have no home region.
Copy file name to clipboardExpand all lines: README.md
+27-19Lines changed: 27 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ Frontend-only (Vue 3 + Vite). Forecasts come straight from [open-meteo.com](http
6
6
7
7
## Features
8
8
9
-
-**11 NWP models**, automatically dropped in/out based on geographic coverage and forecast horizon.
9
+
-**21 forecast models/products**, automatically dropped in/out based on geographic coverage and forecast horizon.
10
10
-**Aggregate-first UI**: temperature + ±1σ confidence band, precipitation bars, daily strip with weather icon / high / low / precip prob / wind.
11
11
-**Confidence score** per timestep — derived from inter-model spread normalised against typical seasonal spread, a model-count penalty, and lead-time decay encoded in the model weights.
12
12
-**Multi-model breakdown** (opt-in) — spaghetti chart of every contributing model with per-model toggles, switchable between temperature, precipitation, precipitation probability, wind speed, and cloud cover.
@@ -22,7 +22,7 @@ Per timestep and per variable:
22
22
2.**Weight them.**
23
23
- Base weight = 1.
24
24
- Region bonus of +0.2 (mid-resolution) or +0.3 (convection-allowing) when the location is inside the model's home region.
25
-
- Lead-time decay per model class: convection-allowing models fade out by 60 h, mid-resolution regionals by 120 h, globals decay gently from 72 h → 0.4× by 240 h.
25
+
- Lead-time decay per model class: convection-allowing models fade out by 60 h, mid-resolution regionals by 120 h, globals decay gently from 72 h → 0.4× by 240 h, and AI plus ensemble-mean products follow global decay with a smaller vote.
26
26
- Variable boost: CAMs get ×1.3 for precipitation, since they explicitly resolve convection.
27
27
3.**Aggregate**:
28
28
-**Temperature / precip / cloud cover / wind speed** → weighted mean + weighted standard deviation.
@@ -50,28 +50,36 @@ Weather codes have no meaningful stdDev, so they use severity-group agreement in
0 commit comments