Pour construire ces graphiques, nous avons trié les fichiers, contrôlé les calculs et choisi comment présenter les résultats. Cette page rassemble notre démarche et les données que vous pouvez réutiliser.
Nous avons utilisé une station pour suivre les températures, la carte LCZ pour regarder les espaces et Climadiag pour les projections. Le Plan Climat nous a aidées à replacer les pistes d’adaptation dans le contexte local.
Météo-France
Jeu : Données changement climatique - SQR (Séries Quotidiennes de Référence).
Producteur : Météo-France. Période retenue : 1959–2022, station 25056001, Besançon.
Les séries mensuelles SH_MTX325056001.csv et SH_MTN325056001.csv figurent dans l’exploration du notebook ; elles ne servent pas au calcul de ces trois vues quotidiennes.
Utilisation : nuits chaudes (minimum ≥ 20 °C) et journées très chaudes (maximum > 35 °C), en nombre annuel. Valeur médiane et fourchette basse–haute sont distinguées des observations.
Les huit chiffres du JSON reprennent le notebook et ont été recoupés le 21 octobre 2026 avec les données officielles chargées par l’application pour Besançon (indicateurs S1 et S2, horizon 2050), après arrondi à l’unité. Le fichier local porte la date du 19 octobre 2026.
Document : Plan Climat Air Énergie Territorial 2024–2029, document de mars 2025.
Producteur : Grand Besançon Métropole.
Utilisation : contexte territorial et adaptation ; actions 10 et 11, pages imprimées 36–37 (page 19 du PDF), sur la place du végétal, l’infiltration et la renaturation.
Ces orientations ne constituent pas des effets mesurés par nos graphiques. Le document est consultable sur le site de Grand Besançon Métropole.
Récupérer. Les observations Météo-France et l’extrait Cerema alimentent le travail Observable. Les CSV originaux restent hors du dépôt.
Lire et contrôler. Les scripts lisent les CSV, ignorent les commentaires et contrôlent les dates ainsi que les doublons. Le GeoJSON est validé avant l’affichage.
Sélectionner. Pour les températures, seules la date, la maximale quotidienne et la qualité sont nécessaires. Pour V2, les géométries, classes, familles et surfaces sont conservées.
Fixer le périmètre. Les calculs historiques portent sur 1959–2022. Les prolongements 2023–2024 présents dans les JSON convertis sont exclus du périmètre homogénéisé retenu. V1 et V3 utilisent juin, juillet et août ; V4 utilise l’année entière.
Filtrer la qualité. Seules les observations Q_SQR = 1 avec une valeur numérique valide sont retenues. Une valeur vide ou invalide n’est jamais remplacée par zéro.
Calculer. V1 compte les journées par classe de 2 °C ; V3 calcule une moyenne par été ; V4 compte les maximales atteignant ou dépassant chaque seuil, puis calcule une moyenne mobile sur dix années consécutives.
Vérifier la couverture. Le script V1 vérifie les années civiles complètes avant la sélection estivale. V3 exige 92 jours d’été ; V4 exige 365 ou 366 jours par année. Les 64 années retenues sont complètes pour les indicateurs utilisés ; aucune n’a été exclue pour couverture insuffisante dans ce jeu.
Préparer les exports. Les effectifs sont entiers. Les moyennes estivales sont conservées à quatre décimales dans le JSON, puis affichées à deux. Les surfaces LCZ sont conservées à quatre décimales en km², affichées à deux ; les parts utilisent la somme des surfaces de l’extrait.
Intégrer. Astro lit les JSON de src/assets/. V1 et V3 sont rendues à la construction du site ; les données de V2 et V4 sont chargées pour les interactions dans le navigateur.
Nos choix de graphiques
Nos quatre visualisations
Nous avons choisi une représentation pour chaque question. Ces quatre fiches expliquent ce que nous montrons, comment le lire et où retrouver les valeurs sans passer par le graphique.
V1
Distribution estivale
Question
Quelles températures maximales rencontre-t-on pendant les étés étudiés ?
Famille
Distribution : histogramme d’effectifs.
Encodage et justification
La position horizontale indique une classe de température de 2 °C ; la hauteur indique son nombre de journées. Une largeur constante permet de comparer les effectifs et de repérer les températures fréquentes. Le repère à 30 °C situe les journées les plus chaudes.
Unité et dénominateur
Journées par classe, parmi 5 888 journées de juin à août, de 1959 à 2022. Bornes inférieures incluses, supérieures exclues.
Titre et sous-titre informatifs
« 682 journées d’été à 30 °C ou plus sur 5 888 étudiées » — « Besançon · juin à août · 1959–2022 ».
Alternative textuelle
Le texte donne la classe la plus fréquente et le nombre de journées atteignant 30 °C. Un tableau dépliable reprend les 17 classes et leurs effectifs.
Comment les types d’espaces se répartissent-ils dans le secteur central de Besançon ?
Famille
Carte catégorielle interactive.
Encodage et justification
La position restitue la géographie. Les couleurs regroupent les 14 classes en six familles : bâti compact, bâti ouvert ou diffus, bâti et sols imperméables, végétation, sol nu, eau. Les filtres permettent de choisir tous les espaces, les espaces bâtis et imperméabilisés, ou la végétation et l’eau, puis une classe précise. Une légende et des libellés complètent les couleurs.
Unité et dénominateur
Surfaces en km² et parts du secteur étudié, calculées à partir des surfaces de l’extrait. Le secteur est un carré de 8 × 8 km, pas la commune entière.
Titre et sous-titre informatifs
« Où se trouvent les différents types d’espaces ? » — « Cerema · LCZ SPOT 2022 · secteur central de Besançon, environ 8 × 8 km ».
Alternative textuelle
Le tableau dépliable des 14 classes présente libellé, famille, surface et nombre de polygones sources. La part du secteur correspondant au filtre est annoncée au-dessus de la carte. Les informations de la carte sont aussi accessibles au clavier ; un message et le tableau restent disponibles si la carte échoue.
Comment la température maximale moyenne des étés évolue-t-elle entre 1959 et 2022 ?
Famille
Évolution : courbe chronologique avec points annuels.
Encodage et justification
Les années sont sur l’axe horizontal et les moyennes sur l’axe vertical. La ligne relie les étés et rend lisible leur variation ; le maximum est annoté. L’axe vertical est resserré pour lire les écarts : il ne part pas de zéro.
Unité et dénominateur
°C ; moyenne arithmétique des 92 températures maximales quotidiennes de juin à août par année. Comparaison des moyennes de 30 étés : 1961–1990 et 1991–2020.
Titre et sous-titre informatifs
« Les maximales moyennes d’été ont augmenté de 1,69 °C entre deux périodes de 30 ans » — « Besançon · 1959–2022 · moyenne des maximales quotidiennes de juin à août ».
Alternative textuelle
Le texte compare les deux périodes et signale l’été le plus chaud selon cet indicateur. Le tableau dépliable donne les 64 années, leur moyenne et leur couverture estivale.
Combien de journées atteignent ou dépassent 25, 30 ou 35 °C chaque année ?
Famille
Comparaison annuelle interactive : barres et moyenne mobile.
Encodage et justification
La hauteur d’une barre indique le comptage annuel. Une ligne montre la moyenne sur dix années consécutives, à partir de la dixième année. Les boutons radio changent le seuil et mettent à jour le graphique, le récit et le tableau. Changer le seuil permet de distinguer chaleur fréquente et plus rare.
Unité et dénominateur
Journées par année civile entière, sur 365 ou 366 observations valides ; température maximale ≥ au seuil. Ce comptage n’est pas limité à l’été.
Titre et sous-titre informatifs
Le titre suit le seuil ; initialement : « Jusqu’à 39 journées à 30 °C ou plus en 2003 » — « Besançon, 1959–2022 · journées par année civile complète ».
Alternative textuelle
Les résultats et l’année record sont annoncés dans le texte. Le tableau annuel suit le seuil sélectionné. Sans JavaScript, le tableau initial à 30 °C reste lisible ; les contrôles natifs fonctionnent au clavier.
A : génération du graphique pendant la construction du site. B : génération ou mise à jour dans le navigateur. C : génération d’une page statique par valeur ; cette méthode n’est utilisée par aucune de nos quatre vues.
Méthodes effectivement utilisées
Vue
Méthode
Pourquoi ce choix ?
V1
A
Histogramme fixe : SVG générés au build avec Plot et JSDOM, variantes adaptées aux petits et grands écrans.
V2
B
Leaflet chargé dans le navigateur ; filtres, sélection, déplacement et zoom interactifs. Le tableau existe dès le build.
V3
A
Courbe fixe générée au build avec Plot et JSDOM, sans calcul interactif requis.
V4
B
Plot chargé dans le navigateur ; le seuil modifie immédiatement les comptages affichés. Le tableau initial à 30 °C existe dès le build.
Des fonctions qui reçoivent leurs données
createTemperatureDistribution(data, options) et createHeatTrends(data, options) créent un graphique sans dépendre d’une cellule Observable. V4 sépare préparation des comptages, modèle du seuil et rendu Plot. V2 sépare validation, sélection et résumé des classes du script d’interface Leaflet. Les dépendances à FileAttachment et view sont remplacées par des imports ou des chargements explicites.
Ce que nous gardons en tête
Ce que nos données permettent de dire — et ce qu’elles ne permettent pas de dire
Une station, pas tous les quartiers. Les observations de la station 25056001 ne décrivent pas toutes les variations locales et ne mesurent pas directement un îlot de chaleur urbain.
Une couverture contrôlée. Les valeurs invalides et hors période sont écartées. L’absence d’une observation n’est pas une journée sans chaleur. Les critères de complétude diffèrent selon l’indicateur.
Un paysage, pas un thermomètre. Les classes LCZ décrivent la morphologie et la couverture des sols en 2022, dans un secteur limité et simplifié. Elles ne prouvent pas la température d’un quartier ni son évolution historique.
Un futur assorti d’incertitudes. Climadiag présente des projections, pas des observations. La référence 1976–2005 diffère des périodes historiques 1961–1990 et 1991–2020 ; leurs écarts ne sont pas interchangeables. Les fourchettes ne prédisent pas une année précise.
Des interprétations à encadrer. Une journée au-dessus d’un seuil ne suffit pas à définir une canicule. Nos vues n’établissent ni causalité entre forme urbaine et température, ni effet sanitaire, ni efficacité chiffrée d’un aménagement. Les pistes d’adaptation sont des orientations.
Pour reprendre les fichiers
Réutiliser nos données
Ces quatre téléchargements reprennent les données nettoyées des visualisations. Les fichiers bruts du défi ne sont pas publiés. Les sources restent dans src/assets/ ; Astro produit les fichiers téléchargeables au build.
JSON · 1959–2022, juin à août
Distribution des maximales estivales
17 classes de 2 °C, effectifs et métadonnées de sélection.
Pour réutiliser ces exports, indiquez le producteur (Météo-France ou Cerema), la source liée ci-dessus, le millésime ou la période et les transformations : « Traitement SAE 303 — Nargis Ayyobi et Rahma Hamdi ». La Licence Ouverte 2.0 permet la réutilisation avec attribution.
Notre travail sur Observable
Retrouver notre travail sur Observable
Le notebook rassemble l’exploration, les traitements JavaScript, les visualisations, les choix méthodologiques et le journal détaillé d’utilisation de l’IA.
Nous avons utilisé ChatGPT pour nous aider à nettoyer les CSV, écrire et corriger le JavaScript dans Observable et améliorer les couleurs, les légendes et la lisibilité. Codex nous a ensuite accompagnées dans l’intégration Astro, les interactions, le responsive et les corrections du site.
Nous avons comparé les calculs aux fichiers sources et les projections aux données officielles de Climadiag. L’IA nous a aidées à avancer, mais la problématique, le choix des données et leur interprétation restent ceux de notre groupe. Le journal détaillé de cette utilisation se trouve dans le notebook.