Добавить отдельные точки на уровень - PullRequest
0 голосов
/ 20 октября 2019

Я пытаюсь помочь другу с сюжетом, но в итоге застреваю. Он хочет нанести образцы мест на уровень. Растр из пакета unmarked. (data(Switzerland)). Я пробовал это на фиктивном фрейме данных, где я случайно выбрал несколько местоположений.

Я нашел следующий вопрос Добавление точек XY к растровой карте, сгенерированной с помощью levelplot , которая более или менее соответствует моемухотел бы сделать.

Итак, я попробовал следующий код:

x <- c("980000", "1100000", "1200000")
y <- c("120000", "170000", "100000")
name <- c("a", "b", "c")
dummy <- as.data.frame(cbind(x, y, name))

levelplot(elevation ~ x + y, Switzerland, aspect="iso",col.regions=terrain.colors(100)) +
  layer(sp.points(dummy, cex=2, col=1))

Но я получаю сообщение об ошибке

Error in .local(obj, ...) : any(sp) is not TRUE

Я пытался понять, чтовроде ввода sp.points() нужно и что я делаю не так, но не получилось.

1 Ответ

0 голосов
/ 22 октября 2019

Преобразование dummy в sp -объект, т. Е. SpatialPointsDataFrame в вашем случае:

R> library("sp")
R> dummy <- data.frame(x = as.numeric(x), y = as.numeric(y), name = name)
R> coordinates(dummy) <- ~ x + y
R> class(dummy)
[1] "SpatialPointsDataFrame"
attr(,"package")
[1] "sp"

Воспроизводимый пример:

library("sp")
library("lattice")
library("latticeExtra")
library("unmarked")

data(Switzerland)

x <- c(980000, 1100000, 1200000)
y <- c(120000, 170000, 100000)
name <- c("a", "b", "c")

dummy <- data.frame(x, y, name)
coordinates(dummy) <- ~ x + y


p <- levelplot(elevation ~ x + y, Switzerland,
               aspect = "iso", col.regions = terrain.colors(100)) +
     layer(sp.points(dummy, cex = 2, col = 1))
print(p)

levelplot

...