Annonce
Pour sa 21ème année, l’association GeoRezo a toujours besoin de vous !
10€ = 1 mois de frais bancaires ; 15€ = 12 mois de nom de domaine ; 30€ = 1 semaine de location des serveurs …
Retrouver nos membres bienfaiteurs
Pages: 1
- Sujet précédent - [Postgis] ST_Union des communes en interco ok, sauf pour Grand Annecy. - Sujet suivant
#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)
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
(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
Pages: 1
- Sujet précédent - [Postgis] ST_Union des communes en interco ok, sauf pour Grand Annecy. - Sujet suivant