# Population des communes de Vendée : méthode et reproduction

Édition du 8 septembre 2026. Analyse de la population municipale entre le
1er janvier 2017 et le 1er janvier 2023, sur les 253 communes de Vendée dans
la géographie statistique au 1er janvier 2025.

## Sources originales conservées

- Insee, Historique des populations communales 1876–2023, fichier XLSX
  publié le 18 décembre 2025 :
  https://www.insee.fr/fr/statistiques/3698339
  Fichier : https://www.insee.fr/fr/statistiques/fichier/3698339/base-pop-historiques-1876-2023.xlsx
- Insee, Populations de référence 2023, Vendée, publié le 29 décembre 2025 :
  https://www.insee.fr/fr/statistiques/8643952?geo=DEP-85
- API Découpage administratif, contours des communes de Vendée, réponse
  consultée le 8 septembre 2026 :
  https://geo.api.gouv.fr/departements/85/communes?fields=nom,code&format=geojson&geometry=contour

Les fichiers sont conservés dans data/raw/population-vendee/. Le classeur
XLSX n'est pas modifié. Les réponses GeoJSON et HTML sont compressées en
gzip sans modification de leurs octets décompressés. Le manifeste consigne
l'URL, l'instant de récupération UTC, la taille et le SHA-256 de la réponse
originale (après décompression pour les fichiers .gz).
Le registre data/sources.json relie chaque figure à son producteur.
Les données Insee relèvent de la Licence ouverte 2.0 :
https://www.insee.fr/fr/information/2008466

## Extraction et harmonisation

Le script ouvre le format ZIP/XML du classeur avec la bibliothèque standard
Python. Il repère les noms de variables, puis sélectionne DEP = 85.
Il extrait CODGEO, LIBGEO, PMUN2017 et PMUN2023 ; les codes restent des
chaînes et les populations des entiers.

L'Insee a déjà harmonisé les deux millésimes selon les limites communales
du 01/01/2025. Aucune fusion n'est donc recalculée par Vendéedata et les
populations des anciennes communes ne sont pas ajoutées une deuxième fois.
Ainsi Les Sables-d'Olonne et Montaigu-Vendée sont comparées sur un même
périmètre, même si leur organisation administrative a évolué depuis 2017.

Le millésime 2023 décrit la population au 01/01/2023, pas celle de 2026.
L'écart de six ans respecte la recommandation de l'Insee après le report
de l'enquête de recensement de 2021 :
https://www.insee.fr/fr/statistiques/8681011

## Formules et arrondis

Pour a = PMUN2017 et b = PMUN2023 :
- gain absolu : b - a ;
- variation en pourcentage : (b / a - 1) × 100 ;
- taux annuel moyen composé : ((b / a)^(1/6) - 1) × 100.

Les CSV/JSON enregistrent les taux à six décimales, l'article les affiche à
une décimale. Les totaux sont calculés à partir des effectifs entiers,
jamais en moyennant les taux des communes. Le tri absolu utilise les gains
entiers ; les égalités sont départagées par code Insee. Le tri relatif
utilise le taux à six décimales avant arrondi d'affichage.

La part des dix premiers gains rapporte leur somme à l'augmentation nette
du département, donc après prise en compte des communes en baisse.
La catégorie "stable" exige un écart exactement égal à zéro.

## Carte

La jointure utilise uniquement CODGEO/code, pas les noms. Les 253 codes sont
présents une seule fois dans chaque source. La géométrie de localisation
vient de la réponse courante de l'API le 08/09/2026 ; elle n'est pas utilisée
pour calculer ou réagréger les populations en géographie statistique 2025.
La correspondance des codes n'est pas une preuve d'identité de chaque
limite entre les deux dates. La carte est un repère éditorial, pas un
document cadastral ou un outil de mesure des surfaces.

Les Polygon et MultiPolygon, îles et anneaux intérieurs sont conservés.
Les anneaux sont simplifiés par Douglas-Peucker (tolérance 0,0004 degré).
Une projection équirectangulaire locale, corrigée à la latitude 46,7°,
produit les chemins SVG. Les barres statistiques partent de zéro.

Classes cartographiques : baisse (< 0), stable (= 0), hausse de moins de
5 %, hausse de 5 à moins de 10 %, hausse d'au moins 10 %. Les communes en
baisse sont hachurées. Un tableau HTML contient les effectifs et les taux
de toutes les communes, afin que la couleur ne soit jamais le seul accès.

## Contrôles attendus

