Title: | Implements Generic Composite Similarity Measure |
---|---|
Description: | Provides implementation of the generic composite similarity measure (GCSM) described in Liu et al. (2020) <doi:10.1016/j.ecoinf.2020.101169>. The implementation is in C++ and uses 'RcppArmadillo'. Additionally, implementations of the structural similarity (SSIM) and the composite similarity measure based on means, standard deviations, and correlation coefficient (CMSC), are included. |
Authors: | Yadong Liu [aut, cre] |
Maintainer: | Yadong Liu <[email protected]> |
License: | MIT + file LICENSE |
Version: | 0.1.1.9000 |
Built: | 2024-11-21 06:21:38 UTC |
Source: | https://github.com/liuyadong/gcsm |
Compute composite measures, GCSM or CMSC, between two vectors.
cmsc( x, y, rescale = FALSE, xmin = NA_real_, xmax = NA_real_, ymin = NA_real_, ymax = NA_real_, comp = "si" ) cmsc_e1( x, y, rescale = FALSE, xmin = NA_real_, xmax = NA_real_, ymin = NA_real_, ymax = NA_real_, comp = "si" ) cmsc_e2( x, y, rescale = FALSE, xmin = NA_real_, xmax = NA_real_, ymin = NA_real_, ymax = NA_real_, comp = "si" ) gcsm( x, y, rescale = FALSE, xmin = NA_real_, xmax = NA_real_, ymin = NA_real_, ymax = NA_real_, comp = "si" )
cmsc( x, y, rescale = FALSE, xmin = NA_real_, xmax = NA_real_, ymin = NA_real_, ymax = NA_real_, comp = "si" ) cmsc_e1( x, y, rescale = FALSE, xmin = NA_real_, xmax = NA_real_, ymin = NA_real_, ymax = NA_real_, comp = "si" ) cmsc_e2( x, y, rescale = FALSE, xmin = NA_real_, xmax = NA_real_, ymin = NA_real_, ymax = NA_real_, comp = "si" ) gcsm( x, y, rescale = FALSE, xmin = NA_real_, xmax = NA_real_, ymin = NA_real_, ymax = NA_real_, comp = "si" )
x |
A vector. |
y |
The other vector. |
rescale |
Rescale or not before computation. |
xmin , xmax , ymin , ymax
|
Normalization parameters. If |
comp |
Variable to return. If |
These functions compute composite measures between vectors. Missing values
are omitted. Normalization parameters are used to rescale x
and y
, and
determine the global minimum (min) and maximum (max). If rescale
is
TRUE
, x
and y
are rescaled to (x-xmin)/(xmax-xmin)
and
(y-ymin)/(ymax-ymin)
; and set min=0
, max=1
. If FALSE
,
min=min(xmin,ymin)
, max=max(xmax,ymax)
.
A number.
x = runif(9) gcsm(x, x) cmsc(x, x) # mean shift gcsm(x, x - 0.2, xmin = 0, xmax = 1, ymin = 0, ymax = 1) cmsc(x, x - 0.2, xmin = 0, xmax = 1, ymin = 0, ymax = 1) gcsm(x, x + 0.2, xmin = 0, xmax = 1, ymin = 0, ymax = 1) cmsc(x, x + 0.2, xmin = 0, xmax = 1, ymin = 0, ymax = 1) ## dissimilarity y = 1 - x # y is the perfect antianalog of x gcsm(y, x) gcsm(y, x - 0.2, xmin = 0, xmax = 1, ymin = 0, ymax = 1) gcsm(y, x + 0.2, xmin = 0, xmax = 1, ymin = 0, ymax = 1) # random noise noise = rnorm(9, mean = 0, sd = 0.2) gcsm(x, x + noise, xmin = 0, xmax = 1, ymin = 0, ymax = 1) cmsc(x, x + noise, xmin = 0, xmax = 1, ymin = 0, ymax = 1) ## dissimilarity gcsm(y, x + noise, xmin = 0, xmax = 1, ymin = 0, ymax = 1)
x = runif(9) gcsm(x, x) cmsc(x, x) # mean shift gcsm(x, x - 0.2, xmin = 0, xmax = 1, ymin = 0, ymax = 1) cmsc(x, x - 0.2, xmin = 0, xmax = 1, ymin = 0, ymax = 1) gcsm(x, x + 0.2, xmin = 0, xmax = 1, ymin = 0, ymax = 1) cmsc(x, x + 0.2, xmin = 0, xmax = 1, ymin = 0, ymax = 1) ## dissimilarity y = 1 - x # y is the perfect antianalog of x gcsm(y, x) gcsm(y, x - 0.2, xmin = 0, xmax = 1, ymin = 0, ymax = 1) gcsm(y, x + 0.2, xmin = 0, xmax = 1, ymin = 0, ymax = 1) # random noise noise = rnorm(9, mean = 0, sd = 0.2) gcsm(x, x + noise, xmin = 0, xmax = 1, ymin = 0, ymax = 1) cmsc(x, x + noise, xmin = 0, xmax = 1, ymin = 0, ymax = 1) ## dissimilarity gcsm(y, x + noise, xmin = 0, xmax = 1, ymin = 0, ymax = 1)
Compute composite measures, GCSM, CMSC or SSIM, on spatial windows.
cmsc_sw( x, y, rescale = FALSE, xmin = NA_real_, xmax = NA_real_, ymin = NA_real_, ymax = NA_real_, ksize = 9, globe = FALSE, comp = "si" ) cmsc_e1_sw( x, y, rescale = FALSE, xmin = NA_real_, xmax = NA_real_, ymin = NA_real_, ymax = NA_real_, ksize = 9, globe = FALSE, comp = "si" ) cmsc_e2_sw( x, y, rescale = FALSE, xmin = NA_real_, xmax = NA_real_, ymin = NA_real_, ymax = NA_real_, ksize = 9, globe = FALSE, comp = "si" ) gcsm_sw( x, y, rescale = FALSE, xmin = NA_real_, xmax = NA_real_, ymin = NA_real_, ymax = NA_real_, ksize = 9, globe = FALSE, comp = "si" ) ssim_sw( x, y, rescale = FALSE, xmin = NA_real_, xmax = NA_real_, ymin = NA_real_, ymax = NA_real_, ksize = 11, sigma = 1.5, globe = FALSE, comp = "si" )
cmsc_sw( x, y, rescale = FALSE, xmin = NA_real_, xmax = NA_real_, ymin = NA_real_, ymax = NA_real_, ksize = 9, globe = FALSE, comp = "si" ) cmsc_e1_sw( x, y, rescale = FALSE, xmin = NA_real_, xmax = NA_real_, ymin = NA_real_, ymax = NA_real_, ksize = 9, globe = FALSE, comp = "si" ) cmsc_e2_sw( x, y, rescale = FALSE, xmin = NA_real_, xmax = NA_real_, ymin = NA_real_, ymax = NA_real_, ksize = 9, globe = FALSE, comp = "si" ) gcsm_sw( x, y, rescale = FALSE, xmin = NA_real_, xmax = NA_real_, ymin = NA_real_, ymax = NA_real_, ksize = 9, globe = FALSE, comp = "si" ) ssim_sw( x, y, rescale = FALSE, xmin = NA_real_, xmax = NA_real_, ymin = NA_real_, ymax = NA_real_, ksize = 11, sigma = 1.5, globe = FALSE, comp = "si" )
x |
A matrix. |
y |
The other matrix. |
rescale |
Rescale or not before computation. |
xmin , xmax , ymin , ymax
|
Normalization parameters. If |
ksize |
Side length of spatial windows. |
globe |
Are data at the global scale? If |
comp |
Variable to return. If |
sigma |
Standard deviation of Gaussian weighting function depending on the distance between the cell and kernel center. |
These functions slide the spatial window over space. Missing values are
omitted. Normalization parameters are used to rescale x
and y
, and
determine the global minimum (min) and maximum (max). If rescale
is
TRUE
, x
and y
are rescaled to (x-xmin)/(xmax-xmin)
and
(y-ymin)/(ymax-ymin)
; and set min=0
, max=1
. If FALSE
,
min=min(xmin,ymin)
, max=max(xmax,ymax)
. OpenMP is used for parallel
computing.
A matrix.
x = matrix(runif(36), nrow = 6, ncol = 6) gcsm_sw(x, x + 0.2, xmin = 0, xmax = 1, ymin = 0, ymax = 1, ksize = 3) cmsc_sw(x, x + 0.2, xmin = 0, xmax = 1, ymin = 0, ymax = 1, ksize = 3) ssim_sw(x, x + 0.2, xmin = 0, xmax = 1, ymin = 0, ymax = 1, ksize = 3)
x = matrix(runif(36), nrow = 6, ncol = 6) gcsm_sw(x, x + 0.2, xmin = 0, xmax = 1, ymin = 0, ymax = 1, ksize = 3) cmsc_sw(x, x + 0.2, xmin = 0, xmax = 1, ymin = 0, ymax = 1, ksize = 3) ssim_sw(x, x + 0.2, xmin = 0, xmax = 1, ymin = 0, ymax = 1, ksize = 3)
Compute composite measures, GCSM or CMSC, on temporal windows.
cmsc_tw( xxx, yyy, rescale = FALSE, xmin = NA_real_, xmax = NA_real_, ymin = NA_real_, ymax = NA_real_, comp = "si" ) cmsc_e1_tw( xxx, yyy, rescale = FALSE, xmin = NA_real_, xmax = NA_real_, ymin = NA_real_, ymax = NA_real_, comp = "si" ) cmsc_e2_tw( xxx, yyy, rescale = FALSE, xmin = NA_real_, xmax = NA_real_, ymin = NA_real_, ymax = NA_real_, comp = "si" ) gcsm_tw( xxx, yyy, rescale = FALSE, xmin = NA_real_, xmax = NA_real_, ymin = NA_real_, ymax = NA_real_, comp = "si" )
cmsc_tw( xxx, yyy, rescale = FALSE, xmin = NA_real_, xmax = NA_real_, ymin = NA_real_, ymax = NA_real_, comp = "si" ) cmsc_e1_tw( xxx, yyy, rescale = FALSE, xmin = NA_real_, xmax = NA_real_, ymin = NA_real_, ymax = NA_real_, comp = "si" ) cmsc_e2_tw( xxx, yyy, rescale = FALSE, xmin = NA_real_, xmax = NA_real_, ymin = NA_real_, ymax = NA_real_, comp = "si" ) gcsm_tw( xxx, yyy, rescale = FALSE, xmin = NA_real_, xmax = NA_real_, ymin = NA_real_, ymax = NA_real_, comp = "si" )
xxx |
A 3-d array with the 3rd dimension representing time. |
yyy |
The other 3-d array. |
rescale |
Rescale or not before computation. |
xmin , xmax , ymin , ymax
|
Normalization parameters. If |
comp |
Variable to return. If |
These functions slide the temporal window over space. Missing values are
omitted. Normalization parameters are used to rescale xxx
and yyy
, and
determine the global minimum (min) and maximum (max). If rescale
is
TRUE
, xxx
and yyy
are rescaled to (xxx-xmin)/(xmax-xmin)
and
(yyy-ymin)/(ymax-ymin)
; and set min=0
, max=1
. If FALSE
,
min=min(xmin,ymin)
, max=max(xmax,ymax)
. OpenMP is used for parallel
computing.
A matrix.
x = array(runif(81), dim = c(3, 3, 9)) gcsm_tw(x, x + 0.2, xmin = 0, xmax = 1, ymin = 0, ymax = 1) cmsc_tw(x, x + 0.2, xmin = 0, xmax = 1, ymin = 0, ymax = 1)
x = array(runif(81), dim = c(3, 3, 9)) gcsm_tw(x, x + 0.2, xmin = 0, xmax = 1, ymin = 0, ymax = 1) cmsc_tw(x, x + 0.2, xmin = 0, xmax = 1, ymin = 0, ymax = 1)