Fonction St_Graph

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Fonction St_Graph

Florent
Bonjour à tous,

je désire lier des sommets entre eux avec l'ajout optionnelle d'une direction entre ces deux sommets. Pour ce faire je dispose d'une table d'occurence récapitulant mes routes avec des altitudes associées.

J'ai trouvé que la fonction ST_GRAPH convenait mais quand j'exécute la commande : EXECUTE ST_Graph(fv, 0.01, true, 'fv') j'ai l'erreur suivante : Function alias "ST_GRAPH" not found.

Y a t'il une autre fonction qui permettent sous orbigis 5.1 de réaliser ce travail?

Merci à vous, je vous souhaite une bonne journée.

Florent
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Fonction St_Graph

Gwendall Petit
Administrator
Bonjour Florent,

Je crois qu'une lecture de la documentation de la fonction ST_Graph s'impose (par ici : http://www.h2gis.org/docs/dev/ST_Graph/)

Cette fonction fait partie du "package" H2Network, documenté ici http://www.h2gis.org/docs/dev/h2network/

Cordialement,

Gwendall
MD
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Fonction St_Graph

MD
Bonjour à tous,

Ce post m'intéresse car je rencontre moi-même une difficulté pour orienté un graphe. J'utilise la V 5.1.0 d'OrbisGIS.

Je souhaite réaliser un graphe orienté d'un réseau selon les valeurs altimétriques (champ 'R_AV_IGN') des extrémités de chaque tronçon de réseau.

J'effectue les instructions SQL suivantes:

-- Etape 1: Calcul du graphe orienté selon les altimétries
DROP TABLE IF EXISTS ASSAINI_EP_CONVERT_EDGES, ASSAINI_EP_CONVERT_NODES;
SELECT ST_GRAPH('ASSAINI_EP_CONVERT','THE_GEOM',0.0,TRUE);
CREATE INDEX ON ASSAINI_EP_CONVERT_EDGES (EDGE_ID);

-- Etape 2: Affectation des attributs altimétriques nécessaires à l'orientation des arc du graphe
CREATE TABLE ASSAINI_EP_CONVERT_EDGES_ALTI AS SELECT a.THE_GEOM, b.*, a.R_AV_IGN FROM ASSAINI_EP_CONVERT AS a, ASSAINI_EP_CONVERT_EDGES AS b WHERE a.PK=b.EDGE_ID;

-- Etape 3: Identification des sous graphes
CALL ST_ConnectedComponents('ASSAINI_EP_CONVERT_EDGES_ALTI', 'directed - R_AV_IGN');


J'ai le message d'erreur suivant:
Exception calling user-defined function: "getConnectedComponents(conn1770: url=jdbc:default:connection user=SA, ASSAINI_EP_CONVERT_EDGES_ALTI, directed - R_AV_IGN): Invalid edge orientation: 2"; SQL statement:
CALL ST_ConnectedComponents('ASSAINI_EP_CONVERT_EDGES_ALTI', 'directed - R_AV_IGN') [90105-186]

A première vue, je ne dois pas utiliser correctement la fonction ST_ConnectedComponents....

Une idée ?

Bonne journée.

MD


MD
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Fonction St_Graph

MD
Bonjour à tous,

J'ai continué à chercher une solution mais problème toujours pas résolu. En fait, je dois mal définir les paramètres de la fonction. Je mets mes valeurs altimétriques alors que la fonction attend plutôt une orientation (1: orientation de l'arc dans le sens start_node -> end_node, -1: orientation de l'arc dans le sens end_node -> start_node, 0: orientation de l'arc dans les deux sens).

Peut-être dois-je plutôt spécifier mes valeurs altimétriques directement dans la fonction ST_GRAPH, ce que j'ai testé mais sans succès....

Bonne fin de journée.

MD



Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Fonction St_Graph

ebocher
Administrator
Bonsoir Melissa,

Pour utiliser la fonction ST_Graph avec orientation des arcs en fonction de la pente, il faut que tes géométries aient des valeurs altimétriques. Ces valeurs sont stockées de la façon suivante : LINESTRING(3 4 1,10 50 2,20 25 3) soit x, y et z.

Bonne soirée.



-- 
Erwan Bocher
---------------------------------------------
Ingénieur de Recherche CNRS,
Laboratoire Lab-STICC – CNRS UMR 6285
Equipe DECIDE
UNIVERSITÉ DE BRETAGNE-SUD
Institut Universitaire de Technologie de Vannes
8, Rue Montaigne - BP 561 56017 Vannes Cedex
T: +33 2 97 62 64 92
W: https://cv.archives-ouvertes.fr/erwan-bocher
W: http://www.univ-ubs.fr

Le 31 mai 2016 à 17:12, MD [via OrbisGIS] <[hidden email]> a écrit :
Bonjour à tous,

J'ai continué à chercher une solution mais problème toujours pas résolu. En fait, je dois mal définir les paramètres de la fonction. Je mets mes valeurs altimétriques alors que la fonction attend plutôt une orientation (1: orientation de l'arc dans le sens start_node -> end_node, -1: orientation de l'arc dans le sens end_node -> start_node, 0: orientation de l'arc dans les deux sens).

Peut-être dois-je plutôt spécifier mes valeurs altimétriques directement dans la fonction ST_GRAPH, ce que j'ai testé mais sans succès....

Bonne fin de journée.

MD






If you reply to this email, your message will be added to the discussion below:
http://orbisgis.3871844.n2.nabble.com/Fonction-St-Graph-tp7575301p7575421.html
To start a new topic under OrbisGIS Users, email [hidden email]
To unsubscribe from OrbisGIS Users, click here.
NAML

MD
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Fonction St_Graph

MD
Bonjour Erwan,

Effectivement, ma donnée d'entrée est de la forme suivante:

|                                                                          THE_GEOM                                                                            |     R_AV_IGN   |

| MULTILINESTRING ((355783.3589828989 6689786.0837433515, 355793.6934683659 6689830.415906589))|      1              |

| etc........................................................................                                                                                                        |  etc....            |


J'ai x et y dans une colonne et z dans une seconde colonne. Si je comprends bien la fonction nécessite que x y z soient stockés dans le même champs.

Je vais donc modifier ma donnée d'entrée.

De cette manière, je pourrai utiliser la fonction de la manière suivante:
st_graph('nom_table', 'nom_champ_xyz', tolerance, orientbyslope) -> st_graph('assaini_ep', 'the_geom_xyz', 0.0, true)

Je vais tester tout cela !

Merci beaucoup!

Bonne journée.

MD
MD
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Fonction St_Graph

MD
Bonjour,

Juste pour préciser que suite aux retours de Erwan, j'ai modifié ma donnée d'entrée.

Pour ce faire, j'ai utilisé la ligne de code suivante (http://www.h2gis.org/docs/dev/ST_ZUpdateLineExtremities/):

CREATE TABLE RESEAU_EP_XYZ AS SELECT a.*, ST_ZUPDATELINEEXTREMITIES(THE_GEOM, Z_START, Z_END) from RESEAU_EP AS a;

Ensuite, j'ai pu appliquer la fonction ST_GRAPH:

SELECT ST_GRAPH('RESEAU_EP_XYZ','THE_GEOM',0.0,TRUE);

Et cela fonctionne ! :-)

Merci encore !

Bonne fin de journée.

MD

Loading...