Learn R Programming

rainfarmr (version 0.1)

rainfarm: Perform RainFARM downscaling

Description

The input array is downscaled to finer spatial resolution using the RainFARM stochastic precipitation downscaling method. Orographic correction weights can be applied as described in Terzago et al. (2018) 10.5194/nhess-18-2825-2018. Precipitation can be conserved globally (fglob), using convolution (fsmooth) or over the original coarse-scale boxes.

Usage

rainfarm(r, slope, nf, weights = 1, fglob = FALSE, fsmooth = TRUE,
  verbose = FALSE)

Arguments

r

matrix or array with large-scale field to downscale. Can be a three-dimensional array with multiple frames at different times. Spatial downscaling is performed separately for each element of the third dimension of r.

slope

spatial spectral slope.

nf

refinement factor for spatial downscaling.

weights

matrix with weights for orographic downscaling generated by the rfweights() function.

fglob

logical to conserve global average over domain.

fsmooth

logical to use smoothing for conservation. If neither fsmooth or fglob is set precipitation is conserved over each coarse pixel of the input field.

verbose

logical to provide some progress report.

Value

The downscaled array.

References

Terzago, S. et al. (2018). NHESS 18(11), 2825<U+2013>2840 10.5194/nhess-18-2825-2018; D'Onofrio et al. (2014). J of Hydrometeorology 15, 830-843 10.1175/JHM-D-13-096.1; Rebora et. al. (2006), JHM 7, 724 10.1175/JHM517.1.

Examples

Run this code
# NOT RUN {
# Make some sample synthetic rainfall data
r <- exp(rnorm(4 * 4 * 10))
dim(r) <- c(4, 4, 10)
r[ , , 1]
#           [,1]      [,2]      [,3]      [,4]
# [1,] 1.8459816 1.8536550 2.1600665 1.3102116
# [2,] 1.3851011 1.4647348 0.2708219 0.4571810
# [3,] 0.2492451 0.8227134 0.4790567 1.9320403
# [4,] 0.5985922 3.3065678 2.1282795 0.6849944
# Downscale with spectral slope=1.7 to size 32x32
rd <- rainfarm(r, 1.7, 8, fsmooth=FALSE) 
# Verify that downscaled data maintained original box averages
agg(rd[ , , 1], 4) 
#           [,1]      [,2]      [,3]      [,4]
# [1,] 1.8459816 1.8536550 2.1600665 1.3102116
# [2,] 1.3851011 1.4647348 0.2708219 0.4571810
# [3,] 0.2492451 0.8227134 0.4790567 1.9320403
# [4,] 0.5985922 3.3065678 2.1282795 0.6849944
# }

Run the code above in your browser using DataLab