Tengo estos puntos espaciales:
long <- c(-1.769717, -1.767766, -1.769170, -1.768462, -1.768389)
lat <- c(54.92214, 54.92207, 54.92113, 54.92167, 54.92165)
points <- data.frame(long, lat)
coordinates(points) <- c('long', 'lat')
proj4string(points) <- CRS("+proj=longlat +ellps=WGS84 +datum=WGS84")
points <- spTransform(points, CRS("+proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"))##
Puedo calcular si dos puntos cualesquiera se encuentran a menos de 20 m el uno del otro de esta forma:
points_matrix <- gWithinDistance(points, dist = 20, byid = TRUE)
diag(points_matrix) <- NA
1 2 3 4 5
1 NA FALSE FALSE FALSE FALSE
2 FALSE NA FALSE FALSE FALSE
3 FALSE FALSE NA FALSE FALSE
4 FALSE FALSE FALSE NA TRUE
5 FALSE FALSE FALSE TRUE NA
Si hay dos puntos en un radio de 20 m, tengo que eliminar uno de ellos. La dirección points_matrix
muestra que los puntos 4 y 5 se encuentran a menos de 20 m el uno del otro. ¿Cómo puedo eliminar 4 o 5 (no importa cuál) de points
y mantener todos los demás puntos.