RFTemp {CSTools} | R Documentation |
Temperature downscaling of a CSTools object using lapse rate correction (reduced version)
Description
This function implements a simple lapse rate correction of a temperature field (a multidimensional array) as input. The input lon grid must be increasing (but can be modulo 360). The input lat grid can be irregularly spaced (e.g. a Gaussian grid) The output grid can be irregularly spaced in lon and/or lat.
Usage
RFTemp(
data,
lon,
lat,
oro,
lonoro,
latoro,
xlim = NULL,
ylim = NULL,
lapse = 6.5,
lon_dim = "lon",
lat_dim = "lat",
time_dim = NULL,
nolapse = FALSE,
verbose = FALSE,
compute_delta = FALSE,
method = "bilinear",
delta = NULL
)
Arguments
data |
Temperature array to downscale. The input array is expected to
have at least two dimensions named "lon" and "lat" by default (these default
names can be changed with the |
lon |
Vector or array of longitudes. |
lat |
Vector or array of latitudes. |
oro |
Array containing fine-scale orography (in m). The destination downscaling area must be contained in the orography field. |
lonoro |
Vector or array of longitudes corresponding to the fine orography. |
latoro |
Vector or array of latitudes corresponding to the fine orography. |
xlim |
Vector with longitude bounds for downscaling; the full input field is downscaled if 'xlim' and 'ylim' are not specified. |
ylim |
Vector with latitude bounds for downscaling. |
lapse |
Float with environmental lapse rate. |
lon_dim |
String with name of longitude dimension. |
lat_dim |
String with name of latitude dimension. |
time_dim |
A vector of character string indicating the name of temporal dimension. By default, it is set to NULL and it considers "ftime", "sdate" and "time" as temporal dimensions. |
nolapse |
Logical, if true 'oro' is interpreted as a fine-scale climatology and used directly for bias correction. |
verbose |
Logical if to print diagnostic output. |
compute_delta |
Logical if true returns only a delta to be used for out-of-sample forecasts. |
method |
String indicating the method used for interpolation: "nearest" (nearest neighbours followed by smoothing with a circular uniform weights kernel), "bilinear" (bilinear interpolation) The two methods provide similar results, but nearest is slightly better provided that the fine-scale grid is correctly centered as a subdivision of the large-scale grid. |
delta |
Matrix containing a delta to be applied to the downscaled input data. The grid of this matrix is supposed to be same as that of the required output field. |
Value
CST_RFTemp() returns a downscaled CSTools object.
RFTemp() returns a list containing the fine-scale longitudes, latitudes and the downscaled fields.
Author(s)
Jost von Hardenberg - ISAC-CNR, j.vonhardenberg@isac.cnr.it
References
Method described in ERA4CS MEDSCOPE milestone M3.2: High-quality climate prediction data available to WP4 here: https://www.medscope-project.eu/the-project/deliverables-reports/ and in H2020 ECOPOTENTIAL Deliverable No. 8.1: High resolution (1-10 km) climate, land use and ocean change scenarios here: https://ec.europa.eu/research/participants/documents/downloadPublic?documentIds=080166e5b6cd2324&appId=PPGMS.
Examples
# Generate simple synthetic data and downscale by factor 4
t <- rnorm(7 * 6 * 4 * 3) * 10 + 273.15 + 10
dim(t) <- c(sdate = 3, ftime = 4, lat = 6, lon = 7)
lon <- seq(3, 9, 1)
lat <- seq(42, 47, 1)
o <- runif(29 * 29) * 3000
dim(o) <- c(lat = 29, lon = 29)
lono <- seq(3, 10, 0.25)
lato <- seq(41, 48, 0.25)
res <- RFTemp(t, lon, lat, o, lono, lato, xlim = c(4, 8), ylim = c(43, 46),
lapse = 6.5, time_dim = 'ftime')