#2011, Eulalie Sauthier, Master Thesis

IDW_vec <- function(known_data, interpolating_data) {
	
library(MASS)#charge la librarie	
	
#creer une matrice vide pour accueillir les nouvelles valeurs estimées
interpolated_data<-matrix(nrow=(length(interpolating_data[ ,1])),ncol=3)

#vecteurs temporaires
	somme_num<-vector(length=3)
	somme_den<-numeric(1)
	somme<-vector(length=3)

eta<-vector(length=3) #vecteur des GEV paramètres
eta_temp<-vector(length=3) #buffer

coef<-30 #pondération de l'altitude
j<-0 

	for (j in 1:length(interpolating_data[ ,1])){#pour chaque station à vérifier
		somme_num<-vector(length=3) #remise à zero
		somme_den<-numeric(1)
		somme<-vector(length=3)
		
		for (i in 1:length(rownames(known_data))){ #calcule la distance
			distance<-sqrt((interpolating_data[j ,1]-known_data[ i,4])^2+(interpolating_data[j,2]-known_data[i ,5])^2 + (coef*coef)*(interpolating_data[j ,3]-known_data[i ,6])^2)	
			eta_temp<-known_data[i,1:3] #stock les GEV paramètres connus
			somme_num<-somme_num+(eta_temp/distance) #calcule les numérateurs
			somme_den<-somme_den+( (1/distance)) #calcule les dénominateurs
		}
		
		somme<-somme_num / somme_den #calcule la formule d'interpolation
		interpolated_data[j,1:3]<-unlist(somme) #stock les valeurs
	}

temp<-cbind(interpolated_data ,interpolating_data) 
write.matrix(file="sauve_IDW_VEC", temp) #stock les valeurs interpolées
			}