paRao | R Documentation |
It computes the parametric version of Rao's index of quadratic entropy (Q) on different classes of numeric matrices using a moving window algorithm.
paRao(x, area=NULL, field=NULL, dist_m="euclidean", window=9, alpha=1, method="classic", rasterOut=TRUE, lambda=0, na.tolerance=1.0, rescale=FALSE, diag=TRUE, simplify=1, np=1,cluster.type="SOCK", debugging=FALSE)
x |
input data may be a matrix, a Spatial Grid Data Frame, a RasterLayer or a list of these objects. |
area |
input vector area layer for area-based calculation. |
field |
column name of the vector area layer to use to calculate the index. |
dist_m |
define the type of distance to be calculated between numerical categories. |
window |
the side of the square moving window, it must be a vector of odd numeric values greater than 1 to ensure that the target pixel is in the centre of the moving window. Default value is 3. window can be a vector with length greater than 1, in this case Rao's index will be calculated over x for each value in the vector. |
alpha |
weight for the distance matrix. If |
method |
Currently there are two ways to calculate the parametric version of Rao's index. If |
.
rasterOut |
Boolean, if TRUE the output will be a RasterLayer object with x as a template. |
lambda |
the value of the lambda of Minkowski's distance. Considered only if |
na.tolerance |
Numeric value (0.0-1.0) which indicates the proportion of NA values that will be tolerated to calculate Rao's index in each moving window over x. If the relative proportion of NA's in a moving window is bigger than |
rescale |
Boolean. Considered only if |
diag |
Boolean. If TRUE then the diagonal of the distance matrix is filled with 0's, otherwise with NA's. If |
simplify |
Number of decimal places to be retained to calculate distances in Rao's index. |
np |
the number of processes (cores) which will be spawned. Default value is 2. |
cluster.type |
the type of cluster which will be created. The options are "MPI" (which calls "makeMPIcluster"), "FORK" and "SOCK" (which call "makeCluster"). Default type is "SOCK". |
debugging |
a boolean variable set to FALSE by default. If TRUE, additional messages will be printed. For debugging only. |
The parametric Rao's Index (Q) is an extension of Rao's Index which considers a generalised mean between distances. The generalised formula for the parametric Rao's index is Q_a = (∑_{i,j=1}^{N}{1/N^2}\times{d^{α}_{j,j}})^{1/{α}}. Where N is the number of numerical categories, i and j are pair of numerical categories in the same moving window and alpha is a weight given to distances. In the "multidimension" Rao's index, first the distances among categories are calculated considering more than one layer, then the pairwise distance between each pair of numerical categories is multiplied to the square of the size of the moving window (this is somewhat the same as to calculate the variance of the multidimensional distance [1].).
The theoretical minimum of Rao's Q is 0, when all categories in a window have distance 0. If the distance chosen to calculate Rao's Index ranges between 0 and 1, the maximum value of Rao's Index equals the Simpson Index of Diversity 1-1/S_i where S is the number of categories in window i (given alpha=1).
A list of matrices of dimension dim(x)
with length equal to the length of alpha. If rasterOut=TRUE
and x
is a RasterLayer, then the output is a list of RasterLayer objects.
Matteo Marcantonio marcantoniomatteo@gmail.com
Duccio Rocchini duccio.rocchini@unibo.it
[1] Rocchini, D., M. Marcantonio, and C. Ricotta (2017). Measuring Rao’s Q diversity index from remote sensing: An open source solution. Ecological Indicators. 72: 234–238.
# Minimal example; compute classic Rao's index a <- matrix(c(10,10,10,20,20,20,20,30,30),ncol=3,nrow=3) out <- paRao(x=a,window=3,dist_m="euclidean",na.tolerance=1,alpha=1) # Compute classic Rao's index for two moving window sizes a <- matrix(c(10,10,10,20,20,20,20,30,30),ncol=3,nrow=3) out <- paRao(x=a,window=c(3,5),dist_m="euclidean",na.tolerance=1,alpha=1) # Compute Rao's index with a vector of alpha values for two moving windows out <- paRao(x=a,window=3,dist_m="euclidean",na.tolerance=1,alpha=1:5) # Compute multidimensional Rao's index with alpha = 1 a <- matrix(c(10,10,10,20,20,20,20,30,30),ncol=3,nrow=3) b <- matrix(c(100,100,100,200,200,200,200,300,300),ncol=3,nrow=3) out <- paRao(x=list(a,b),window=3,dist_m="euclidean", na.tolerance=1,alpha=1,method="multidimension")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.