Your Seasonal Forecast User Guide
Your Seasonal Forecast
Items
Tercile-based rainfall forecast (1-month to 3-month lead times) derived from calibrated ACCESS-S1 model output.
Current cumulative rainfall for both summer - December to March (DJFM) and growing season - April to November (AMJJASON)
Forecast confidence levels based on calibrated ACCESS-S1 hindcast data.
Potential applications
Location-based forecasts for a farm site or town where the user needs seasonal climate information translated to their local climate and decision-making processes.
Description
Model details
The seasonal rainfall forecast is derived from the Bureau of Meteorology’s ACCESS-S1 model at 0.05 degree grid (approximately 5km x 5km resolution) for the Australian continent. The model output at this spatial resolution is a result of a calibration algorithm referred to as quantile-quantile matching (McIntosh and Brown, 2016). On the date the forecast is generated i.e. forecast start date, model runs from the previous three days, each containing 11 ensemble members, are aggregated to create a single forecast, consisting of 33 ensemble members.
The seasonal climate forecast workflow described here generates a new set of forecast data weekly for a period of up to three months into the future and includes a 1-month, 2-month and 3-month lead time forecast (Figure 1). For example, a forecast generated for the 16/01/2020 will include cumulative rainfall for 1-month (16/01/2020 to 15/02/2020), 2-month (16/01/2020 to 15/03/2020) and 3-month (16/01/2020 to 15/04/2020) lead times (Figure 1). These monthly forecasts are timestamped at the beginning of the month that they represent, i.e. for the previous example data points will exist on 16/1/2020, 16/02/2020 and 16/3/2020 representing the three-month window.
Figure 1: Schematic of the configuration of model and observed data and a corresponding analyses used to create the forecast product. Each ensemble member (model) or historic year (observed) is available at a daily time-step and aggregated into monthly cumulative totals. These monthly data represent three different lead times: 1-month, 2-month and 3-month. The analyses takes these aggregated datasets and computes their percentiles for both observed and model sources. The observed percentiles (0, 33rd, 66th and 100th percentiles) equivalent to the the three tercile categories are used to bin the ensemble members into their respective category i.e. tercile 1, 2 or 3. *These acronyms denote the index labels used in the data stream and are detailed below.
Item 1: Tercile-based rainfall forecast
Seasonal climate modelling produces multiple realisations of possible futures (separate ensemble members), which are usually combined into a probabilistic output (see Figure 1). The model ensembles are binned into tercile categories based on historic climatology for the given grid cell and time period. Tercile categories represent the entire historic distribution (1960 – 2018) of potential rainfall values split into equal thirds. For example, for a 1-month lead time forecast initiated on 1st of October, each ensemble member is binned into a tercile category defined by observed rainfall from 1960 through to 2018 (for the month of October). If the rainfall for a given ensemble member is:
1) below the 33rd percentile it is binned as tercile 1 - equivalent to relatively 'dry' conditions;
2) between the 33rd and 66th percentile it is binned as tercile 2 - equivalent to relatively 'average' conditions;
3) above the 66th percentile it is binned as tercile 3 - equivalent to relatively 'wet' conditions.
The outcome of binning all 33 ensemble members in their respective tercile categories determines the forecast result. If more than half of the 33 ensemble members of an ACCESS-S1 forecast fall within any given tercile category for a given month, it is deemed a ‘conclusive’ forecast for either tercile 1 ('dry'), 2 ('average') or 3 ('wet'). Instances where no tercile category has a majority of ensemble members is deemed an ‘inconclusive’ forecast indicating no clear model signal. Thus, this forecasting method produces four categories: tercile 1, tercile 2, tercile 3 and 'inconclusive'. In addition to these categories, two other types output are provided. Firstly, the proportion of model ensembles in each tercile category is given as an indication of overall model spread. Secondly, percentile values of rainfall based on the 33 ensemble members are provided for the: 5th, 33rd, 66th and 95th percentiles (Figure 1).
The rationale for applying this tercile-based categorical forecast approach is that it provides an indication of model outcomes across parts of the distribution broadly corresponding to dry, average and wet conditions. Framing the forecast in this way can be relevant to on-farm decision-making because it provides greater clarity over a median-based category forecast.
Item 2: Current cumulative rainfall for summer and growing season
This item relates to cumulative rainfall observations for the current year divided into summer and growing season components. These data are useful for tracking typical winter cropping (growing season) or summer (fallow season) rainfall amounts relative to long-term historic observations. The current cumulative sum of monthly rainfall for each of the summer and growing seasons are provided; December to March (DJFM), and April to November (AMJJASON). The current rainfall conditions provide an important guide to potential users on how the current season is progressing. They provide an important context to the seasonal rainfall forecast data in terms of 'what are the recent and current conditions?'
Item 3: Forecast Confidence Levels
Confidence in model performance accuracy is also provided and based on an analysis of the accuracy of the model over a hindcast period from 1990 – 2012. Output from the ACCESS-S1 model during this hindcast period has been calibrated using the same approach as the forecast data for the grid cell of interest. Confidence in the model for a given calendar month and lead time is based on the number of times the model has incorrectly predicted the tercile category that was observed for that period of interest. For example for an October forecast in 2001 at a 1-month lead time, if the categorised forecast (following the method described above) produces a forecast of tercile 1 and observed rainfall for that period was actually tercile 3 - this forecast is deemed to be a 'false alarm' or incorrect. Figure 2 provides a contingency table that illustrates the scheme for defining correct and false alarm forecasts. For ease of communication, model confidence is categorised into three levels: low, medium and high, with their specific definitions provided in the location metadata. Along with the skill category, a % correct and % false alarm values for each month of the year are also provided.
Figure 2: Contingency table for defining correct and false alarm forecasts based on tercile categories generated for observed and model data.
Update rate
Currently the Your Seasonal Forecast data is being updated weekly on Sunday evening. The confidence levels information is created when the forecasting system is initially configured for each specific location. It may be updated occasionally.
Visualisation example
Figure 3: A visualisation example of the different elements that might be provided to a user with respect to the Your Seasonal Forecast product.
The visualisation above provides an example of three month rainfall forecast for Boorowa. The same type of outlook could easily be produced for a 1-month or 2-month lead time forecast. The forecast visualisation depicted here is produced using the following data streams (1. and 2.) and locations (3.) associated with the categorical seasonal climate forecast:
cscf-r.csiro-trial_user.boorowa.categorised_forecast
cscf-r.csiro-trial_user.boorowa.monthly_rain_to_date
cscf-r.csiro-trial_user.boorowa
Annotations (labelled in red) can be linked to the datastreams and location metadata that make up this product.
A. The season to date information is given in the 'monthly_rain_to_date' datastream and provides both the summer cumulative rainfall (Dec-Mar) total and its corresponding tercile category (based on long-term data) as well as the growing season cumulative totals (Apr-Nov). In this example, only April rainfall is reported.
B. These data are contained in the 'categorised_forecast datastream'. It includes: i) 3-month lead time rainfall forecast in terms of the category of the model output (e.g. 3 denotes a tercile 3 forecast), ii) the rainfall amount that the forecast category is based on (tercile 3 for the May-Jul period lies between 78 to 167 mm) and, iii) the percentage of model ensembles within each tercile category.
C. The skill category (low, medium and high) data are provided within the Location usermetadata property.
Data Formats
Item1: Categorised_forecast:
Each weekly prediction of the categorised forecast consists of a 14-element array, the data stream has JSON metadata that describes each of these 14 elements. This JSON metadata is summarised in the table below, and copied at the end of this user guide in full.
element id | name | description |
---|---|---|
0 | obs.p0 | Observed Rainfall at 0 percentile We have always gotten at least this much rain for this month of the year in this location in mm. |
1 | obs.p05 | Observed Rainfall at 5th percentile Only 5% of the seasons we get less than this much rainfall for this month of the year in this location in mm. |
2 | obs.p33 | Observed Rainfall at 33rd percentile 33% of the seasons we get less than this much rainfall for this month of the year in this location in mm. |
3 | obs.p66 | Observed Rainfall at 66th percentile 66% of the seasons we get less than this much rainfall for this month of the year in this location in mm. |
4 | obs.p95 | Observed Rainfall at 95th percentile 95% of the seasons we get less than much rainfall for this month of the year in this location in mm. |
5 | obs.p100 | Observed Rainfall at 100th percentile We have never gotten more than this much rain for this month of the year in this location in mm. |
6 | frcst.p.t1 | Proportion of ensembles in tercile 1 The proportion (0->1) of the 33 ACCESS-S1 ensembles that predict rainfall will be consistent with what you see in the one third of years that have the lowest rainfall for this month. |
7 | frcst.p.t2 | Proportion of ensembles in tercile 2 The proportion (0->1) of the 33 ACCESS-S1 ensembles that predict rainfall will be consistent with what you see in the one third of years that have rainfall in the middle of the range of what is typical for this month. |
8 | frcst.p.t3 | Proportion of ensembles in tercile 3 The proportion (0->1) of the 33 ACCESS-S1 ensembles that predict rainfall will be consistent with what you see in the one third of years that have the highest rainfall for this month. |
9 | frcst_cat | Forecast Category (0..4) Categorised prediction for rainfall for this month at this location - see description for more details. For a forecast to be labelled: 1, 2 and 3, at least 50% of the 33 ACCESS-S1 model ensembles must have fallen into one of these tercile-based categories. The Tercile 1 category, means the prediction is on the lower end i.e. 'dry' for the amount of rainfall, tercile 2 means the prediction is for the 'middle of the road' amount of rainfall i.e. 'average', and tercile 3 means the prediction is on the higher end for rainfall i.e. 'wet'. Inconclusive means that no one tercile category had more than 50% of the 33 ACCESS-S1 model ensembles and therefore the model tended to show relatively large degree of spread for that forecast month. |
10 | frcst.p05 | Forecast Rainfall at 5th percentile |
11 | frcst.p33 | Forecast Rainfall at 33rd percentile The ACCESS-S1 forecast ensembles indicate that there is a 33% chance of less than this much rainfall for this month in this location in mm. |
12 | frcst.p66 | Forecast Rainfall at 66th percentile The ACCESS-S1 forecast ensembles indicate that there is a 66% chance of less than this much rainfall for this month in this location in mm. |
13 | frcst.p95 | Forecast Rainfall at 95th percentile The ACCESS-S1 forecast ensembles indicate that there is a 95% chance of less than this much rainfall for this month in this location in mm. |
Item 2: Monthly_rain_to_date:
Each weekly prediction also updates the rainfall to date for the month. This rainfall is provided as a 4-element array, the data stream also has JSON metadata that describes these 4 elements. This JSON metadata is summarised in the table below, and copied at the end of this user guide in full.
Element id | Name | Description |
---|---|---|
0 | monthly_rain | Observed monthly Rainfall for the most recently completed month. |
1 | monthly_rain_p | Observed monthly rainfall percentile for the most recent month based on the historic period (1960-2018) |
2 | cumulative_monthly_rain | Cumulative monthly rainfall for gsr (AMJJASON) or summer periods (DJFM) depending on the most recently completed month. For example for a forecast initiated on the 10th July, the data stream would have the cumulative monthly rainfall for the growing season based on months AMJ. |
3 | cumulative_monthly_rain_p | Cumulative monthly rainfall percentiles for gsr (AMJJASON) or summer periods (DJFM). A percentile value based on the 'cumulative_monthly_rain' element generated from the historic period (1960-2018) |
Item 3: Forecast confidence:
The forecast confidence is provided as JSON metadata, it is used directly (rather than needing to be interpreted from a vector stream). The key components are summarised in the table below, and an example is copied at the end of this user guide in full.
Name | Description |
---|---|
skill_data | A 12 element list indicating the skill of the model for each month of the year. |
correct_by_month | A 12 element list indicating the percentage of hindcast years the model is correct for each month. |
incorrect_by_month | A 12 element list indicating the percentage of hindcast years the model is incorrect/false alarms for each month. |
JSON Datastream Metadata Examples
Categorised_forecast:
{
"version": [
1
],
"mappings": [{
"i": 0,
"id": "obs.p0",
"label": "Observed Rainfall at 0th percentile",
"group": "observed",
"percentile": 0,
"categories": null
},
{
"i": 1,
"id": "obs.p05",
"label": "Observed Rainfall at 5th percentile",
"group": "observed",
"percentile": 0.05,
"categories": null
},
{
"i": 2,
"id": "obs.p33",
"label": "Observed Rainfall at 33rd percentile",
"group": "observed",
"percentile": 0.33,
"categories": null
},
{
"i": 3,
"id": "obs.p66",
"label": "Observed Rainfall at 66th percentile",
"group": "observed",
"percentile": 0.66,
"categories": null
},
{
"i": 4,
"id": "obs.p95",
"label": "Observed Rainfall at 95th percentile",
"group": "observed",
"percentile": 0.95,
"categories": null
},
{
"i": 5,
"id": "obs.p100",
"label": "Observed Rainfall at 100th percentile",
"group": "observed",
"percentile": 1,
"categories": null
},
{
"i": 6,
"id": "frcst.p.t1",
"label": "Proportion of ensembles in tercile 1",
"group": "proportion_ensemble",
"categories": null
},
{
"i": 7,
"id": "frcst.p.t2",
"label": "Proportion of ensembles in tercile 2",
"group": "proportion_ensemble",
"categories": null
},
{
"i": 8,
"id": "frcst.p.t3",
"label": "Proportion of ensembles in tercile 3",
"group": "proportion_ensemble",
"categories": null
},
{
"i": 9,
"id": "frcst_cat",
"label": "Forecast Category",
"group": "forecast_category",
"categories": [{
"value": 0,
"label": "Inconclusive"
},
{
"value": 1,
"label": "Tercile 1"
},
{
"value": 2,
"label": "Tercile 2"
},
{
"value": 3,
"label": "Tercile 3"
}
]
},
{
"i": 10,
"id": "frcst.p05",
"label": "Forecast Rainfall at 5th percentile",
"group": "forecast",
"percentile": 0.05,
"categories": null
},
{
"i": 11,
"id": "frcst.p33",
"label": "Forecast Rainfall at 33rd percentile",
"group": "forecast",
"percentile": 0.33,
"categories": null
},
{
"i": 12,
"id": "frcst.p66",
"label": "Forecast Rainfall at 66th percentile",
"group": "forecast",
"percentile": 0.66,
"categories": null
},
{
"i": 13,
"id": "frcst.p95",
"label": "Forecast Rainfall at 95th percentile",
"group": "forecast",
"percentile": 0.95,
"categories": null
}
]
},]] ></ac:plain-text-body></ac:structured-macro><pre class="ng-binding"><br /></pre><h4><u>Monthly_rain_to_date:</u></h4><ac:structured-macro ac:name="code" ac:schema-version="1" ac:macro-id="3327f7bf-7303-41ba-961e-203abeee7926"><ac:parameter ac:name="language">json</ac:parameter><ac:parameter ac:name="collapse">true</ac:parameter><ac:plain-text-body><![CDATA[{
"version": [
1
],
"mappings": [{
"i": 0,
"id": "monthly_rain",
"label": "Observed monthly Rainfall ",
"unit": "mm"
},
{
"i": 1,
"id": "monthly_rain_p",
"label": "Observed Monthly Rainfall Percentile",
"unit": "percentile"
},
{
"i": 2,
"id": "cumulative_monthly_rain",
"label": "Cumulative monthly rainfall for gsr (AMJJASON) or summer periods (DJFM)",
"unit": "mm"
},
{
"i": 3,
"id": "cumulative_monthly_rain_p",
"label": "Cumulative monthly rainfall percentiles for gsr (AMJJASON) or summer periods (DJFM)",
"unit": "percentile"
}
]
}]] ></ac:plain-text-body></ac:structured-macro><pre class="ng-binding"><br /></pre><h4><u>Forecast Confidence:</u></h4><ac:structured-macro ac:name="code" ac:schema-version="1" ac:macro-id="40180331-0011-4140-85f9-77b5b94c077e"><ac:parameter ac:name="language">json</ac:parameter><ac:parameter ac:name="collapse">true</ac:parameter><ac:plain-text-body><![CDATA[{
"skill_data": {
"score_by_month": {
"lead_time": {
"month1": [
2,
2,
2,
2,
2,
1,
2,
3,
2,
2,
1,
1
],
"month2": [
2,
2,
2,
2,
1,
2,
2,
2,
1,
2,
1,
2
],
"month3": [
1,
2,
2,
2,
1,
1,
2,
2,
2,
3,
1,
1
]
}
},
"score_by_month_legend": [{
"value": 1,
"label": "Low"
},
{
"value": 2,
"label": "Medium"
},
{
"value": 3,
"label": "High"
}
],
"correct_by_month": {
"lead_time": {
"month1": [
52.1739,
43.4783,
13.0435,
26.087,
34.7826,
26.087,
26.087,
39.1304,
34.7826,
56.5217,
26.087,
30.4348
],
"month2": [
43.4783,
21.7391,
21.7391,
21.7391,
30.4348,
34.7826,
30.4348,
39.1304,
30.4348,
34.7826,
17.3913,
34.7826
],
"month3": [
17.3913,
43.4783,
26.087,
21.7391,
39.1304,
21.7391,
39.1304,
30.4348,
21.7391,
34.7826,
26.087,
8.6957
]
}
},
"correct_by_month_legend": [
[
"value: percentage"
]
],
"incorrect_by_month": {
"lead_time": {
"month1": [
13.0435,
4.3478,
4.3478,
8.6957,
17.3913,
17.3913,
4.3478,
0,
13.0435,
4.3478,
17.3913,
21.7391
],
"month2": [
13.0435,
8.6957,
8.6957,
13.0435,
17.3913,
8.6957,
4.3478,
4.3478,
13.0435,
13.0435,
13.0435,
8.6957
],
"month3": [
13.0435,
4.3478,
13.0435,
13.0435,
17.3913,
17.3913,
13.0435,
8.6957,
13.0435,
0,
21.7391,
13.0435
]
}
},
"incorrect_by_month_legend": [
[
"value: percentage"
]
]
},
"skill_version": [
"Skill_Score_v03"
],
"skill_notes1": [
"Skill scores defined using proportion of hindcasts incorrect and correct minus inconclusive hindcasts. If incorrect > 1 in 4.5 years; skill score = low. If incorrect < 1 in 4.5 years and > 1 in 20 years; skill score = med. If incorrect < 1 in 20 years; skill score = high. If incorrect score > 1 in 4.5 years & correct > 1 in 1.5 years, skill score = med."
],
"skill_datasource": {
"hindcasts": [
"Hindcasts: ACCESS-S1 v03. Calibrated to 5km x 5km using quantile-quantile matching approach."
],
"obs": [
"SILO grid 5km x 5km"
],
"skill_table": [
"0001_boorowa_skill_summary.csv"
]
},
"skill_updated_on": [
"2020-05-15 17:26:31"
]
}]] ></ac:plain-text-body></ac:structured-macro><p class="auto-cursor-target"><br /></p>
Monthly_rain_to_date:
{
"version": [
1
],
"mappings": [{
"i": 0,
"id": "monthly_rain",
"label": "Observed monthly Rainfall ",
"unit": "mm"
},
{
"i": 1,
"id": "monthly_rain_p",
"label": "Observed Monthly Rainfall Percentile",
"unit": "percentile"
},
{
"i": 2,
"id": "cumulative_monthly_rain",
"label": "Cumulative monthly rainfall for gsr (AMJJASON) or summer periods (DJFM)",
"unit": "mm"
},
{
"i": 3,
"id": "cumulative_monthly_rain_p",
"label": "Cumulative monthly rainfall percentiles for gsr (AMJJASON) or summer periods (DJFM)",
"unit": "percentile"
}
]
}
Forecast Confidence:
{
"skill_data": {
"score_by_month": {
"lead_time": {
"month1": [
2,
2,
2,
2,
2,
1,
2,
3,
2,
2,
1,
1
],
"month2": [
2,
2,
2,
2,
1,
2,
2,
2,
1,
2,
1,
2
],
"month3": [
1,
2,
2,
2,
1,
1,
2,
2,
2,
3,
1,
1
]
}
},
"score_by_month_legend": [{
"value": 1,
"label": "Low"
},
{
"value": 2,
"label": "Medium"
},
{
"value": 3,
"label": "High"
}
],
"correct_by_month": {
"lead_time": {
"month1": [
52.1739,
43.4783,
13.0435,
26.087,
34.7826,
26.087,
26.087,
39.1304,
34.7826,
56.5217,
26.087,
30.4348
],
"month2": [
43.4783,
21.7391,
21.7391,
21.7391,
30.4348,
34.7826,
30.4348,
39.1304,
30.4348,
34.7826,
17.3913,
34.7826
],
"month3": [
17.3913,
43.4783,
26.087,
21.7391,
39.1304,
21.7391,
39.1304,
30.4348,
21.7391,
34.7826,
26.087,
8.6957
]
}
},
"correct_by_month_legend": [
[
"value: percentage"
]
],
"incorrect_by_month": {
"lead_time": {
"month1": [
13.0435,
4.3478,
4.3478,
8.6957,
17.3913,
17.3913,
4.3478,
0,
13.0435,
4.3478,
17.3913,
21.7391
],
"month2": [
13.0435,
8.6957,
8.6957,
13.0435,
17.3913,
8.6957,
4.3478,
4.3478,
13.0435,
13.0435,
13.0435,
8.6957
],
"month3": [
13.0435,
4.3478,
13.0435,
13.0435,
17.3913,
17.3913,
13.0435,
8.6957,
13.0435,
0,
21.7391,
13.0435
]
}
},
"incorrect_by_month_legend": [
[
"value: percentage"
]
]
},
"skill_version": [
"Skill_Score_v03"
],
"skill_notes1": [
"Skill scores defined using proportion of hindcasts incorrect and correct minus inconclusive hindcasts. If incorrect > 1 in 4.5 years; skill score = low. If incorrect < 1 in 4.5 years and > 1 in 20 years; skill score = med. If incorrect < 1 in 20 years; skill score = high. If incorrect score > 1 in 4.5 years & correct > 1 in 1.5 years, skill score = med."
],
"skill_datasource": {
"hindcasts": [
"Hindcasts: ACCESS-S1 v03. Calibrated to 5km x 5km using quantile-quantile matching approach."
],
"obs": [
"SILO grid 5km x 5km"
],
"skill_table": [
"0001_boorowa_skill_summary.csv"
]
},
"skill_updated_on": [
"2020-05-15 17:26:31"
]
}