I_T3_03 - Ilots de chaleur urbains

I_T3_03 

Les îlots de chaleur urbains sont déterminés en creux par I-T3_02 - les ensemble de plus de 250 m² continus (hors routes et emprises ferroviaires OSM) non végétalisés.

La Vulnérabilité Sociale aux îlots de chaleur (le plus d'habitants et le moins de végétation) 

Contrairement à une analyse sur toute la ville, ce script commence par isoler les 40 carreaux les plus critiques (ceux qui ont le moins d'arbres ET le plus d'habitants). C'est un filtre de justice environnementale : on ne cherche pas seulement le bitume, on cherche le bitume là où les gens vivent et étouffent.

C'est la grande force de ce script : chaque polygone de bâti ou de parking reste "marqué" par l'identifiant de son carreau INSEE (fid).

En utilisant ST_Difference à l'intérieur des carreaux, elle crée une cartographie en "négatif" :


Comparaison pour votre rapport :

Couche Objectif Stratégique Ce qu'elle montre
Le Top 40 (ce script) Priorisation Sociale Les masses critiques là où la population est la plus exposée.
Le Top 25 (260327) Puissance Thermique Les plus grands gisements de chaleur de la ville (indépendamment de la population).



SCRIPT DES 40 entités urbaines sensibles aux îlots de chaleur 
docker exec -it alteris_postgis psql -U alteris_admin -d alteris_geo -c "
DROP TABLE IF EXISTS la_ciotat_masses_critiques_icu;

CREATE TABLE la_ciotat_masses_critiques_icu AS
WITH 
-- 1. Préparation de la voirie REPROJETÉE
voirie_l93 AS (
    SELECT ST_Union(ST_MakeValid(ST_Transform(geom, 2154))) as geom 
    FROM highway_la_ciotat
),
-- 2. Regroupement de la nature COSIA (déjà en 2154 normalement)
nature_totale AS (
    SELECT ST_Union(ST_MakeValid(geom)) as geom 
    FROM (
        SELECT geom FROM cosia_vegetation_haute
        UNION ALL
        SELECT geom FROM cosia_vegetation_basse
    ) as sub
),
-- 3. Ciblage du TOP 40 des carreaux critiques
top_carreaux AS (
    SELECT fid, geom
    FROM la_ciotat_indicateur_fraicheur
    ORDER BY taux_canopee_pct ASC, population DESC
    LIMIT 40
),
-- 4. Découpage chirurgical
masses_brutes AS (
    SELECT 
        t.fid as carreau_origine,
        ST_Difference(
            ST_Difference(t.geom, COALESCE((SELECT geom FROM nature_totale), 'GEOMETRYCOLLECTION EMPTY'::geometry)),
            COALESCE((SELECT geom FROM voirie_l93), 'GEOMETRYCOLLECTION EMPTY'::geometry)
        ) as geom
    FROM top_carreaux t
)
-- 5. Éclatement et validation
SELECT 
    carreau_origine,
    (ST_Dump(ST_MakeValid(geom))).geom as geom
FROM masses_brutes;

-- 6. Nettoyage final (Seuil 250 m2)
DELETE FROM la_ciotat_masses_critiques_icu WHERE ST_Area(geom) < 250;
"

image.png

Etape suivante la hiérarchisation 

Voici la chaîne de traitement logique, documentée étape par étape, qui nous a permis de passer des couches brutes de végétation COSIA au fichier stratégique 260327_icu_top25_la_ciotat.


Étape 1 : Préparation de l'Emprise Urbaine (Masque PLU)

Avant de calculer l'ICU, nous avons défini le périmètre d'étude réglementaire pour éviter les "faux positifs" en zone naturelle ou agricole.

SQL
-- Création d'une emprise propre en Lambert-93
WITH emprise_urbaine AS (
    SELECT ST_Union(ST_MakeValid(ST_Transform(geom, 2154))) as geom 
    FROM plu_zones_urbaines 
    WHERE typezone LIKE 'U%' OR typezone LIKE 'AU%'
)

Étape 2 : Identification du "Plein" et du "Vide" (Soustraction)

C'est le cœur du calcul I-T3_03. L'ICU est défini par ce qui n'est ni de la nature, ni de la voirie circulable, au sein de l'enveloppe urbaine.

SQL
-- Regroupement de toute la végétation COSIA
nature_totale AS (
    SELECT ST_Union(ST_MakeValid(geom)) as geom 
    FROM (
        SELECT geom FROM cosia_vegetation_haute
        UNION ALL
        SELECT geom FROM cosia_vegetation_basse
    ) as sub
),
-- Calcul des masses minérales par différence spatiale
masses_brutes AS (
    SELECT 
        ST_Difference(
            ST_Difference(urbain.geom, nature.geom),
            voirie.geom
        ) as geom
)

Étape 3 : Fragmentation et Seuil de Significativité

Le résultat brut est une "nappe" trouée. Nous l'avons éclatée en entités distinctes et avons appliqué votre seuil de 250 m² pour ne retenir que les masses ayant un impact thermique réel.

SQL
-- Éclatage des multipolygones en polygones simples
SELECT (ST_Dump(geom)).geom as geom 
FROM masses_brutes
WHERE ST_Area(geom) >= 250;

Étape 4 : Extraction du Top 25 (Production du fichier final)

Pour l'indicateur final, nous avons classé ces masses par superficie décroissante pour isoler les 25 "points noirs" les plus massifs de La Ciotat.

SQL
-- Création de la table de référence Altéris
CREATE TABLE "260327_icu_top25_la_ciotat" AS
SELECT 
    row_number() OVER (ORDER BY ST_Area(geom) DESC) as gid,
    ROUND(ST_Area(geom)::numeric, 0) as surface_m2,
    geom
FROM la_ciotat_masses_critiques_nettoyees
ORDER BY surface_m2 DESC
LIMIT 25;

-- Indexation pour performance QGIS
CREATE INDEX idx_top25_260327 ON "260327_icu_top25_la_ciotat" USING GIST (geom);


Synthèse de la donnée produite


Revision #1
Created 2026-04-10 09:16:42 UTC by Julien
Updated 2026-04-10 09:16:45 UTC by Julien