Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Fri 05 February 2016 18:45

Nico.bastien
Juste Inscrit !
Date d'inscription: 5 Feb 2016
Messages: 9

QGIS : Interpolation linéaire

Amis Sigistes bonsoir,

Je viens vers vous avec une problématique que je pense nouvelle (après avoir épluché le forum). La voici :

Nous avons :
- un calque avec un réseau composé de polylignes;
- un calque avec des nœuds composés de points;

Toutes les polylignes sont raccrochées à des points. Nous avons sur certains points (pas tous), une information altimétrique (il s'agit de la côte fil d'eau).
Hélas, il a des points où nous n'avons pas d'information (trop cher paraît-il!).

Aussi je souhaiterais interpoler l'information des points afin que chacun d'eaux possède l'information altimétrique.

Facile en apparence me direz vous : "il suffit de faire un raster et d'interpoler sur les points sans infos!"

Oui mais non, l'hydraulique urbaine ne répond pas à cette logique : les points se trouvant à proximité mais pas sur le même réseau ont un impact sur les points qui sont interpolés...

Ce qu'il faudrait faire comprendre à QGis, c'est que sur une même branche de réseau, je vais interpoler le nœud où l'information est manquante en me basant sur le nœud à l'aval et le nœud à l'amont où l'information est disponible (rappelons que les nœuds sont attachés à des polylignes permettant justement d'indiquer l'amont et l'aval). Et c'est tout... en ignorant les autres nœuds. C'est ce que j’appellerai une interpolation linéaire...

Comment faire?

Toutes informations, idées, encouragements ou même témoignages d’amitiés sont les bienvenus sur cette problématique.

Cdt,

Hors ligne

 

#2 Sun 07 February 2016 10:32

dominique.lys
Participant assidu
Date d'inscription: 5 Oct 2006
Messages: 473
Site web

Re: QGIS : Interpolation linéaire

Bonjour,

Je ne vois pas d'autre solution que de passer par un script Python, mais ça ne fonctionnera que si les polylignes du réseau ont été tracées de l'amont vers l'aval ou bien si l'on dispose d'une information pour les noeuds permettant de les ordonner sur leur réseau respectif.

en gros pour l'algo:

Pour chaque polyligne du réseau:
    pour chaque point de la polyligne:
        chercher s'il existe un noeud à cette position
        si oui, vérifier si ce noeud dispose d'une côte
            si non, calculer sa côte par interpolation > ce qui implique ici de pouvoir déterminer le noeud précédent et le suivant

Dernière modification par dominique.lys (Sun 07 February 2016 10:33)

Hors ligne

 

#3 Mon 08 February 2016 08:57

Nico.bastien
Juste Inscrit !
Date d'inscription: 5 Feb 2016
Messages: 9

Re: QGIS : Interpolation linéaire

Bonjour Dominique,

Merci pour ton retour.

Pas de solution simple donc....

Hors ligne

 

#4 Mon 08 February 2016 13:54

dominique.lys
Participant assidu
Date d'inscription: 5 Oct 2006
Messages: 473
Site web

Re: QGIS : Interpolation linéaire

Pas de solution simple donc....


oui et non, si on peut ordonner les noeuds alors c'est une solution facile. Après si c'est l'utilisation de python qui pose problème, on est là pour aider !

Hors ligne

 

#5 Mon 08 February 2016 17:07

ChristopheV
Membre
Lieu: Ajaccio
Date d'inscription: 7 Sep 2005
Messages: 3169
Site web

Re: QGIS : Interpolation linéaire

Bonjour,

Il existe d'autres solutions en ne passant pas par QGIS mais par posgresql et postgis.

Première solution : intégrer les polylignes dans un schéma topologique. Ce qui permettra de connaître l'orientation (arcs orientés).
Les points ne sont pas forcement des noeuds au sens topologique mais des sommets de polyligne. L'interpolation de l'altitude entre deux sommets connus en z peut ensuite se faire via une requête calculée.
Si A et C sont connus en Z et que B € [AC] alors Distance(AC)/Zb-Za* distance(AB) + Za = Zb. (interpolation simple). On notera qu'il n'est pas vraiment nécessaire de connaître le sens de parcours de la polyligne.


Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close

Hors ligne

 

#6 Fri 19 February 2016 16:48

Nico.bastien
Juste Inscrit !
Date d'inscription: 5 Feb 2016
Messages: 9

Re: QGIS : Interpolation linéaire

Bonjour,

Merci pour vos retours respectifs. N'étant pas sigiste à l'origine, les solutions me semblaient difficile à mettre en oeuvre (je pensais que le python était un serpent...)
Au final, puisqu'il s'agissait d'hydraulique, nous sommes passés par un import sous Mike Urban qui propose simplement un module d'extrapolation des données.
Aussi simple que cela...
Encore merci pour vos suggestions.

Hors ligne

 

Pied de page des forums

Powered by FluxBB