Bonjour à tous !
Je viens vers vous car je fais fasse à un sérieux problème avec une manip' que j'ai besoin d'effectuer sur R.
Le contexte rapidement : J'ai des points GPS et des niveaux d'eau et de vase d'un étang et je souhaiterais créer des courbes de niveau avec ces données.
Je dois donc, à partir de mes données, interpoler les points entre mes points de données afin de créer une matrice qui elle même me servira pour tracer les lignes de niveau. J'ai réussi à créer ma matrice, mais je n'arrive pas à faire fonctionner correctement la fonction contour ... Je souhaiterais ensuite exporter ces courbes sur QGIS
Sauriez vous me dire si l'erreur vient de ce que j'ai fait ou si j'ai loupé une étape s'il vous plait ? Je vous mets mon script en dessous. Merci d'avance à ceux qui prendront le temps de m'aider
------------------------------------------------------
mySPDF<-read.delim("bati.txt")
mySPDF
library(sp)
library(rgdal)
coordinates(mySPDF)<-~coordonnéeX+coordonnéeY
centroids<-coordinates(mySPDF)
centroids<-data.frame(centroids,mySPDF@data)
plot(mySPDF)
mySPDF
mySPDF@data
proj4string(mySPDF)<-CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs")
plot(mySPDF)
#--------------------------------------------
library(splancs)
zone<-getpoly()
polygon(zone)
dedans<-inout(mygrid,zone)
points(mygrid[dedans,],col="green")
points(mygrid[!dedans,],col="blue")
plot(mygrid[dedans,])
points(mySPDF, col="red")
# Estimation par régression locale
lo <- loess(mySPDF$niveau_eau ~ mySPDF$coordonnéeX + mySPDF$coordonnéeY, data = mySPDF, span = 0.5)
modloessmat <- predict(lo, newdata = mygrid)
modloessmat[!inout(mygrid, zone)] <- NA
modloessmat
#
modloessvec <- as.numeric(modloessmat)
wgloess <- zone[!is.na(modloessvec), ]
modloessvec <- modloessvec[!is.na(modloessvec)]
modloessvec
#Je ne sais pas si cette partie peut me servir mais ça me semblait pertinent
#A partir de la, c'est des essais infructueux
long <- sort(mygrid[dedans,]$x, decreasing = FALSE)
long
lat <- sort(mygrid[dedans,]$y, decreasing = FALSE)
lat
long1<- sort(mySPDF$coordonnéeX, decreasing = FALSE)
long1
lat1<- sort(mySPDF$coordonnéeY, decreasing = FALSE)
lat1
x1 <- seq(0, 1, length.out = nrow(modloessmat))
y1 <- seq(0, 1, length.out = ncol(modloessmat))
plot(mySPDF)
contour(long, lat, modloessmat, add = T, lwd = 2, labcex = 2)
#erreur obtenue : x et y doivent être croissants (malgré ma fonction sort ...)
contour(x1, y1, modloessmat, add = T)
#la fonction est lancée correctement mais rien ne s'affiche sur mon plot
contour(long1, lat1, modloessmat,add = T)
#erreur obtenue : les dimensions ne correspondent pas
?contour
#objectif : exporter les courbes de niveaux sur QGIS