Origine des données INSEE RGP Communes et IRIS
Les données RGP sont accessibles sur cette page pour 2025
Sur cette page pour 2016.
Il faut télécharger les rubriques Logements et Individus.
------pour mémoire------------------
LE DOSSIER COMPLET NATIONAL
https://www.insee.fr/fr/statistiques/5359146
Les dossiers complets par commune (changer code insee)
https://www.insee.fr/fr/statistiques/2011101?geo=COM-83009
-----------------------------------------------------------------
Pour les fichiers RGP (1.1 Go chacun), filtrer sur PACA (04, 05, 06, 13, 83, 84) avant l'injection est une excellente décision : cela va économiser énormément d'espace disque et accélérer tes requêtes SQL futures.
Comme nous n'avons pas d'outil de filtrage lourd, on va utiliser la puissance native de awk sur Debian pour streamer uniquement les lignes dont le code département commence par un de tes départements cibles.
1. Préparation des tables réceptacles
D'abord, on crée les structures vides dans PostGIS.
docker exec -i alteris_postgis psql -U alteris_admin -d alteris_geo -c "
CREATE TABLE IF NOT EXISTS insee_raw.rgp_individus_paca_2025 (
id serial PRIMARY KEY,
donnees jsonb -- On peut stocker en JSONB pour la flexibilité ou définir les colonnes
);
CREATE TABLE IF NOT EXISTS insee_raw.rgp_logements_paca_2025 (
id serial PRIMARY KEY,
donnees jsonb
);"
2. Injection filtrée (Le "Stream")
Voici la commande pour ne garder que la Région PACA. Note : Je pars du principe que le code département est dans la 2ème ou 3ème colonne. Si tu as un doute sur la position de la colonne, dis-le moi.
Individus (Filtre Départements 04,05,06,13,83,84) :
awk -F',' 'NR==1 || $2 ~ /^(04|05|06|13|83|84)/' "/home/debian/data/INSEE_RGP_2022-25_Individus_zone E.csv" | \
docker exec -i alteris_postgis psql -U alteris_admin -d alteris_geo \
-c "COPY insee_raw.rgp_individus_paca_2025 FROM STDIN WITH (FORMAT CSV, HEADER, DELIMITER ',', ENCODING 'UTF8');"
Logements (Filtre Départements 04,05,06,13,83,84) :
awk -F',' 'NR==1 || $2 ~ /^(04|05|06|13|83|84)/' "/home/debian/data/INSEE_RGP_2022-25_Logements_zone E.csv" | \
docker exec -i alteris_postgis psql -U alteris_admin -d alteris_geo \
-c "COPY insee_raw.rgp_logements_paca_2025 FROM STDIN WITH (FORMAT CSV, HEADER, DELIMITER ',', ENCODING 'UTF8');"
Pourquoi cette méthode ?
-
Rapidité :
awktraite le fichier ligne par ligne sans le charger en mémoire vive. -
Efficacité : Seules les lignes utiles traversent le pipe vers Docker.
-
Propreté : On garde le
HEADER(la première ligne) pour que la commandeCOPYne soit pas perdue.
Vérifie juste une chose : Peux-tu me donner les 3 premières lignes d'un des fichiers avec head -n 3 "/home/debian/data/INSEE_RGP_2022-25_Individus_zone E.csv" ? Cela me permettra de confirmer le numéro de la colonne département pour ajuster le $2 dans la commande awk.
3- Identification du nom de la colonne
Lance cette commande pour être certain du nom de la colonne (car l'INSEE utilise parfois COMM ou COMMUNE) :
docker exec -i alteris_postgis psql -U alteris_admin -d alteris_geo -c "SELECT column_name
Bingo ! On a le jackpot. Regarde bien les trois premières lignes du résultat :
-
commune: On a bien le code commune (83009 pour Bandol). -
arm: Utile pour Marseille (arrondissements). -
iris: C'est la surprise du chef. Tes fichiers RGP contiennent déjà le code IRIS. On n'aura pas besoin d'attendre cet après-midi pour faire de la dentelle géographique.
C'est très clair. La documentation varmod_indcvi_2022.csv que tu as partagée se confirme : dans le fichier Individus, la colonne commune n'existe pas en tant que telle. L'échelle la plus fine disponible ici est cantville ou iris (si elle apparaît plus bas dans la liste).
Pour le fichier Logements, nous avons vu qu'il contient commune. Mais pour les Individus, nous devons ruser.
1. Vérification de la présence de la colonne iris
Avant de filtrer, vérifions si iris est présent dans la table Individus (comme c'était le cas pour les Logements) :
docker exec -i alteris_postgis psql -U alteris_admin -d alteris_geo -c "
SELECT column_name FROM information_schema.columns
WHERE table_name = 'rgp_individus_paca_2025' AND table_schema = 'insee_raw' AND column_name = 'iris';"
2. Stratégie d'indexation et d'extraction
Si iris existe : On utilise les 5 premiers chiffres de l'IRIS (qui correspondent au code commune).
# Indexation sur IRIS
docker exec -i alteris_postgis psql -U alteris_admin -d alteris_geo -c "CREATE INDEX idx_rgp_ind_iris ON insee_raw.rgp_individus_paca_2025 (iris);"
# Extraction Bandol (83009) via IRIS
docker exec -i alteris_postgis psql -U alteris_admin -d alteris_geo -c "
CREATE TABLE bandol.stats_individus AS
SELECT * FROM insee_raw.rgp_individus_paca_2025
WHERE iris LIKE '83009%';"
C'est parfait. La colonne iris est présente dans les deux tables. C'est la clé de voûte de notre structuration car elle permet une précision chirurgicale (le quartier) là où cantville est trop large.
Voici la séquence de commandes pour finaliser l'extraction de Bandol proprement :
1. Indexation sur la colonne iris (Individus)
docker exec -i alteris_postgis psql -U alteris_admin -d alteris_geo -c "CREATE INDEX IF NOT EXISTS idx_rgp_ind_iris ON insee_raw.rgp_individus_paca_2025 (iris);"
2. Création de la table Individus pour Bandol
Pour Bandol (code commune 83009), on récupère tous les IRIS commençant par ces 5 chiffres.
docker exec -i alteris_postgis psql -U alteris_admin -d alteris_geo -c "
CREATE TABLE bandol.stats_individus AS
SELECT * FROM insee_raw.rgp_individus_paca_2025
WHERE iris LIKE '83009%';"
3. Création de la table Logements pour Bandol
On utilise la colonne commune qui est déjà présente dans cette table.
docker exec -i alteris_postgis psql -U alteris_admin -d alteris_geo -c "
CREATE TABLE bandol.stats_logements AS
SELECT * FROM insee_raw.rgp_logements_paca_2025
WHERE commune = '83009';"
Vérification finale du contenu
Une fois ces commandes passées, on vérifie que les deux tables sont bien peuplées :
docker exec -i alteris_postgis psql -U alteris_admin -d alteris_geo -c "
SELECT 'Individus Bandol' as label, count(*) FROM bandol.stats_individus
UNION ALL
SELECT 'Logements Bandol' as label, count(*) FROM bandol.stats_logements;"
Une fois que tu as ces chiffres, nous sommes prêts pour la première analyse Nexte_Stats. Par exemple : calculer le taux de motorisation des ménages de Bandol (combien ont 0, 1 ou 2 voitures via la variable voit) croisé avec leur quartier (iris).
-------------------------------
Re pour 2016
C'est parfait, les fichiers sont là et font la même taille que ceux de 2022 (~1.1 Go), ce qui confirme qu'on a bien les bases complètes.
Voici le protocole pour intégrer 2016 et préparer l'analyse d'évolution pour Nexte_Stats.
1. Création et Import des Individus 2016
On utilise la méthode dynamique pour créer les colonnes automatiquement.
# Création de la table
head -n 1 "/home/debian/data/INSEE_RGP_2016-19_Individus.csv" | sed 's/;/ text,/g' | sed 's/$/ text/' | xargs -I {} docker exec -i alteris_postgis psql -U alteris_admin -d alteris_geo -c "CREATE TABLE IF NOT EXISTS insee_raw.rgp_individus_paca_2016 ({});"
# Injection PACA
awk -F';' 'NR==1 || $1 ~ /^(04|05|06|13|83|84)/' "/home/debian/data/INSEE_RGP_2016-19_Individus.csv" | \
docker exec -i alteris_postgis psql -U alteris_admin -d alteris_geo \
-c "COPY insee_raw.rgp_individus_paca_2016 FROM STDIN WITH (FORMAT CSV, HEADER, DELIMITER ';', ENCODING 'UTF8');"
2. Création et Import des Logements 2016
# Création de la table
head -n 1 "/home/debian/data/INSEE_RGP_2016-19_Logements.csv" | sed 's/;/ text,/g' | sed 's/$/ text/' | xargs -I {} docker exec -i alteris_postgis psql -U alteris_admin -d alteris_geo -c "CREATE TABLE IF NOT EXISTS insee_raw.rgp_logements_paca_2016 ({});"
# Injection PACA
awk -F';' 'NR==1 || $1 ~ /^(04|05|06|13|83|84)/' "/home/debian/data/INSEE_RGP_2016-19_Logements.csv" | \
docker exec -i alteris_postgis psql -U alteris_admin -d alteris_geo \
-c "COPY insee_raw.rgp_logements_paca_2016 FROM STDIN WITH (FORMAT CSV, HEADER, DELIMITER ';', ENCODING 'UTF8');"
3. Extraction Bandol 2016
Maintenant, on isole Bandol (83009). On vérifie si les colonnes sont les mêmes (iris pour les individus, commune pour les logements).
# Extraction Individus 2016
docker exec -i alteris_postgis psql -U alteris_admin -d alteris_geo -c "
CREATE TABLE bandol.stats_individus_2016 AS
SELECT * FROM insee_raw.rgp_individus_paca_2016
WHERE iris LIKE '83009%';"
# Extraction Logements 2016
docker exec -i alteris_postgis psql -U alteris_admin -d alteris_geo -c "
CREATE TABLE bandol.stats_logements_2016 AS
SELECT * FROM insee_raw.rgp_logements_paca_2016
WHERE commune = '83009';"
Pourquoi c'est génial pour ton projet :
Une fois ces commandes terminées, on pourra lancer la requête de la "Vérité" : L'évolution de la population réelle de Bandol en 6 ans.
Lance ces imports (compte environ 5 minutes pour l'ensemble). Dès que c'est fini, on compare les chiffres de 2016 avec les 8 268 habitants de 2022 !
No comments to display
No comments to display