- 253 codes distincts et jointure cartographique complète ;
- 675 247 habitants en 2017 ;
- 713 609 habitants en 2023 ;
- +38 362 habitants (+5,681180 %, +0,925198 % par an) ;
- 199 communes en hausse, 53 en baisse, une stable ;
- somme des gains communaux égale à la différence des totaux ;
- CSV public strictement identique au CSV traité ;
- deux exécutions produisent les mêmes octets ;
- vérification des empreintes de chaque source avant calcul.

Les totaux ont été recoupés avec le tableau départemental de l'Insee archivé.
Ces contrôles établissent la cohérence du traitement, pas l'absence
d'incertitude statistique dans le recensement. De faibles écarts ne doivent
pas être surinterprétés. L'analyse ne démontre aucune cause migratoire,
naturelle, immobilière ou économique.

## Reproduire

Depuis la racine du dépôt, avec Python 3.10 ou ultérieur, sans dépendance
Python externe :

    python scripts/build_population_vendee.py
    python scripts/check_population_vendee.py

Le traitement normal est hors ligne. Si un fichier source manque :

    python scripts/build_population_vendee.py --fetch

Cette option vérifie l'empreinte attendue et refuse une édition modifiée en
amont. Utiliser les sources archivées pour reproduire exactement cette
publication ; toute mise à jour demande une nouvelle édition du manifeste.

Pour le site, Node.js et npm :

    npm ci
    npm run lint
    npm run typecheck
    npm run build
    npm run start

Page : /analyses/population-communes-2017-2023

## Lecture territoriale ajoutée le 11 septembre 2026

L’export ANCT `typo_loilitt.loilitt_simp`, niveau `com2025`, est conservé sans modification dans `data/raw/population-littoral/classement-loi-littoral-com2025.xlsx`. La notice producteur et le manifeste SHA-256 accompagnent le classeur. Le classement n’est pas une bande de distance à la mer : les communes NC comprennent le proche arrière-pays. Le document distingue les communes partiellement classées ; aucune des 253 lignes vendéennes n’a ce statut dans cet export. Le script s’arrête si un statut autre que C ou NC apparaît, au lieu de le ranger silencieusement.

Reproduction hors ligne (Python 3.10+, bibliothèque standard uniquement) :

```
python scripts/build_population_littoral.py
python scripts/check_population_littoral.py
```

La jointure s’effectue par code Insee, jamais par nom. Les 30 communes C constituent le groupe littoral et les 223 NC le groupe intérieur. Les populations municipales entières sont additionnées dans chaque groupe. Le taux global est `100 × (somme 2023 − somme 2017) / somme 2017`. La part du gain est rapportée à l’augmentation nette départementale, et non à la somme des seules hausses. La part initiale utilise la population 2017. La médiane des taux communaux donne un poids identique à chaque commune ; les taux sont recalculés sur les entiers avant cette opération. Pour le contrôle de sensibilité, seule la commune 85194 est retirée du groupe littoral. Ce test ne contrôle pas les autres différences entre les deux groupes.

Les deux CSV exportés contiennent les 253 codes, les statuts C/NC, les groupes, les populations et les identifiants des deux sources. Les groupes sont disjoints et leur réunion restitue chaque total départemental. Les sorties doivent être identiques après une seconde exécution.

### Conventions de l’atlas en relief

La carte reprend les contours simplifiés et leur projection locale déjà documentés. La caméra est orthographique. Pour le mode taux, 1 point de pourcentage vaut 2,3 unités graphiques de hauteur ; pour le mode effectifs, 1 habitant vaut 0,014 unité. Le plan zéro est commun à toutes les communes ; une variation négative descend sous ce plan. Une épaisseur minimale de 0,2 unité assure la visibilité des très petites variations et du zéro : la hauteur de ces communes ne doit pas être lue comme une mesure exacte. Les fiches et le tableau donnent les valeurs calculées, arrondies à une décimale pour les pourcentages. Le volume des prismes n’encode aucune donnée, car les surfaces des communes diffèrent. La grille sous la carte est un décor de perspective, sans unité géographique.

Les couleurs distinguent les hausses du littoral, les hausses de l’intérieur et les baisses ; la sélection affiche le signe et le groupe en texte. La vue à plat retire les hauteurs. L’animation représente une transition graphique entre deux modes et non une série annuelle. Les calculs décrivent une évolution de résidents habituels, pas un flux de nouveaux arrivants. Aucune relation causale avec les prix du logement, les retraites ou le tourisme n’est inférée de ces seuls chiffres.
