Как интерполировать от неоднородных 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-интерполяции в произвольных коллекциях мест выборки.
Это не значит, что это будет лучше для всех, и я предполагаю, что те, кто работает с геоданными, могут предпочесть пакеты, предназначенные для работы с конкретными типами файлов, связанных с гео-съемкой, и системами координат широты и долготы.