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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Mon 18 March 2019 10:51

preliator
Participant assidu
Date d'inscription: 17 Nov 2018
Messages: 433

QGIS: Distance entre chaque point

Bonjour à tous,

Je voudrais faire une analyse statistique sur la distance moyenne que sépare chaque pylône électrique en fonction de la tension des fils qu'il supporte en France (plus de 22 000 données). Pour cela, j'ai utilisé différentes options dans Qgis que je vais vous dévoiler, cependant je rencontre 2 problèmes majeurs :

1 : Pour calculer la distance entre tout les points, j'utilise "Matrice des distance", avec ces options affichées dans la photo 1, ce qui me permet de calculer uniquement le point le plus proche. Cependant, lorsqu'il y a une longue distance qui sépare 2 séries de points, cette distance n'est pas calculée, car justement, la matrice ne calcule que les distances les plus courtes. Or, j'ai besoin de toute les distances ! Démonstration dans la photo 2.


2 : Vu que j'utilise la matrice des distances sur une seule et même couche, j'ai forcément 2 points qui ont la même distance. Photo 3. Je pense que cela doit influer sur mes résultats.

Bref, tout ça pour dire que la matrice des distances ne me satisfait pas pour mon problème..... Je voudrais donc trouver un moyen de calculer toute les distances qui sépare mes points, et si possible, la situation idéale serait de pouvoir relier ces points par une ligne en fonction du champ "Tension", qui comporte la tension des fils que supporte le pylône (50 Kv, 100 Kv, Ou 400 Kv), histoire qu'un pylône de 400 Kv ne ne relie pas à un pylône de 50 Kv smile

Merci à vous.

Dernière modification par preliator (Mon 18 March 2019 10:59)


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#2 Mon 18 March 2019 11:00

preliator
Participant assidu
Date d'inscription: 17 Nov 2018
Messages: 433

Re: QGIS: Distance entre chaque point

Hors ligne

 

#3 Mon 18 March 2019 14:59

carteq
Participant assidu
Date d'inscription: 8 Mar 2008
Messages: 829

Re: QGIS: Distance entre chaque point

Pouvez-vous poster les 2 premières images, comme la 3e ? Le nouveau serveur ne donne pas accès aux 2 premières.

Hors ligne

 

#4 Mon 18 March 2019 20:47

preliator
Participant assidu
Date d'inscription: 17 Nov 2018
Messages: 433

Re: QGIS: Distance entre chaque point

Hop ! Voilà

Photo 1 : https://zupimages.net/up/19/12/jl72.jpg

Photo 2 : https://zupimages.net/up/19/12/0mlq.png

Photo 3 : https://zupimages.net/up/19/12/azhl.jpg

Dernière modification par preliator (Mon 18 March 2019 20:48)

Hors ligne

 

#5 Mon 18 March 2019 23:03

carteq
Participant assidu
Date d'inscription: 8 Mar 2008
Messages: 829

Re: QGIS: Distance entre chaque point

Avez-vous essayé le spanning tree, tel que suggéré dans votre autre post sur ce sujet ? Voici ce que ça donne (voir jpg). Ça relie tous les points avec le plus proche, sans isoler de groupes. Si vous faites une couche pour chaque tension de lignes, vous couvrirez tous vos points.

jpg : https://drive.google.com/open?id=1_1qU4 … h31UbCzAdW

Dernière modification par carteq (Mon 18 March 2019 23:05)

Hors ligne

 

#6 Tue 19 March 2019 00:21

preliator
Participant assidu
Date d'inscription: 17 Nov 2018
Messages: 433

Re: QGIS: Distance entre chaque point

Si je demande, c'est aussi parceque je n'ai pas réussi avec le spanning tree. En effet, je n'ai pas réussi avec cette méthode car un message d'erreur apparaît à chaque tentative, et je ne comprend pas comment il fonctionne

"Les couches suivantes n'ont pas été générées correctement "

Hors ligne

 

