The repository contains Julia source code for the arXiv article Evaluation of forecasts by a global data-driven weather model with and without probabilistic post-processing at Norwegian stations.
To setup the environment clone the repository, instantiate the julia project and download the data
git clone [email protected]:jbbremnes/pangu-asr.git
cd pangu-asr
mkdir data # could also be symbolic link to a directory for the data
mkdir data/plots
julia --project=./ 'using Pkg; Pkg.instantiate()'
cd data
wget https://zenodo.org/records/10210204/files/nwp+obs.jld2?download=1
The data is comprised of temperature (2m) and wind speed (10m) observations at 183 Norwegian synop stations and corresponding forecasts generated by the following models
- Pangu-Weather
- ECMWF HRES
- ECMWF ENS reforecast
- MEPS
- ECMWF ENS reforecast control member
- MEPS control member
The data is stored in a single JLD2 file and can be read in Julia by
julia> using JLD2, DataFrames
julia> JLD2.@load "data/nwp+obs.jld2"
2-element Vector{Symbol}:
:data # vector of 6 data frames each with 1_223_264 cases
:models # names of the 6 models
julia> models
6-element Vector{String}:
"pangu"
"hres"
"ens"
"meps"
"ens0"
"meps0"
For further processing the data file should be located in the ./data
directory.
BQN models can be trained separately for parameter and forecast model from the pangu-asr
directory by
julia --project=./ train.jl t2 60 pangu
julia --project=./ train.jl t2 60 hres
julia --project=./ train.jl t2 60 ens
julia --project=./ train.jl t2 60 meps
julia --project=./ train.jl t2 60 ens0
julia --project=./ train.jl t2 60 meps0
julia --project=./ train.jl ws10 60 pangu
julia --project=./ train.jl ws10 60 hres
julia --project=./ train.jl ws10 60 ens
julia --project=./ train.jl ws10 60 meps
julia --project=./ train.jl ws10 60 ens0
julia --project=./ train.jl ws10 60 meps0
For each parameter/forecast model combination 3×3 BQN models are trained. The training takes about 4 hours in total.
Verification statistics can be computed by
julia --threads=auto --project=./ verification.jl
and plots by
julia --project=./ plots.jl