rainfarm: Perform RainFARM downscaling

Description Usage Arguments Value Author(s) References Examples

View source: R/rainfarm.R

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) doi: 10.5194/nhess-18-2825-2018. Precipitation can be conserved globally (fglob), using convolution (fsmooth) or over the original coarse-scale boxes.

Usage

1
2
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.

Author(s)

Jost von Hardenberg, j.vonhardenberg@isac.cnr.it

References

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

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# 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

Example output

         [,1]      [,2]      [,3]     [,4]
[1,] 1.238332 2.2143018 5.1915978 1.313837
[2,] 2.818003 3.1525798 0.3106701 2.132777
[3,] 0.161375 0.3159366 3.1050340 1.268187
[4,] 1.724839 0.8885598 4.6973060 1.559259
         [,1]      [,2]      [,3]     [,4]
[1,] 1.238332 2.2143018 5.1915978 1.313837
[2,] 2.818003 3.1525798 0.3106701 2.132777
[3,] 0.161375 0.3159366 3.1050340 1.268187
[4,] 1.724839 0.8885598 4.6973060 1.559259

rainfarmr documentation built on May 1, 2019, 8:02 p.m.