#7 Tue 19 March 2019 10:56

Pascal Boulerie
Participant assidu
Lieu: France
Date d'inscription: 12 Sep 2005
Messages: 2947
Site web

Re: QGIS: Distance entre chaque point

L'algorithme et/ou la fonction de spanning tree est-il livré avec une documentation en ligne quelque part dans le manuel du logiciel sur le site QGis.org ?


Mot-clé (pour retrouver le message ultérieurement) : SpanningTree .


« L'État est désormais quasi déliquescent. » (José Cohen-Aknine, ingénieur X-Ponts, IGPEF, dans Déliquescence et renaissance de l'État.)

Hors ligne

 

#8 Tue 19 March 2019 13:24

carteq
Participant assidu
Date d'inscription: 8 Mar 2008
Messages: 829

Re: QGIS: Distance entre chaque point

J'ai regardé l'outil v.net.spanningtree. Il ne correspond pas à mes expériences avec d'autres logiciels. Il demande en outre une couche de lignes en entrée, alors que l’algorithme sert plutôt à en générer une à partir de points à mon avis. La version Grass sert à trouver les éléments d'un réseau qui connectent les points en entrée, et ce avec le moindre coût le long du réseau.

Je vais regarder en SQL ou avec la calculatrice de champs alors.

Hors ligne

 

#9 Tue 19 March 2019 14:15

preliator
Participant assidu
Date d'inscription: 17 Nov 2018
Messages: 433

Re: QGIS: Distance entre chaque point

carteq a écrit:

J'ai regardé l'outil v.net.spanningtree. Il ne correspond pas à mes expériences avec d'autres logiciels. Il demande en outre une couche de lignes en entrée, alors que l’algorithme sert plutôt à en générer une à partir de points à mon avis. La version Grass sert à trouver les éléments d'un réseau qui connectent les points en entrée, et ce avec le moindre coût le long du réseau.

Je vais regarder en SQL ou avec la calculatrice de champs alors.


En effet, c'est pour ça que je trouvais l'outil bizarre pour mon exemple. J'ai essayé énormément de paramètres au hasard avant de réussir à ce qu'il charge quelque chose ; j'ai finalement réussi en créant une couche ligne vierge.

La j'ai tenté de l'appliquer à une couche de 800 points, ça fais 3h que Qgis réfléchis. On verra si ça répond à mon besoin.

Hors ligne

 

#10 Tue 19 March 2019 14:37

carteq
Participant assidu
Date d'inscription: 8 Mar 2008
Messages: 829

Re: QGIS: Distance entre chaque point

L'outil que j'utilise traite 20 000 points en 1 minute tout au plus je pense.

Hors ligne

 

#11 Tue 19 March 2019 14:38

preliator
Participant assidu
Date d'inscription: 17 Nov 2018
Messages: 433

Re: QGIS: Distance entre chaque point

carteq a écrit:

L'outil que j'utilise traite 20 000 points en 1 minute tout au plus je pense.


Et quel est cet outil ? Je suis très intéressé smile

Dernière modification par preliator (Tue 19 March 2019 14:47)

Hors ligne

 

#12 Tue 19 March 2019 15:17

carteq
Participant assidu
Date d'inscription: 8 Mar 2008
Messages: 829

Re: QGIS: Distance entre chaque point

écrivez-moi à vfrechette at boisaco point com. Je ne veux pas faire de publicité dans la section Open Source.

Hors ligne

 

#13 Tue 19 March 2019 22:01

carteq
Participant assidu
Date d'inscription: 8 Mar 2008
Messages: 829

Re: QGIS: Distance entre chaque point

lorsqu'il y a une longue distance qui sépare 2 séries de points


Si il y a une longue distance, n'est-ce pas justement parce que les 2 séries de points ne sont pas connectés en réalité ? J'imagine que les lignes sont équipées de pylônes placés à un intervalle assez régulier.

j'ai forcément 2 points qui ont la même distance


