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 Thu 16 August 2018 09:50

grunt
Participant actif
Date d'inscription: 9 Nov 2010
Messages: 90

[Postgis] ST_Union des communes en interco ok, sauf pour Grand Annecy.

Bonjour,

D'un côté, j'ai pris le fichier SHP des contours de communes OpenStreetMap que j'ai transformé en une couche Postgis par la commande shp2pgsql dans une table communes_osm_2018.
De l'autre, j'ai pris le fichier CSV de la Base Nationale des Intercommunalités (BANATIC), que j'extraie pour en faire une ligne par intercommunalité dans une table intercommunalite.
ces deux fichiers ont été pris à leur situation de mi-juin.
J'utilise aussi, pour associer les deux, le fichier des communes au 1er Janvier 2018 du Code Officiel Géographique (COG).


La géométrie des intercommunalités est mise à jour par cette requête :

Code:

UPDATE intercommunalite 
    SET geom=subquery.fusion FROM 
          (SELECT ST_Union(geom) as fusion FROM communes_osm_2018 
                  WHERE insee IN (:codesCommunesIntercommunalite)) AS subquery 
    WHERE intercommunalite.code_commune = :codeCommuneSiege

Quand je superpose ensuite dans QGis les intercommunalités en premier plan (en brun) et les communes issues d'OpenStreetMap en arrière plan (en bleu clair), le résultat est vraiment satisfaisant (cf. image "Problème grand annecy.jpg") :

Il y a bien quelques communes éparses qui ne sont pas intégrées mais très souvent ce sont des communes jeunes fusionnées très récemment. Elles peuvent poser temporairement des problèmes de mise en relation.


Malgré tout, dans le Sud-Est de la France, l'intercommunalité du Grand Annecy pose des problèmes : elle ne se forme pas correctement. Elle correspond à ces 34 codes communes-ci :

74010, 74002, 74004, 74019, 74036, 74054, 74061, 74062, 74067, 74097,
74108, 74111, 74112, 74282, 74137, 74138, 74142, 74060, 74148, 74176,
74186, 74194, 74198, 74213, 74219, 74232, 74233, 74242, 74254, 74267,
74275, 74299, 74303, 74310

Ces 34 communes sont bien présentes dans la table communes_osm_2018. Mais le ST_Union ne rassemble que deux d'entre-elles (cf. image "Problème grand annecy détail.jpg").


Que peut-il bien se passer ?
La seule piste que j'ai ce sont des données problématiques :

Quand j'exécute un contrôle sur ma table des intercommunalités qui ne contenir que les métropoles, communautés d'agglomération, communautés de communes et communautés urbaines avec cette requête :

select code_commune, count(*) from intercommunalite
    group by code_commune having count(*) > 1;


Il met en évidence un unique problème, avec Annecy, justement :
Siren, nom interco, nature, code commune puis nom commune siège, nombre de communes dans l'interco :
"200066793";"CA du Grand Annecy";"CA";"74010";"Annecy";34
"247400567";"CC Fier et Usses";"CC";"74010";"Annecy";8

Ça ne tient pas debout comme données. Il n'y a qu'une seule interco siège d'un de ces types possible par ville, et wikipédia me dit que Fier et Usses devait avoir pour siège La Balme-de-Sillingy. La ligne brute issue des périmètres d'intercommunalité BANATIC qui correspond à La Balme-de-Sillingy commence par rappeler la commune siège de l'intercommunalité avant d'en donner une commune membre. Mais son contenu, qui mentionne Annecy comme commune siège, est incorrect :

Code:

84 - Auvergne-Rhône-Alpes, 74 - Haute-Savoie, 1 - Annecy, 200063402 - Annecy, 
247400567, CC Fier et Usses, CC, 0, 0, 1993-06-17, 1994-01-01, ACCOR, , 
7, 15202, 26, FPU, 1, 0, 0, , 1, , M., François, DAVIET, 100 place Claudius Luiset
, , , 74330 SILLINGY, 04 50 77 70 74, 04 50 77 72 80, 
communaute.communes@sillingy.mairies74.org, , , , , , , 04 50 77 72 80, 
Commune, 217400266, La Balme-de-Sillingy, , , 5182, 247400013, 
Syndicat mixte du Lac d'Annecy, 271049, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1,
 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 
0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1

Corriger cette commune siège fausse ça va être une chose, mais je ne comprends pas comment le ST_Union a pu décider à partir de ce qui a été jusqu'à 41 communes qui lui ont été présentées (Annecy étant dans les deux ensembles) la réunion de deux communes ?
C'est à dire qu'il a fait une intersection, en fin de compte ?

Si c'est le cas, cela veut dire que j'ai encore une autre commune qui coince et est déclarée dans deux intercommunalités.
Je suis un peu perplexe devant tout ce que je vois. Mon expérience avec les SIG est toute fraîche et je crains d'interpréter des choses n'importe comment.


Comment je dois appréhender une situation de ce genre ? C'est normal que ça arrive ou je m'y suis mal pris ?


Merci !

Dernière modification par grunt (Thu 16 August 2018 10:45)


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

Hors ligne

 

#2 Thu 16 August 2018 11:15

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

Re: [Postgis] ST_Union des communes en interco ok, sauf pour Grand Annecy.

Bonjour,

Bon courage avec les communes et les listes fournies par OSM ou l'état smile
(je veux dire par là: sortir la liste "officielle" des communes ou interco à une date donnée n'est pas super simple)

(sinon non: si vous demandez une Union a PostGIS, il fait une union et pas une intersection)

Nico

Hors ligne

 

#3 Thu 16 August 2018 11:41

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

Re: [Postgis] ST_Union des communes en interco ok, sauf pour Grand Annecy.

Les code_insee dans les différentes sources sont bien corrects ?

Nicolas

Hors ligne

 

#4 Thu 16 August 2018 16:42

grunt
Participant actif
Date d'inscription: 9 Nov 2010
Messages: 90

Re: [Postgis] ST_Union des communes en interco ok, sauf pour Grand Annecy.

Oui, tout est bon côté identifiants, avec la liste que j'ai mentionnée,
74010, 74002, 74004, 74019, 74036, 74054, 74061, 74062, 74067, 74097,
74108, 74111, 74112, 74282, 74137, 74138, 74142, 74060, 74148, 74176,
74186, 74194, 74198, 74213, 74219, 74232, 74233, 74242, 74254, 74267,
74275, 74299, 74303, 74310
que me donne Banatic pour la CA Annecy je retrouve bien 34 enregistrements de l'autre côté, OpenStreetMap.


Je préviens Banatic pour le problème. Je ferai un essai d'ici dix jours pour voir si en supprimant la C.C. fausse ou en la modifiant ça arrange les choses.
Comment ça se passe si deux enregistrements Postgis ont un Multipolygone chacun
et que ces deux multipolygones se superposent en partie l'un sur l'autre, comme c'est le cas ici ?

J'essaie de comprendre ce que QGis me montre. Je ne me l'explique pas.

Effectivement, reconstituer le maillage du territoire à partir du COG et des fichiers Banatic m'a pris près de trois mois tellement les situations sont étranges, et les clefs d'accès différentes. Une commune est représentée par un code commune, mais une intercommunalité par un SIREN. Parfois, les codes communes ne sont pas connus pour les communes jeunes. C'est un sacré bazar.

Dernière modification par grunt (Thu 16 August 2018 22:41)

Hors ligne

 

Pied de page des forums

Powered by FluxBB