Как интерполировать от неоднородных 2D-местоположений к регулярной сетке?

У меня есть неравномерно расположенные образцы изображения, и я хотел бы интерполировать их в регулярную сетку, потому что (среди прочего) большинство графических функций изображения ожидают регулярную сетку. Я заметил, что есть некоторые функции MatLab (см., Например, интерполяция изображений из случайных пикселей), которые, очевидно, будут это делать, но не смогли найти R-пакет, который это делает.
Вот простой пример.

#make up some 2D func
y<-matrix(rep(1:10,10) -.5 + runif(100),nrow=10)
x<-matrix(rep(1:10,10) -.5 + runif(100),nrow=10)
inmat<-sin(x) + cos(y)

Так что значения inmat находятся в случайных местах. Я хочу какой-то outmat<-interpolate(inmat,x,y,gridx,gridy) функция где inmat, x,а также y либо все матрицы или все векторы (развернутые матрицы).

Я также вижу, что у SciPy есть http://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html который делает это. Есть ли такая функция в R пакет или мне нужно портировать с SciPy или же MatLab код?

1 ответ

Решение

Связанные страницы содержат указатели на газиллион R пакеты, которые выполняют Кригинг или другие функции интерполяции.

Я публикую свой личный выбор в качестве ответа, чтобы закрыть этот вопрос.

я нашел akima::interp быть простой функцией для выполнения 2D-интерполяции в произвольных коллекциях мест выборки.
Это не значит, что это будет лучше для всех, и я предполагаю, что те, кто работает с геоданными, могут предпочесть пакеты, предназначенные для работы с конкретными типами файлов, связанных с гео-съемкой, и системами координат широты и долготы.

Другие вопросы по тегам