Cartographie - tracer des courbes de niveau

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Simon Demesse
Messages : 4
Enregistré le : 02 Juil 2018, 14:01

Cartographie - tracer des courbes de niveau

Messagepar Simon Demesse » 02 Juil 2018, 15:16

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

Simon Demesse
Messages : 4
Enregistré le : 02 Juil 2018, 14:01

Re: Cartographie - tracer des courbes de niveau

Messagepar Simon Demesse » 04 Juil 2018, 13:02

Bonjour.

Personne ne sait comment m'aider ? Vous manquerait-il des éléments par hasard ?

Je suis désolé de relancer, vous n'avez sans doute pas que ça à faire

Bonne journée à tous

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: Cartographie - tracer des courbes de niveau

Messagepar Pierre-Yves Berrard » 05 Juil 2018, 07:45

Bonjour,

Je pense que personne ne répond parce que le code est trop long et manifestement plein d'éléments sans lien avec le problème (un exemple parmi d'autres, les instructions qui créent des graphiques sont inutiles).
Essayez de simplifier en un exemple minimal reproductible.
PY

Simon Demesse
Messages : 4
Enregistré le : 02 Juil 2018, 14:01

Re: Cartographie - tracer des courbes de niveau

Messagepar Simon Demesse » 05 Juil 2018, 08:39

Pierre-Yves Berrard a écrit :Bonjour,

Je pense que personne ne répond parce que le code est trop long et manifestement plein d'éléments sans lien avec le problème (un exemple parmi d'autres, les instructions qui créent des graphiques sont inutiles).
Essayez de simplifier en un exemple minimal reproductible.


Bonjour. Pardon mais je viens de relire mon script, et en dehors du scatterplot (4 lignes) et des vérifications graphiques de ma zone (4 lignes), je ne vois aucune ligne qui n'ai pas de lien avec ma manipulation ... Tout le reste sont des étapes nécessaires à ce que j'essaye de faire. Etapes pouvant contenir l'erreur qui finit par me bloquer par ailleurs.
Merci pour votre réponse toutefois

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: Cartographie - tracer des courbes de niveau

Messagepar Pierre-Yves Berrard » 05 Juil 2018, 13:03

Je ne vois pas en quoi consulter l'aide de la fonction sort est essentiel, mais admettons que l'exemple est minimal.
Par contre, il n'est pas reproductible.
PY

Simon Demesse
Messages : 4
Enregistré le : 02 Juil 2018, 14:01

Re: Cartographie - tracer des courbes de niveau

Messagepar Simon Demesse » 05 Juil 2018, 13:57

Pierre-Yves Berrard a écrit :Je ne vois pas en quoi consulter l'aide de la fonction sort est essentiel, mais admettons que l'exemple est minimal.
Par contre, il n'est pas reproductible.


Et donc, vous auriez besoin de quoi ? De mon jeu de données ? Comment puis-je l'envoyer ?

Eric Casellas
Messages : 767
Enregistré le : 06 Jan 2009, 14:59

Re: Cartographie - tracer des courbes de niveau

Messagepar Eric Casellas » 05 Juil 2018, 14:35

Simon Demesse a écrit :
Pierre-Yves Berrard a écrit :Par contre, il n'est pas reproductible.


Et donc, vous auriez besoin de quoi ? De mon jeu de données ? Comment puis-je l'envoyer ?



Bonjour,

Voir les posts suivant :
http://forums.cirad.fr/logiciel-R/viewtopic.php?f=1&t=7638
http://forums.cirad.fr/logiciel-R/viewtopic.php?f=1&t=3302

Eric
Eric


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité