How to find point related to set of coordinates?

后端 未结 2 1418
梦谈多话
梦谈多话 2021-02-11 00:32

I have a set of about 5000 geographical (WGS84) coordinates. All of them are inside 40km square.

Is there any algorithm / R function to find point, inside square and not

2条回答
  •  有刺的猬
    2021-02-11 00:50

    Here's an example that uses several functions (distanceFromPoints(), maxValue(), Which(), and xyFromCell()) from the raster package to perform the key calculations:

    # Load required libraries
    library(sp)
    library(rgdal)
    library(raster)
    
    # Create a SpatialPoints object with 10 points randomly sampled from
    # the area lying between longitudes 0 and 1 and latitudes 0 and 1
    bbox <- matrix(c(0,0,1,1), ncol=2, dimnames = list(NULL, c("min", "max")))
    PRJ4 <- CRS("+proj=longlat +datum=WGS84 +ellps=WGS84")
    S <- Spatial(bbox = bbox, proj4string = PRJ4)
    SP <- spsample(S, 10, type="random")
    
    # Create a raster object covering the same area
    R <- raster(extent(bbox), nrow=100, ncol=100, crs=PRJ4)
    
    # Find the coordinates of the cell that is farthest from all of the points
    D <- distanceFromPoints(object = R, xy = SP) 
    IDmaxD <- Which(D == maxValue(D), cells=TRUE)
    (XY <- xyFromCell(D, IDmaxD))
    #          x     y
    # [1,] 0.005 0.795
    
    # Plot the results
    plot(D, main = "Distance map, with most distant cell in red")
    points(SP)
    points(XY, col="red", pch=16, cex=2)
    

    enter image description here

提交回复
热议问题