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 Fri 27 November 2015 16:55

guil31
Participant actif
Date d'inscription: 22 Jan 2013
Messages: 79

Postgres 9.1 Postgis 2.0 - st_union

Bonjour,

J'ai un problème lors de l'utilisation de st_union.
Le symptôme est assez surprenant et je sèche complètement.
Je suspecte un problème dans mes données .... mais lequel?

En entrée j'ai une table de type geometry(LineString,2154)
Il s'agit de plusieurs lignes qui peuvent se superposer partiellement et il y a plusieurs zones - cf captures 1 et 2

Ensuite je fais un st_union dessus:

Code:

create table mes_lignes_fusion as 
select st_union(the_geom) as the_geom 
from mes_lignes

Pour une seule zone mon objet résultat est dédoublé avec des décalages de plusieurs dizaines de centimètres - cf captures 3

J'ai relancé le st_union séparément sur chacune des LineString concernées et là il n'y a pas de problème.
J'ai ensuite relancé le st_union sur l'ensemble des LineString concernées et là il n'y a pas de problème.

Est-ce que quelqu'un a déjà rencontré ce type de problème ou a une idée?

Merci d'avance pour votre aide


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

Hors ligne

 

#2 Fri 27 November 2015 16:59

guil31
Participant actif
Date d'inscription: 22 Jan 2013
Messages: 79

Re: Postgres 9.1 Postgis 2.0 - st_union

ci-joint le shp correspondant a mes données en entrée


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

Hors ligne

 

#3 Sat 28 November 2015 21:20

JF BEHM
Participant actif
Lieu: toulouse
Date d'inscription: 9 Aug 2013
Messages: 126
Site web

Re: Postgres 9.1 Postgis 2.0 - st_union

Bonsoir,
je refais la manip avec tes fichiers et j'obtient le même résultat. Le décalage et la simplification ne se retrouvent que pour les 2 zones nord.
Si je les isole, je retrouve le même résultat.Il y a peut être trop de noeuds différents entre les objets des lignes qui se chevauchent et st_union fait une simplification ?
Le forum saura-t-il relever le défi et trouver l'explication ? ;o)


Jean-François Behm, formateur SIG, jf.behm@texte-a-enlever.idgeo.fr, formations@texte-a-enlever.idgeo.fr
IDGEO, www.idgeo.fr
Institut de Développement de la Géomatique  42, avenue de Général de Croutte - 31100 toulouse

Hors ligne

 

#4 Mon 07 December 2015 09:31

guil31
Participant actif
Date d'inscription: 22 Jan 2013
Messages: 79

Re: Postgres 9.1 Postgis 2.0 - st_union

Bonjour,

Je reviens à la charge car je n'ai toujours pas trouvé d'explication (et encore moins de solution) au comportement de st_union() sur mes données.

Personne a une idée ou une piste?

Hors ligne

 

#5 Mon 07 December 2015 10:05

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1554

Re: Postgres 9.1 Postgis 2.0 - st_union

Bonjour,

Testé également sur PG 9.3 Postgis 2.1.7 et PG 9.5 postgis 2.2

J'ouvrirais un ticket là: https://trac.osgeo.org/postgis/newticket

Idéalement, il faudrait trouver le plus petit ensemble de géométries qui provoque ce comportement et envoyer ces données avec le ticket pour pouvoir reproduire le problème.

Nicolas

Hors ligne

 

#6 Mon 07 December 2015 14:33

guil31
Participant actif
Date d'inscription: 22 Jan 2013
Messages: 79

Re: Postgres 9.1 Postgis 2.0 - st_union

J'ai bien essayé de faire un extrait de mes données sur la zone en question mais le problème n'apparait pas sur cet extrait!

Hors ligne

 

#7 Mon 07 December 2015 14:40

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1554

Re: Postgres 9.1 Postgis 2.0 - st_union

Oui effectivement, moi pareil.
Il faut soumettre le jeu complet alors, ou le faire parvenir à un des développeurs une fois le ticket ouvert.

Nico

Hors ligne

 

#8 Wed 24 February 2016 10:07

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1554

Re: Postgres 9.1 Postgis 2.0 - st_union

Bonjour,

Une petite suite au mail:

J'ai actuellement l'opportunité de demander directement aux cadors de PostGIS ce qu'ils pensent de ce probleme curieux de dérive de coordonnées:

• L'utilisation de st_memUnion(geom) sur le jeu de données original provoque une erreur topologique:
XX000] ERROR: GEOSUnion: TopologyException: found non-noded intersection between LINESTRING (562839 6.2927...

• Apparemment, le code de Union tente de catcher les éventuelles exceptions rencontrées et de corriger les points, entrainant une dérive.

• Une solution qui marche, indiquée par Rémi Cura, consiste à translater les coordonnées initiales pour ne pas conserver les chiffres énormes présents dans les coordonnées Lambert93 (plus la coordonnées contient de chiffres avant la virgule, plus le risque d'erreurs d'arrondis lors des calculs est grand):

La requête:

Code:

select st_union(st_translate(geom, -500000, -6200000))
from ln;

semble unir les lignes sans erreur (faut retranslater dans l'autre sens en fin de résultat).

Nicolas

Hors ligne

 

#9 Thu 25 February 2016 13:42

guil31
Participant actif
Date d'inscription: 22 Jan 2013
Messages: 79

Re: Postgres 9.1 Postgis 2.0 - st_union

Merci beaucoup pour le suivi

Hors ligne

 

#10 Tue 14 June 2016 12:50

mikl84170
Juste Inscrit !
Date d'inscription: 19 Apr 2016
Messages: 5

Re: Postgres 9.1 Postgis 2.0 - st_union

Bonjour,

Quand j'essai de réaliser une vue dans pgAdmin III un message d'erreur apparaît:
Pouvez-vous me venir en aide.
PS: j'ai réussi a faire deux vues mais pour la troisième ce message apparaît.

Je vous remercie wink


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

Hors ligne

 

#11 Tue 14 June 2016 13:17

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: Postgres 9.1 Postgis 2.0 - st_union

Bonjour,

L'ordre des colonnes ne correspondent pas ? Change SELECT *  par un SELECT col1, col2 et en faisant attention à ce que l'ordre des colonnes des différentes clauses SELECT aient un type identique (par varchar d'un côté et geometrie de l'autre).

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#12 Tue 14 June 2016 16:17

mikl84170
Juste Inscrit !
Date d'inscription: 19 Apr 2016
Messages: 5

Re: Postgres 9.1 Postgis 2.0 - st_union

Yves a écrit:

Bonjour,

L'ordre des colonnes ne correspondent pas ? Change SELECT *  par un SELECT col1, col2 et en faisant attention à ce que l'ordre des colonnes des différentes clauses SELECT aient un type identique (par varchar d'un côté et geometrie de l'autre).

Y.


Merci de votre réponse, l'ordre des colonnes ne sont pas identique suivant les différentes tables que je souhaite joindre en une vue.
Néanmoins, j'ai trouver une autre solution qui est de redéfinir mes tables ayant un problème de géométrie sur celle-ci.

Encore merci Y.

Hors ligne

 

Pied de page des forums

Powered by FluxBB