Новое в пространственном анализе на R здесь. У меня есть шейп-файл для США, который я скачал с ЗДЕСЬ а>. У меня также есть набор точек широты и долготы (полмиллиона), которые лежат на территории США.
Я хотел бы найти «самую удаленную точку» — точку в пределах прилегающих США, которая дальше всего от набора точек.
Я использую пакеты rgdal, raster и sp. Вот воспроизводимый пример со случайной выборкой из 10 точек:
# Set wd to the folder tl_2010_us_state_10
usa <- readOGR(dsn = ".", layer = "tl_2010_us_state10")
# Sample 10 points in USA
sample <- spsample(usa, 10, type = "random")
# Set extent for contiguous united states
ext <- extent(-124.848974, -66.885444, 24.396308, 49.384358)
# Rasterize USA
r <- raster(ext, nrow = 500, ncol = 500)
rr <- rasterize(usa, r)
# Find distance from sample points to cells of USA raster
D <- distanceFromPoints(object = rr, xy = sample)
# Plot distances and points
plot(D)
points(sample)
После последних двух строк кода я получаю этот график.
Однако я бы хотел, чтобы это было поверх растровой карты США. И я бы хотел, чтобы он учитывал расстояния только от ячеек, которые находятся в смежных США, а не от всех ячеек в ограничивающей рамке. Как мне это сделать?
Я также был бы признателен за любые другие советы относительно файла формы, который я использую - лучший ли он? Должен ли я беспокоиться об использовании правильной проекции, поскольку мой фактический набор данных широта/долгота? Сможет ли DistanceFromPoints эффективно обрабатывать такой большой набор данных или есть функция получше?