calMVA: Calibration of seasonal climate forecasts.

View source: R/calMVA.R

calMVAR Documentation

Calibration of seasonal climate forecasts.

Description

This function implements the method 1 described in Torralba et al. 2017, which has been previously applied in the context of seasonal forecasting to correct temperature and precipitation in Leung et al. 1999. The ensemble mean produced by this method has the same mean and standard deviation as the observations. It is based on the assumption that both the reference and predicted distributions are approximated well by a Gaussian (normal) distribution.

Usage

calMVA(fcst.grid, obs.grid, crossval = TRUE)

Arguments

fcst.grid

climate4R grid. Forecasts to be calibrated (typically on a monthly/seasonal basis). At the moment, only gridded data are supported.

obs.grid

climate4R grid. Reference observations the forecasts are calibrated towards (typically on a monthly/seasonal basis).

crossval

Logical. TRUE (default) for leave-one-out cross-validation. FALSE for not cross-validation.

Value

climate4R grid. Calibrated forecasts.

Author(s)

R. Manzanas and V. Torralba.

References

  • Torralba, V., F.J. Doblas-Reyes, D. MacLeod, I. Christel, and M. Davis, 2017: Seasonal Climate Prediction: A New Source of Information for the Management of Wind Energy Resources. J. Appl. Meteor. Climatol., 56, 1231–1247, https://doi.org/10.1175/JAMC-D-16-0204.1

  • Leung, L.R., A.F. Hamlet, D.P. Lettenmaier, and A. Kumar, 1999: Simulations of the ENSO hydroclimate signals in the Pacific Northwest Columbia River basin. Bull. Amer. Meteor. Soc., 80, 2313–2329, doi:10.1175/1520-0477(1999)080,2313: SOTEHS.2.0.CO;2

See Also

Other calibration: calCCR(), calLM(), calNGR(), calRPC()

Examples

{
## loading seasonal forecasts (CFS) and observations (NCEP) of boreal winter temperature over Iberia
require(climate4R.datasets)
data("CFS_Iberia_tas"); fcst = CFS_Iberia_tas
data("NCEP_Iberia_tas"); obs = NCEP_Iberia_tas
## passing from daily data to seasonal averages
fcst = aggregateGrid(fcst, aggr.y = list(FUN = "mean", na.rm = TRUE))
obs = aggregateGrid(obs, aggr.y = list(FUN = "mean", na.rm = TRUE))
## interpolating forecasts to the observations' resolution
fcst = interpGrid(fcst, new.coordinates = getGrid(obs))
## applying calibration
fcst.cal = calMVA(fcst, obs, crossval = TRUE)
## plotting climatologies
library(visualizeR)
spatialPlot(makeMultiGrid(climatology(obs),
                         climatology(fcst, by.member = FALSE),
                         climatology(fcst.cal, by.member = FALSE)),
           backdrop.theme = "coastline",
           layout = c(3, 1),
           names.attr = c("NCEP", "CFS (raw)", "CFS (calibrated)"))
}

SantanderMetGroup/calibratoR documentation built on July 8, 2023, 2:49 p.m.