Cela se règle aisément par une élimination des doublons (calculatrice de champs ou SQL)

Dernière modification par carteq (Tue 19 March 2019 22:03)

Hors ligne

 

#14 Tue 19 March 2019 22:50

preliator
Participant assidu
Date d'inscription: 17 Nov 2018
Messages: 433

Re: QGIS: Distance entre chaque point

Je viens de vérifier, ces "longues" distance surviennent lorsqu'il y a par exemple présence d'une falaise ou d'un plan d'eau. Sinon, ces pylones sont toujours bien connectés en réalité.

Concernant la suppression des doublons, je me confronte toujours au problème de calcul extrêmement lent. Probablement que la encore, je n'utilise pas la bonne méthode. Quelle méthode me conseillez-vous pour supprimer des doublons dans une couche de plus de 20 000 points ?

Dernière modification par preliator (Tue 19 March 2019 22:50)

Hors ligne

 

#15 Wed 20 March 2019 13:19

carteq
Participant assidu
Date d'inscription: 8 Mar 2008
Messages: 829

Re: QGIS: Distance entre chaque point

Code:

Probablement que la encore, je n'utilise pas la bonne méthode

Quelle méthode utilisez-vous ?

Hors ligne

 

#16 Wed 20 March 2019 22:17

carteq
Participant assidu
Date d'inscription: 8 Mar 2008
Messages: 829

Re: QGIS: Distance entre chaque point

En SQL, j'ai bâti la matrice de distance, retenu les paires les plus proches et leur géométrie puis construit les lignes entre les points. Le tout en une seule requête (avec sous-requêtes). Tous les points ne sont pas encore joints.

Ensuite, il faudrait scripter en python :

- Grouper ensuite les lignes qui se touchent.
- Puis sélectionner les 2 lignes groupées qui sont les plus proches et construire la ligne la plus courte qui les relie (à partir de pylônes)
- Puis recommencer l'étape précédente jusqu'à obtenir une seule entité linéaire qui relie tous les points.

Hors ligne

 

#17 Thu 21 March 2019 11:05

preliator
Participant assidu
Date d'inscription: 17 Nov 2018
Messages: 433

Re: QGIS: Distance entre chaque point

carteq a écrit:

Code:

Probablement que la encore, je n'utilise pas la bonne méthode

Quelle méthode utilisez-vous ?


J'utilise principalement 2 méthode :

1 : MMQGIS qui permet (d'après ce que j'ai compris) de supprimer tout les points ayant strictement la même position. Malheureusement, dans mon cas, certains points sont espacés de 1m par exemple.

2 : Récemment, j'ai pu acquérir la formule suivante :

Code:

with_variable(
    'min_distance',
    15,
    case 
        when aggregate('Fusionne', 'count', "statut", filter:=distance(geometry(@parent), $geometry) < @min_distance) > 1
        then 'doublon existe'
        else 'ok'
    end
)

Qui, grâce à un champ "Statut" vide, m'indique, dans cet exemple, tout les points qui sont situés à une distance inférieure à 15m entre eux. Cependant, le temps de calcul est extrêmement long pour 22 000 points. Pourtant, j'estime avoir un bon PC.

Hors ligne

 

#18 Thu 25 April 2019 22:06

carteq
Participant assidu
Date d'inscription: 8 Mar 2008
Messages: 829

Re: QGIS: Distance entre chaque point

J'ai testé le calcul de la distance du pylone le plus près avec ceci, via une couche Spatialite:

Code:

Select min(st_distance(a.GEOMETRY, b.GEOMETRY))as dist from pilones7153 as a , pilones7153 as b where a.id <> b.id group by a.id

Ça fonctionne. Cependant, ce n'est pas performant. Pour vos 232000 points, j'estime le calcul à 52 heures.

Probablement qu'avec PostGIS, ça ira terriblement plus vite. Avec un autre logiciel à ma disposition, ça prend quelques secondes.

Hors ligne

 

Pied de page des forums

Powered by FluxBB