Pages: 1
- Sujet précédent - pgrouting - Somme valeurs de points a 50m max sur un reseau - Sujet suivant
#1 Wed 02 June 2021 16:53
- Jkerebel04
- Participant occasionnel
- Lieu: Oraison
- Date d'inscription: 21 Apr 2020
- Messages: 27
pgrouting - Somme valeurs de points a 50m max sur un reseau
Bonjour
J'avance petit à petit dans le monde de la cartographie SIG. Et j'aurais besoin d'un petit coup pouce pour sortir de mon ornière.
Je travail avec QGIS-GRASS et POSTGIS
J'ai réseau routier vestoriel "tab_route"
J'ai une table de point « p_stockage » avec un champ pondération « Nb_conteneur »
J'ai une table de polygone "parcelle"
Pour info, les polygones et les points sont au bord, mais pas forcément sur le réseau routier.
Je souhaite attribuer à chacun des polygones un champ indiquant la somme des "nb_conteneur" des points situés à moins de 50 m du polygone. Les 50m sont pris en compte seulement via le réseau routier et non à vol d'oiseau.
J'envisage de procéder ainsi :
1) création d'un tableau croisé de "parcelle" et de "p_stockage"
2) je détermine la distance la plus courte entre le polygone "parcelle" et le "p_stockage"
3) je ne retiens que les enregistrements ou la distance est inférieure à 50 m
4 Je fais la somme, par parcelle, du champs "Nb_conteneur"
Pourriez-vous m'indiquer si la méthode vous semble faisable et quels serait les jalons supplémentaires ?
En cherchant comme procéder, j'ai suis tombé sur pgrouting pour le calcul du chemin le plus court sur QGIS. Mais c'est une procédure one-shot.
Je voudrais itérer sur l'ensemble de ma table.
Aussi je me suis orienté vers PGadmin
Sur "Postgresql" j'ai pu installer pgrouting. Mais après la procédure devient très obscur pour moi. Je ne comprends pas le concept.
Je ne comprends pas la première étape avec la fonction "pgr_createTopology"
j'obtiens un FAIL, sans plus d'explication.
Pourriez-vous m'orienter vers un tuto un peu exhaustif avec un exemple, pour que je puisse avancer ?
Cordialement
Jérôme.
Version Pgadmin 4, postgresql12 et pgrouting 3.1.1
« Patience et longueur de temps font plus que force et ni que rage » - Jean de La Fontaine, Le Lion et le Rat.
Hors ligne
#2 Thu 03 June 2021 11:43
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1555
Re: pgrouting - Somme valeurs de points a 50m max sur un reseau
Bonjour,
Il y a pas mal de tutoriaux sur le net indiquant comment utiliser pgRouting, souvent avec des données d'exemple.
Je vous conseille de faire un de ces tuto pour bien vous familiariser avec pgRouting et la construction de votre réseau.
Pour taper vos requetes, je vous conseille un outil plus sympa que pgAdmin, comme dbeaver ou datagrip par ex. Vous verrez des messages d'erreurs explicites venant de PG.
Dans votre cas, il faudra ajouter les p_stockage au reseau routier, pour pouvoir faire un routing entre vos parcelles et ces points (points d'arrivée).
Pareil pour le point de départ, lequel allez-vous choisir: bord de la parcelle, centroid de la parcelle, point le plus proche d'une route ?
Nicolas
Hors ligne
#3 Fri 04 June 2021 10:59
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1555
Re: pgrouting - Somme valeurs de points a 50m max sur un reseau
Bonjour,
Dans PgAdmin 4, il faut aller dans l'onglet "messages" pour voir les messages d'erreurs retournés par pgr_createTopology.
Les messages y sont assez clairs, par ex:
Code:
[2021-06-03 16:17:14] [00000] PROCESSING: [2021-06-03 16:17:14] [00000] pgr_analyzeGraph('ways',1e-06,'the_geom','id','source','target','true') [2021-06-03 16:17:14] [00000] Performing checks, please wait ... [2021-06-03 16:17:14] [00000] ----> PGR ERROR in _pgr_getColumnName: Column id not found [2021-06-03 16:17:14] [00000] ERROR: something went wrong checking the column names
Nicolas
Hors ligne
Pages: 1
- Sujet précédent - pgrouting - Somme valeurs de points a 50m max sur un reseau - Sujet suivant