...
- the land coloured in cream
- the coastlines thick black
- use grey grid lines at every 5 degrees.
Seeing what happened
The GRIB file fc_latest_oper.grib contains the latest forecast run preceding the event. Drag it into your view and apply the contouring stored in the wgust_shade Contouring icon to it. You will see the location of the areas heavily hit by the storm.
Part 1: Checking the forecast
In this part we will generate ....
...
With a new Display Window icon define a 2x2 layout so that each plot should contain your view.
Seeing what happened
The GRIB file fc_latest_oper.grib contains the latest forecast run preceding the event. Drag it into the top left map customise it with the wgust_shade Contouring icon. Animate through the fields to see the location of the areas heavily hit by the storm.
Visualising the operational forecast
The GRIB file fc_oper.grib contains the operational forecast for the investigated daterun at 7 August 00 TC (four days before the event). Drag it into the top left right map and customise it with the wgust_shade Contouring icon and the title_oper Text Plotting icon. You will see that the wind storm was not present in the forecast.
...
The GRIB file fc_cf.grib contains the control forecast of the ENS for the investigated date. Drag it into the top left map and customise it with the wgust_shade Contouring iconin the same way as the previous plot. You will see that the wind storm was neither present in this forecast.
...
The GRIB file fc_pf.grib contains the 50 perturbed forecast member of the ENS run at 7 August 00 TC (four days before the event). We will write a macro to compute the mean of these members.
...
Since this GRIB contains several time steps we need to write a loop to compute the ensemble mean for each time step individually. First, define the fieldset that will contain the resulting means:
Code Block |
---|
rese_mean=nil |
We will process the forecasts fields in a loop going through the time steps:
Code Block |
---|
tsLst=[84,90,96]
loop step in tsLst
...your code will go here ...
end loop |
Within the loop, simply first read all the members for the given timestep
Code Block |
---|
f=read(data: g, step: step ) |
Next, compute the probability in as follows:
Code Block |
---|
f=f > val
f=100*mean(f) |
In t
Last, then compute their mean and add it to the resulting fieldset:
Code Block |
---|
e_meanprob = e_meanprob & mean(f) |
We finish the macro by returning the resulting fieldset:
Code Block |
---|
return e_meanprob |
By doing using the return
statement our Macro behaves as if it were a fieldset (GRIB file). Drag it into the top bottom left map and customise it with the wgustprob_shade Contouring icon and the title_prob Text Plotting icon. You will see that the wind storm was neither present in this forecast.
The end of the period should be handled in a similar manner:
ensemble mean hints that high wind speed can happen.
Visualising the ensemble spread
The ensemble spread is the standard deviation of the perturbed forecast members. You can compute in a very similar way to the ensemble mean. The only difference is that this time you need to use the stdev()
function instead of mean(). Now do it.
Drag it into the bottom right map and customise it with the wgust_spread_shade Contouring icon and the spread_mean Text Plotting icon. . You will see that the ensemble ....
Part 2: checking the probabilities
The next step is to estimate the risk of the wind gust being higher than certain thresholds: i.e. we will compute some probabilities. We will write a macro to compute the probability of the wind gust exceeding 20 m/s,
So create a Macro and edit it. First, read the GRIB file with the perturbed forecasts in:
Code Block |
---|
g=read("fc_pf.grib") |
Since this GRIB contains several time steps we need to write a loop to compute the probability for each time step individually. First, define the fieldset that will contain the resulting probabilities:
Code Block |
---|
e_prob=nil |
Next, we define the threshold for wind gust. We will store it in a variable:
Code Block |
---|
val=20 |
Now we can process the fields in a loop going through the time steps:
Code Block |
---|
tsLst=[84,90,96]
loop step in tsLst
...your code will go here ...
end loop |
Within the loop, simply read all the members for the given timestep
Code Block |
---|
f |
Code Block |
f2=read(data: g, datestep: yyyymmdd(run), step: (d2-run)*24 ) |
Computing the difference between the two fields is straightforward:then compute their mean with the mean()
macro function
Code Block |
---|
f=f2-f1 |
Field f
now contains the precipitation forecast for our period. The last line you need to add to the loop's body is plotting the filed into the right plot page:
Code Block |
---|
plot(dw[i],f) |
= mean(f) |
and add it to the resulting fieldset:
Code Block |
---|
e_mean = e_mean & f |
We finish the macro by returning the resulting fieldset:
Code Block |
---|
return e_mean |
By using the return
statement our Macro behaves as if it were a fieldset (GRIB file). Drag it into the bottom left map and customise it with the wgust_shade Contouring icon and the title_mean Text Plotting icon. You will see that the ensemble mean hints that high wind speed can happen.
Part 3: ensemble members
We will create stamp plots
Having done that run the Macro to see if the three forecast fields were correctly plotted.
Plotting the observations
...