Skip to content

4. Downscaling

abdelkaderm edited this page Sep 23, 2020 · 3 revisions

The downscaling is based on the identification of statistical relationships between large-scale spatial climate patterns and local climate variations for annual, monthly and daily data series. The main function used here is DS. The function calibrates a linear regression model using step-wise screening and common EOFs (EOF) as basis functions. It then evaluates the statistical relationship and predicts the local climate parameter from the predictor fields.

The main command line here is

> DS(y,X,...)

where y represent the predictand (e.g. 2m-surface temperature at a station) and X represents the predictors (e.g. eof of global mean temperature field). Various derivative functions have been implemented such as DS.t2m() and DS.precip() for downscaling temperature and precipitation, respectively.

Examples

Example 1 . Doing a simple ESD analysis

> X <- t2m.ERA40(lon=c(-40,50),lat=c(40,75))
# Load temperature data at Oslo
> data(Oslo)
# X <- OptimalDomain(X,Oslo) # Not yet implemented !
# Compute the eofs for January.
> eof <- EOF(X,it='jan')
# Downscale Oslo temperature series based on ERA40 mean temperature. 
> ds <- DS(Oslo,eof)
# Plot the results
> plot(ds)

Rplot

# List the names of the output attributes
> names(attributes(ds))

screenshot

 [1] "index"              "class"              "names"             
 [4] "location"           "variable"           "unit"              
 [7] "longitude"          "latitude"           "altitude"          
[10] "country"            "longname"           "station_id"        
[13] "quality"            "calendar"           "source"            
[16] "URL"                "type"               "aspect"            
[19] "reference"          "info"               "method"            
[22] "history"            "count"              "calibration_data"  
[25] "fitted_values"      "original_data"      "model"             
[28] "mean"               "eof"                "pattern"           
[31] "dimensions"         "history.predictand" "evaluation"  
# Look at the residual of the ESD analysis
> res <- as.residual(ds)
> plot(res)
     
# Check the residual: dependency to the global mean temperature?
> T2m <- (t2m.ERA40())
> yT2m <- merge.zoo(y,T2m)
> plot(coredata(yT2m[,1]),coredata(yT2m[,2]))