Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/Calibration.R
\name{BiasCorrection}
\alias{BiasCorrection}
\title{Bias Correction based on the mean and standard deviation adjustment following Torralba et al. (2017) }
\usage{
BiasCorrection(data)
}
\arguments{
\item{data}{a list of s2dverification objects (lists) as output by the \code{Load} function from the s2dverification package, one for each variable.}
\value{
\code{$biasCorrected} {An array with the bias corrected forecasts with same dimensions that data$mod}
}
\description{
This function applies the simple bias adjustment technique described in Torralba et al. (2017). The adjusted forecasts have an equivalent standard deviation and mean to that of the reference dataset.
}
\examples{
# Creation of sample s2dverification objects. These are not complete
# s2dverification objects though. The Load function returns complete objects.
# Example
mod1 <- 1 : (1 * 3 * 4 * 5 * 6 * 7)
dim(mod1) <- c(dataset = 1, member = 3, sdate = 4, ftime = 5, lat = 6, lon = 7)
obs1 <- 1 : (1 * 1 * 4 * 5 * 6 * 7)
dim(obs1) <- c(dataset = 1, member = 1, sdate = 4, ftime = 5, lat = 6, lon = 7)
lon <- seq(0, 30, 5)
lat <- seq(0, 25, 5)
data1 <- list(mod = mod1, obs = obs1, lat = lat, lon = lon)
a <- BiasCorrection(data1)
str(a)
dim(mod1) <-
c(
dataset = 1,
member = 3,
sdate = 4,
ftime = 5,
lat = 6,
lon = 7
)
dim(obs1) <-
c(
dataset = 1,
member = 1,
sdate = 4,
ftime = 5,
lat = 6,
lon = 7
)
lon <- seq(0, 30, 5)
lat <- seq(0, 25, 5)
data1 <- list(
mod = mod1,
obs = obs1,
lat = lat,
lon = lon
)
a1 <- BiasCorrection(data1)
mod2 <- mod1
mod2[1, 2, 1, 1, 1, 1] <- NA
data2 <- list(
mod = mod2,
obs = obs1,
lat = lat,
lon = lon
)
a2 <- BiasCorrection(data2)
obs2 <- obs1
obs2[1, 1, 2, 1, 1, 1] <- NA
data3 <- list(
mod = mod1,
obs = obs2,
lat = lat,
lon = lon
)
a3 <- BiasCorrection(data3)
data4 <- list(
mod = mod2,
obs = obs2,
lat = lat,
lon = lon
)
a4 <- BiasCorrection(data4)
lat2 <- lat
lat2[3] <- NA
data5 <- list(
mod = mod1,
obs = obs1,
lat = lat2,
lon = lon
)
a5 <- BiasCorrection(data5)
lon2 <- lon
lon2[5] <- NA
data6 <- list(
mod = mod1,
obs = obs1,
lat = lat,
lon = lon2
)
a6 <- BiasCorrection(data6)
data7 <- list(
mod = mod1,
obs = obs1,
lat = lat2,
lon = lon2
)
a7 <- BiasCorrection(data7)
data8 <- list(
mod = mod1,
obs = obs2,
lat = lat2,
lon = lon2
)
a8 <- BiasCorrection(data8)
data9 <- list(
mod = mod2,
obs = obs1,
lat = lat2,
lon = lon2
)
a9 <- BiasCorrection(data9)
data10 <- list(
mod = mod2,
obs = obs2,
lat = lat2,
lon = lon2
)
a10 <- BiasCorrection(data10)
}
\references{
Torralba, V., Doblas-Reyes, F. J., MacLeod, D., Christel, I., & Davis, M. (2017). Seasonal climate prediction: A new source of information for the management of wind energy resources. Journal of Applied Meteorology and Climatology, 56(5), 1231-1247.
}
\author{
Verónica Torralba, \email{veronica.torralba@bsc.es}
}