create_indicator: Custom Spatial Early-Warning signals

View source: R/simple_indic.R

create_indicatorR Documentation

Custom Spatial Early-Warning signals

Description

Computation, significance assessment and display of trends of a custom, user-defined indicator.

Usage

create_indicator(fun, taskname = as.character(substitute(fun)))

compute_indicator(mat, fun, taskname = as.character(substitute(fun)), ...)

Arguments

fun

A function that takes a matrix as input and returns a vector of numerical values. If the function returns a named vector, then the names will be used in plots and summaries. The function may also accept extra arguments.

taskname

The task name. A character string used used for plots and textual summaries that describes the indicator (or set of indicators) being computed. If a task name cannot be derived from fun, then default name is used.

mat

A matrix or a list of matrices.

...

Additional arguments being passed to the function fun

Details

spatialwarnings provides "workflow functions", named *_sews, that assist the user in computing, displaying and assessing the significance of indicator values. The functions create_indicator and compute_indicator provides such workflow for any arbitrary function.

create_indicator takes a function 'fun' and returns another function that can be used as an indicator similar to the *_sews functions. The results of this function can be assessed for significance using indictest and trends can be displayed using plot, summary, etc. (see Examples). compute_indicator does the same but without needing an intermediate indicator function.

Value

create_indicator returns a function that can be used in the same way than the other *_sews functions (e.g. generic_sews). This function as well as compute_indicator will return simple_sews_* objects.

See Also

simple_sews

Examples


# Use the maximum patch size as indicator of degradation
maxpatchsize <- function(mat) { 
  max(patchsizes(mat))
}

# Create the indicator function
maxpatch_sews <- create_indicator(maxpatchsize)

# Then work with this function as if it were a function from the *_sews 
# family. 
mp_indic <- maxpatch_sews(forestgap)
summary(mp_indic)

## Not run:  
# Assess significance and display trends
mp_test <- indictest(mp_indic, nulln = 49)
plot(mp_test)

## End(Not run)



# Try spatial coefficient of variation as a spatial EWS. This function can 
# have arguments. 
spatial_cv <- function(mat, subsize) { 
  matc <- coarse_grain(mat, subsize)
  return( sd(matc) / mean(matc) )
}

# Create indicator function
cv_sews <- create_indicator(spatial_cv)

# Compute and display trends
cv_indic <- cv_sews(serengeti, subsize = 3)
plot(cv_indic, along = serengeti.rain)

# We can do the same work in one run using compute_indicator
cv_indic2 <- compute_indicator(serengeti, spatial_cv, subsize = 3)
plot(cv_indic2, along = serengeti.rain)

## Not run:  
indictest(cv_indic, nulln = 99)

## End(Not run)

spatialwarnings documentation built on March 21, 2022, 5:08 p.m.