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

Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).

En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.

#1 Wed 08 March 2017 12:37

fnixou
Participant actif
Date d'inscription: 22 Feb 2017
Messages: 82

QGIS: Petit souci de géométrie

Salut à tous,
je suis devant un problème plutôt ennuyant qui me bloque depuis hier et j'aimerai savoir si d'autres parmis vous y ont été confronté.
Je souhaite réaliser une intersection entre 2 couches à l'aide d'une requête de ce type :

SELECT t1.label as ID_ISO,
(ST_Area(ST_Intersection(t1.geom, t2.geom)))/ST_Area(t2.geom)*t2.donneesp11 as NBHAB
FROM "public"."point_1" AS t1,
"public"."PG_IRIS2" AS t2
WHERE st_intersects(t2.geom, t1.geom)


le hic c'est que je me retrouve confronté à cette erreur-ci :

ERREUR:  Error performing intersection: TopologyException: Input geom 1 is invalid: Self-intersection at or near point 629630.99999998172 6868971.9999984922 at 629630.99999998172 6868971.9999984922


J'ai vérifié ma couche qui est un isochrone et ras question géométrie par contre quand je vérifie la géométrie de ma seconde couche ( ce sont les contours iris de L'iGN) la je retrouve pas moins de 36000 erreurs de géométries. J'avoue être sacrément dans l'embarras et je ne sais trop comment m'en dépatouiller.

Du coup si vous aviez une piste que je puisse fouiller je suis preneur.

Cordialement,

Hors ligne

 

#2 Wed 08 March 2017 14:29

michel56
Participant assidu
Lieu: Lorient
Date d'inscription: 14 Jul 2012
Messages: 474

Re: QGIS: Petit souci de géométrie

Regarde comme ça: (la 1ère version déjà)

Je suppose que tes tables se nomment: t1 et t2

Code:

SELECT t1.geom AS G_Couche_t1,
t1.label AS ID_ISO,
t2.geom AS G_Couche_t2
FROM  "public"."t1", "public"."t2"
WHERE ST_Intersects(G_Couche_t2, G_Couche_t1)

Code:

SELECT t1.geom AS G_Couche_t1,
t1.label AS ID_ISO,
t2.geom AS G_Couche_t2,
(ST_Area(ST_Intersection(t1.geom, t2.geom)))/ST_Area(t2.geom)*t2.donneesp11 as NBHAB
FROM  "public"."t1", "public"."t2"
WHERE ST_Intersects(G_Couche_t2, G_Couche_t1)

Dernière modification par michel56 (Wed 08 March 2017 14:32)


Opérateur cartographique & DAO & PHP.

Hors ligne

 

#3 Wed 08 March 2017 17:25

fnixou
Participant actif
Date d'inscription: 22 Feb 2017
Messages: 82

Re: QGIS: Petit souci de géométrie

j'ai résolu mon soucis comme ceci si jamais ça peut en aider certains.

SELECT ID_ISO ,
SUM(t3.NBHAB) AS TOTHAB
FROM (SELECT t1.label as ID_ISO,
(ST_Area(ST_Intersection(ST_MakeValid(t1.geom), ST_MakeValid(t2.geom))))/ST_Area(t2.geom)*t2.donneesp11 as NBHAB
FROM "public"."PG_ISO" AS t1,
"public"."PG_IRIS2" AS t2
WHERE st_intersects(t2.geom, t1.geom)) t3
GROUP BY ID_ISO


PS : Merci pour la proposition Michel mais j 'ai finalement trouvé ma solution wink

Hors ligne

 

#4 Mon 27 March 2017 12:09

fnixou
Participant actif
Date d'inscription: 22 Feb 2017
Messages: 82

Re: QGIS: Petit souci de géométrie

je re up ce post car je me retrouve avec un problème similaire sur la requête suivante et je pense que rouvrir un poste ferait un peu doublon.

SELECT ID_ISO ,
SUM(t3.NBHAB) AS TOTHAB,
t3.geom
FROM (SELECT t1.id_jointur as ID_ISO,
t1.geom,
(ST_Area(ST_Intersection(ST_MakeValid(t1.geom), ST_MakeValid(t2.geom))))/ST_Area(t2.geom)*t2.iris_date_ as NBHAB
FROM "public"."iso_idf_detaille_1_2938" AS t1,
"public"."PG_IRIS_LAST" AS t2
WHERE st_intersects(t2.geom, t1.geom)) t3
GROUP BY ID_ISO,t3.geom


l'erreur est la suivante :

ERREUR:  GEOSIntersects: TopologyException: side location conflict at 649274.99999998661 6858376.9999984698


J'ai donc checké mes 2 tables àl'aide de st_isvalidreason, ma table t1 est ok sur l'ensemble des geometries par contre la seconde ( ma table iris qui correspond aux contours iris de l'ign ) possede de multiple self-intersection

Si vous avez une solution pour résoudre ce petit (gros) soucis je suis preneur.

Merci d'avance et bonne journée à tous

Hors ligne

 

#5 Tue 28 March 2017 13:07

Vero
Participant actif
Lieu: Echirolles
Date d'inscription: 6 Sep 2005
Messages: 50

Re: QGIS: Petit souci de géométrie

Bonjour,

J'aurai tendance à lancer cette requête dans PostGreS...

De mon côté, je m'en suis toujours sortie de cette manière... mais il y a sûrement mieux...
         
    update table_concernée
              set geom= st_multi(st_buffer(geom,0))
              where st_isvalid(geom)='FALSE';


Véronique VESTRI
Responsable SIG
Ville d'Echirolles (38)
v.vestri@texte-a-enlever.ville-echirolles.fr

Hors ligne

 

#6 Tue 28 March 2017 14:02

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3789

Re: QGIS: Petit souci de géométrie

Bonjour,
Vero, je pense qu'il est déjà dans PG.
Et ça donne quoi si tu "makevalidais" tes géométries dans ta condition, genre where st_intersects(ST_MakeValid(t2.geom), ST_MakeValid(t1.geom))?

Hors ligne

 

#7 Wed 29 March 2017 10:13

fnixou
Participant actif
Date d'inscription: 22 Feb 2017
Messages: 82

Re: QGIS: Petit souci de géométrie

déjà tenté santanna ça me donne la même erreur et oui je suis déjà sous PG vero.
Je me suis entre temps résolu à résoudre les erreurs sous grass mais je ne comprend toujours pas pourquoi le Makevalid ne fonctionne pas

Hors ligne

 

#8 Wed 29 March 2017 11:11

ppluvinet
Participant assidu
Lieu: LYON
Date d'inscription: 6 Aug 2007
Messages: 606

Re: QGIS: Petit souci de géométrie

Bonjour, Je m'en suis parfois sorti en faisant un st_snaptogrid pour nettoyer la géométrie. Cependant, ca déforme un peu la geométrie et par conséquent ca dépend du résultat attendu : Les iris par exemple ne seront pas topologiquement jointifs et il risque d'y avoir des micro-intersections entre deux iris.

Code:

 update matable
              set geom= ST_MakeValid(st_snaptogrid(geom,0.001));

Bon courage,


Pascal PLUVINET

Hors ligne

 

#9 Wed 29 March 2017 11:22

fnixou
Participant actif
Date d'inscription: 22 Feb 2017
Messages: 82

Re: QGIS: Petit souci de géométrie

j'essaierai ça sur mes autre régions ( je fais des test sur IDF mais je vais devoir faire les autres régions ).
Les intersections si elles sont minimes ne devraient pas poser de soucis .
En tout cas merci pour le conseil.

Hors ligne

 

Pied de page des forums

Powered by FluxBB