2013-09-30 6 views
5

Ho campioni non posizionati in modo uniforme di un'immagine e desidero interpolare su una griglia regolare perché (tra le altre cose) la maggior parte delle funzioni di grafica di immagini prevede una griglia regolare. Ho notato che ci sono alcune funzioni MatLab (vedi Image interpolation from random pixels per esempio) che apparentemente lo faranno, ma non sono riuscito a trovare un pacchetto R che lo faccia.
Ecco un semplice esempio.Come interpolare da posizioni 2D non uniformi alla griglia regolare?

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

Quindi i valori di inmat sono in posizioni casuali. Voglio una sorta di funzione outmat<-interpolate(inmat,x,y,gridx,gridy) dove inmat, x e sono tutte o matrici o tutti i vettori (matrici non imballate).

Vedo anche che SciPy ha http://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html che fa questo. Esiste una tale funzione in un pacchetto R o devo effettuare il porting dal codice SciPy o MatLab?

+0

Vedere anche http://stackoverflow.com/questions/18769146/interpolating-an-irregular-grid – Andrie

+0

possibile duplicato di [Plottaggio di dati interpolati sulla mappa] (http://stackoverflow.com/questions/10047870/plotting- interpolated-data-on-map) – Spacedman

+0

@Andrie grazie-- Sto osservando la funzione 'akima :: interp' e riferirò. –

risposta

1

Le pagine collegate forniscono puntatori a pacchetti di un miliardo di R che eseguono Kriging o altre funzioni di interpolazione.

Sto postando la mia scelta personale come risposta solo per chiudere questa domanda.

Ho trovato akima::interp una funzione semplice per eseguire l'interpolazione 2D su raccolte arbitrarie di posizioni di esempio.
Ciò non significa che sarà il migliore per tutti, e la mia ipotesi è che chi lavora con i geodati potrebbe preferire pacchetti progettati per distruggere specifici tipi di file relativi al geo-survey e sistemi di coordinate lat/long.