У меня очень большой набор данных, который включает в себя длинные/лат и среднее количество осадков (appt). Я пытаюсь интерполировать некоторые дополнительные точки данных, чтобы создать ggplot
среднего количества осадков над выбранными состояниями. Однако я не уверен, как точно интерполировать данные. Результаты функции interp
производят NA
с.Interpolate Пространственные данные
Как бы интерполировать дополнительные точки данных (~ 5000 кв. М) при заданной долготе/широте?
Почему я получаю NA
с при использовании функции interp
?
dput:
data <- structure(list(longitude = c(-91.40953, -90.30213, -89.26907,
-93.32515, -94.13632), latitude = c(33.403216, 34.505369, 32.438327,
36.283347, 39.28965), APPT = c(90.4899996121724, 50.4899996121724,
30.4899996121724, 70.4899996121724, 93.4899996121724)), .Names = c("longitude",
"latitude", "APPT"), row.names = c(NA, 5L), class = "data.frame")
Текущий код:
library(akima)
sp_data <- interp(x = data$longitude,
y = data$latitude,
z = data$APPT)
dInterp <- data.frame(expand.grid(x = sp_data$x,
y = sp_data$y), z = c(sp_data$z))
Выходной ток: head(dInterp)
x y z
1 -94.13632 32.43833 NA
2 -94.01152 32.43833 NA
3 -93.88672 32.43833 NA
4 -93.76192 32.43833 NA
5 -93.63711 32.43833 NA
6 -93.51231 32.43833 NA
Я не уверен точно, о чем вы просите, но однажды я ответил на другой вопрос с похожими входными данными (долгота, широта, дождь), которые были «интерпретированы», а затем построены с помощью «ggplot»; см. [** здесь **] (http://stackoverflow.com/questions/19339296/plotting-contours-on-an-irregular-grid/19339663#19339663) – Henrik
@Henrik Спасибо за сообщение. Я проверил это и смог получить контурный сюжет. То, что я пытаюсь сделать, - это просто добавить дополнительные значения в мой набор данных, чтобы, когда я рисую их на карте, он заполняет много дыр ... Я думал, что 'interp()' это то, что мне нужно. – Vedda
'interp' только интерполяция, поэтому любые точки на сетке вне ваших входных данных будут NA. Чтобы сделать экстраполяцию, установите «extrap = TRUE». – kdauria