zerodist {sp}R Documentation

find point pairs with equal spatial coordinates

Description

find point pairs with equal spatial coordinates

Usage

 
zerodist(obj, zero = 0.0, unique.ID = FALSE) 
zerodist2(obj1, obj2, zero = 0.0) 
remove.duplicates(obj, zero = 0.0, remove.second = TRUE)

Arguments

obj object of, or extending, class SpatialPoints
obj1 object of, or extending, class SpatialPoints
obj2 object of, or extending, class SpatialPoints
zero distance values less than or equal to this threshold value are considered to have zero distance (default 0.0)
unique.ID logical; if TRUE, return an ID (integer) for each point that is different only when two points do not share the same location
remove.second logical; if TRUE, the second of each pair of duplicate points is removed, if FALSE remove the first

Value

pairs of row numbers with identical coordinates; matrix with zero rows if no such pairs are found. For zerodist, row number pairs refer to row pairs in obj. For zerodist2, row number pairs refer to rows in obj and obj2, respectively.

Note

When using kriging, duplicate observations sharing identical spatial locations result in singular covariance matrices in kriging situations. This function may help identifying spatial duplications, so they can be removed. The full matrix with all pair-wise distances is not stored; the double loop is done at the C level.

Examples

data(meuse)
summary(meuse)
# pick 10 rows
n <- 10
ran10 <- sample(nrow(meuse), size = n, replace = TRUE)
meusedup <- rbind(meuse, meuse[ran10, ])
coordinates(meusedup) <- c("x", "y")
zd <- zerodist(meusedup)
sum(abs(zd[1:n,1] - sort(ran10))) # 0!
# remove the duplicate rows:
meusedup2 <- meusedup[-zd[,2], ]
summary(meusedup2)
meusedup3 <- subset(meusedup, !(1:nrow(meusedup) %in% zd[,2]))
summary(meusedup3)
coordinates(meuse) <- c("x", "y")
zerodist2(meuse, meuse[c(10:33,1,10),])

[Package sp version 0.9-57 Index]