2013-09-30 10 views
5

Mam nierównomiernie rozmieszczone próbki obrazu i chciałbym interpolować do zwykłej siatki, ponieważ (między innymi) większość funkcji graficznych wymaga regularnej siatki. Zauważam, że istnieją pewne funkcje MatLab (patrz na przykład Image interpolation from random pixels), które najwyraźniej to zrobią, ale nie mogą znaleźć pakietu R, który to robi.
Oto prosty przykład.Jak interpolować z niejednorodnych lokalizacji 2D do zwykłej siatki?

#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) 

Więc wartości inmat są w losowych lokalizacjach. Chcę funkcji outmat<-interpolate(inmat,x,y,gridx,gridy) gdzie inmat, x i y są albo wszystkie macierze lub wszystkie wektory (nieopakowane macierze).

Widzę również, że SciPy ma http://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html, która to robi. Czy istnieje taka funkcja w pakiecie R, czy też trzeba podać kod od SciPy lub MatLab?

+0

Zobacz także http://stackoverflow.com/questions/18769146/interpolating-an-irregular-grid – Andrie

+0

możliwy duplikat [Wykreślanie interpolowanych danych na mapie] (http://stackoverflow.com/questions/10047870/plotting- interpolowane-dane-na-mapie) – Spacedman

+0

@Andrie dzięki - patrzę na funkcję 'akima :: interp' i będę odpowiadał. –

Odpowiedz

1

Połączone strony zawierają wskaźniki do gazillion R pakietów, które wykonują Kriging lub inne funkcje interpolacji.

Zamieszczam mój osobisty wybór jako odpowiedź tylko po to, aby zamknąć to pytanie.

Znalazłem akima::interp jako bezpośrednią funkcję do interpolacji 2D w dowolnych kolekcjach przykładowych lokalizacji.
To nie znaczy, że będzie najlepsze dla wszystkich i domyślam się, że osoby pracujące z danymi geograficznymi mogą preferować pakiety zaprojektowane do maskowania za pomocą określonych typów plików geolokalizacyjnych i układów współrzędnych długości/długości.

Powiązane problemy