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 Wed 21 November 2012 15:09

MathieuR
Membre
Lieu: aix-en-provence
Date d'inscription: 16 Feb 2009
Messages: 1690
Site web

[postgis] ERREUR: GEOS buffer() threw an error!

Bonjour,

Je souhaite générer le tampon d'une couche géographique sur une assez grande distance: 15 km

Code:

select st_buffer(the_geom, 15000) as the_geom 
 from bati_insee_tmpn_uu_sel

Mais j'obtiens le message suivant:

Code:

NOTICE:  std::bad_alloc
ERREUR:  GEOS buffer() threw an error!

********** Erreur **********

ERREUR: GEOS buffer() threw an error!
État SQL :XX000

J'ai vérifié la validité de ma couche source bati_insee_tmpn_uu_sel de cette façon:

Code:

select count(*) , st_isvalid(the_geom) from bati_insee_tmpn_uu_sel group by st_isvalid(the_geom)

Mais aucune erreur géométrique n'est relevée.

En fait, j'ai l'impression que c'est le tampon qui est généré qui comporte des erreurs géométriques et postgis ne souhaite pas créer un objet invalide géométriquement..

Auriez-vous une idée pour solutionner le problème?

Merci!


geodata au cerema et petits billets en géomatique

Hors ligne

 

#2 Wed 21 November 2012 16:02

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

Re: [postgis] ERREUR: GEOS buffer() threw an error!

Bonjour,

Quelle version de PostGIS ?
Vous avez reussi a identifier la geometrie qui pose un probleme ?

Nicolas

Hors ligne

 

#3 Wed 21 November 2012 16:51

MathieuR
Membre
Lieu: aix-en-provence
Date d'inscription: 16 Feb 2009
Messages: 1690
Site web

Re: [postgis] ERREUR: GEOS buffer() threw an error!

Bonjour,

J'utilise

Code:

SELECT version()
"PostgreSQL 8.4.14 on i486-pc-linux-gnu, compiled by GCC gcc-4.4.real (Ubuntu 4.4.3-4ubuntu5.1) 4.4.3, 32-bit"
SELECT PostGIS_full_version()
"POSTGIS="1.4.0" GEOS="3.1.0-CAPI-1.5.0" PROJ="Rel. 4.7.1, 23 September 2009" USE_STATS"

Fait intéressan: lorsque je lance le tampon depuis QGIS, ce dernier m'indique que les tampons de certains objets n'ont pu être créés à cause d'erreurs géométriques.

En regardant le résultat, j'en vois en effet deux.

Dans postgis, je lance alors la requête de tampon de manière ciblée sur l'un des 2 objets qui pose pb et j'obtiens l'erreur citée ci-dessus

Code:

select st_buffer(the_geom, 15000) as the_geom 
from u_mr.bati_insee_tmpn_uu_sel
where uu2010='00759'

Code:

NOTICE:  std::bad_alloc
ERREUR:  GEOS buffer() threw an error!

********** Erreur **********

ERREUR: GEOS buffer() threw an error!
État SQL :XX000

Avec une valeur de tampon plus faible: 200m, je n'obtiens pas d'erreur.

peut-être cela vient-il de la version de postgis utilisée ou bien voyez-vous une autre façon de résoudre le pb?
je n'ai pas la main sur le serveur pour maj postgis..


geodata au cerema et petits billets en géomatique

Hors ligne

 

#4 Wed 21 November 2012 18:41

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

Re: [postgis] ERREUR: GEOS buffer() threw an error!

Bonsoir,

Effectivement, la version de PostGIS est tres vieille.
Il y a eu de nombreuses améliorations depuis, notamment dans le moteur algorithmique GEOS.
Si vous n'avez pas la main, pouvez-vous demander a celui ou celle qui l'a si une montée en version est possible ?

Pouvez-vous faire parvenir le ou les geometries qui plantent, qu'on regarde si des versions plus récentes règlent le pb ?

Sinon une piste peut etre:
Appliquer st_snapToGrid ou st_simplifyPreserveGeometry pour tenter de modifier légèrement les géométries en entrée (en deçà de la précision des données).

Nicolas

Hors ligne

 

#5 Thu 22 November 2012 14:55

MathieuR
Membre
Lieu: aix-en-provence
Date d'inscription: 16 Feb 2009
Messages: 1690
Site web

Re: [postgis] ERREUR: GEOS buffer() threw an error!

ok je vais regarder cela. en tout cas, merci pour ta réponse smile


geodata au cerema et petits billets en géomatique

Hors ligne

 

Pied de page des forums

Powered by FluxBB