Пакет spatstat
ваш друг!
http://www.spatstat.org/spatstat/
Если ваши данные представляют собой набор событий (например, «преступление произошло в (x, y)» для многих (x, y)), то вы можете использоватьоценка плотности ядра для создания вашей тепловой карты.Вы можете увидеть пример здесь:
https://github.com/drewconway/WikiLeaks_Analysis/blob/master/density.r
конкретно строка 72.
Если ваши значения z являются действительными значениями (что, вероятно, имеет место при чтении вашего вопроса), тогдаВы можете использовать функцию smooth
spatstat, которая использует ядро Гаусса для выполнения интерполяции и получения набора пикселей, которые были сгенерированы путем интерполяции ваших данных.
В качестве альтернативы, вы можете использовать пакет akima
(как рекомендовано авторами spatstat
) для интерполяции в указанных вами местах.Он использует линейную или сплайн-интерполяцию и кажется довольно простым (хотя у меня нет с этим опыта!).
В целом то, что вы пытаетесь сделать, часто называется «Кригингом», и поэтому вы получите множество результатов, если вы включите Google для этого.Посмотрите, например, пакеты gstat
и geoR
.
Наконец (и FTW) вы можете использовать процессы Гаусса, чтобы сделать то же самое.Это фактически даст вам распределение возможных интерполяций с учетом ваших данных.Пакет R kernlab
имеет реализацию, хотя я не знаю, как его использовать.