R: Find all pairwise distances within a maximum distance.
LKDist
R Documentation
Find all pairwise distances within a
maximum distance.
Description
These are the lower level functions to
compute the distances among two sets of locations but being limited to
distances less than a maximum threshold (see delta below ). These functions are useful for
generating a sparse matrix on distances and evaluating a compactly supported function (such as the Wendland). The location - location method supports the distance metrics:
Euclidean, spherical, componentwise and Manhattan.
LKDistComponent and LKDistComponentGrid return the coordinate-wise distances and are
useful for evaluating a tensor product basis functions.
A list with each component vector that specifies the
grid points for an equally spaced grid. Can have class
gridList. (See also help on gridlist).
n1
Number of rows of x1.
x
A two column matrix giving longitude/ latitude locations on a
sphere.
x1
A matrix with rows indexing locations and columns indexing coordinates.
x2
A matrix with rows indexing locations and columns indexing coordinates.
delta
The maximum distance to find pairwise distances.
max.points
Used for dynamically assigning matrix size this should be larger than the total number of pairwise distances less than delta.
mean.neighbor
Used for dynamically assigning matrix size this is the average number of
points that are less that delta in distance to the x1 locations.
periodic
A logical vector with length ncol( x1). If a
component is TRUE then that dimension is treated as periodic.
distance.type
A text string either "Euclidean", "GreatCircle", "Chordal", "Manhattan".
Value
LKDist and LKDistGrid a list representing a sparse matrix in spind format.
LKDistComponent andLKDistGridComponent a list representing a sparse matrix using the spind format except the ra component is now a matrix. The columns of ra
being the individual distances for each coordinate.
directionCosine a matrix where rows index the different points and
columns index x,y,z.
LKGridFindNmax returns the maximum number of nonzero elements expected in a pairwise distance matrix.
LKGridFindNmax checks that the calling arguments are
compatible with the pairwise distance computation.
R version 3.3.1 (2016-06-21) -- "Bug in Your Hair"
Copyright (C) 2016 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.
R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
> library(LatticeKrig)
Loading required package: spam
Loading required package: grid
Spam version 1.3-0 (2015-10-24) is loaded.
Type 'help( Spam)' or 'demo( spam)' for a short introduction
and overview of this package.
Help for individual functions is also obtained by adding the
suffix '.spam' to the function name, e.g. 'help( chol.spam)'.
Attaching package: 'spam'
The following objects are masked from 'package:base':
backsolve, forwardsolve
Loading required package: fields
Loading required package: maps
# maps v3.1: updated 'world': all lakes moved to separate new #
# 'lakes' database. Type '?world' or 'news(package="maps")'. #
> png(filename="/home/ddbj/snapshot/RGM3/R_CC/result/LatticeKrig/LKDist.Rd_%03d_medium.png", width=480, height=480)
> ### Name: LKDist
> ### Title: Find all pairwise distances within a maximum distance.
> ### Aliases: LKDist LKDistComponents LKDistGrid LKDistGridComponents
> ### LKGridCheck LKGridFindNmax directionCosines
> ### Keywords: spatial
>
> ### ** Examples
>
> set.seed( 123)
> x<- matrix( runif(100*2), 100,2)
>
> DMatrix<- LKDist( x,x, delta=.1)
> # coerce to spam matrix format
> DMatrix2<- spind2spam( DMatrix)
>
> # a grid
> gridL<- list( x1= seq(0,1,.2), x2= seq( 0,2,.2) , x3= seq( -1,1,.2))
> class(gridL)<- "gridList"
> x1<- cbind( runif( 100), runif(100)*2, 2*(runif( 100) -.5) )
> look<- LKDistGrid( x1, gridL, delta=.45)
> # check against rdist.
> # look2<- rdist( x1, make.surface.grid(gridL))
> # look2[ look2 >= .45] <- 0
> # max( abs(look- look2)[look>0] )
>
> # test of periodic option
> gridL<- structure(
+ list( x1= seq(0,1,.02),
+ x2= seq( 0,1,.02)),
+ class="gridList")
> look1<- LKDistGrid( rbind(c(0,0)), gridL, delta=.35,
+ periodic=c(TRUE,FALSE))
> look2<- spind2full(look1)
> image.plot( as.surface( gridL, look2) )
>
> look1<- LKDistGrid( rbind(c(0,0)), gridL, delta=.35,
+ periodic=c(TRUE,TRUE))
> look2<- spind2full(look1)
> image.plot( as.surface( gridL, look2) )
>
>
>
>
>
> dev.off()
null device
1
>