Créer une grille pour un krigeage

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

Tibo Neudin
Messages : 11
Enregistré le : 01 Avr 2016, 15:25

Créer une grille pour un krigeage

Messagepar Tibo Neudin » 26 Avr 2017, 15:17

Bonjour à tous,

Toujours dans l'optique de me former à R, j'essaie de faire un krigeage.

J'ai récurépé des données de prélévement de sol (environ 1000). Avec seulement 3 informations: lattitude, Longitude et une quantité de polluant.

Et j'utilise les packages gstat et sp.

Pour pouvoir faire mon krigeage, je dois faire une grille. et c'est mon problème.

Je n'arrive pas à créer la grille en reprénant les informations de mes données.

Voila ce que j'ai écris:

Code : Tout sélectionner

seqx <- seq(min(spatial$long), max(spatial$long), by=0.05)
seqy <- seq(min(spatial$lat), max(spatial$lat), by=0.05)

Jusque là tout va bien.

puis:

Code : Tout sélectionner

Mseqx <- rep(seqx, length(seqy))
Mseqy <- rep(seqy, length(seqx))

Mais ici j'ai un message d'erreur me disant que la taille du vecteur est trop importante.
Je ne peux donc pas continuer.
Existe-il une solution? comment réduire la taille sans impacter ?

Voila ce que je voulais écrire ensuite

Code : Tout sélectionner

Mseqy <- sort(Mseqy, decreasing=F)
grid <- data.frame(x=Mseqx, y=Mseqy)
coordinates(grid)=~x+y
gridded(grid) <- TRUE


Dites moi si vous avez une idée.
Merci d'avance.

(j'ai hate d'être le jour, où je pourrais enfin aider quelqu'un sur ce forum).

Serge Rapenne
Messages : 1426
Enregistré le : 20 Aoû 2007, 15:17
Contact :

Re: Créer une grille pour un krigeage

Messagepar Serge Rapenne » 26 Avr 2017, 15:35

Bonjour,

Tu peux passer directement de seqx, seqy à grid (évite d'utiliser grid comme nom de variable, c'est une fonction de R) grâce à la fonction expand.grid

Code : Tout sélectionner

grid<-expand.grid( seqx, seqy)

quel est la taille de ton champs d'étude. une grille avec un pas de 0.05 minutes ça fait peut être bcp ?



Serge

Tibo Neudin
Messages : 11
Enregistré le : 01 Avr 2016, 15:25

Re: Créer une grille pour un krigeage

Messagepar Tibo Neudin » 27 Avr 2017, 09:42

Bonjour,

Je vais essayer ce soir (j'éditerai pour éviter les doublons)

Concernant le pas, la taille du champs d'étude est plutôt autour de 100km sur 100km (ça fait donc effectivement beaucoup). Qu'est-ce que tu me conseil comme pas pour ce genre de taille de champs?

Merci à toi en tout cas.

bonne journée.

Serge Rapenne
Messages : 1426
Enregistré le : 20 Aoû 2007, 15:17
Contact :

Re: Créer une grille pour un krigeage

Messagepar Serge Rapenne » 28 Avr 2017, 08:56

Bonjour,

Un vrai géostatisticien me corrigera peut être mais selon moi, la taille de la grille dépens de la variabilité du phénomène que tu étudies. Si tu étudies un phénomène qui a une forte variabilité à courte distance, il faut effectivement une grille fine mais dans ce cas, je ne suis pas sur que 1000 points sur un domaine de 100*100 km soit en moyenne 1 mesure pour 10 km² permettent de définir convenablement une forte variabilité. Si ton phénomène est plus homogène, ça n'est pas forcement nécessaire.
La taille de la grille peut être conditionné par la répartition des points sut le champs d'étude. Le variogramme expérimentale va commencer pour des distances de l'ordre de la plus petite distance entre 2 points. Si tu as bcp de points séparés de qq dizaines ou centaines de mètres alors tu aura une bonne connaissance de la variabilité à courte distance et donc un grille fine fait sens.

Si je suppose que tes coordonnées sont exprimées en degré décimaux, en moyenne 1°=+/-111 km donc en utilisant un by=0,05 tu fais une grille avec un pas de l'ordre 5,5 km ce qui me semble pas aberrant en fonction de la taille du champs d'étude.

Serge

Tibo Neudin
Messages : 11
Enregistré le : 01 Avr 2016, 15:25

Re: Créer une grille pour un krigeage

Messagepar Tibo Neudin » 30 Avr 2017, 08:07

Hello,

Merci pour ta réponse.

J'ai effectivement des petits groupes de prélévement assez proche entre eux, et d'autres très éloignés. (comme par exemple plusieurs prélévements en ville contre un seul en campagne).

C'est pour cela que j'ai essayé avec un pas de 0.05 minutes. Mais là, R me répond:

Code : Tout sélectionner

Error: cannot allocate vector of size 22338.1 Gb


Donc je n'y arrive pas. Une idée pour réduire la taille?

J'ai essayé avec un pas de 30 (mais là je n'arrive plus à comprendre ce que je fais comme pas....), et là ça marche (en 5H :) )
Avec ça le krigeage est bon (lisible j'entend) mais l'erreur de prédiction n'est pas très bonne (j'entends assez haute).

Merci pour ton aide en tout cas.

Tibo

François Bonnot
Messages : 537
Enregistré le : 10 Nov 2004, 15:19
Contact :

Re: Créer une grille pour un krigeage

Messagepar François Bonnot » 11 Mai 2017, 16:18

Bonjour,
Je ne crois pas (mais à vérifier quand-même) qu'il soit nécessaire de créer une grille complète pour réaliser un krigeage avec gstat.
Il suffit de créer un ensemble de points (qui peut être une grille incomplète) sur lesquels on veut réaliser l'interpolation.
François


Retourner vers « Questions en cours »

Qui est en ligne

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

cron