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_dim and lat_dim parameters).

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')

[Package CSTools version 5.2.0 Index]