add stats page

This commit is contained in:
Tykayn 2025-05-02 12:09:40 +02:00 committed by tykayn
parent fca7661ad8
commit 8c6dbae3e6
5 changed files with 108 additions and 8 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 330 KiB

View file

@ -1,34 +1,71 @@
// source https://www.edf.fr/groupe-edf/comprendre/electricite-au-quotidien/usages/consommation-electricite-en-chiffres
const france_twh = 460
// source baromètre avere
const irve_monthly_consumption_gwh = 69
// info vue je ne sais plus où pour l'avere
const stations_avere = 40000
fetch('./js/stats.json')
.then(response => response.json())
.then(stats => {
annual_consumption_gwh = compute_annual_consumption_gwh(irve_monthly_consumption_gwh, france_twh)
// import * as stats from './stats.json' assert { type: 'json' };
console.log(stats);
document.getElementById('countStationsOSM').textContent = formatSpaceSeparator(stats.countStationsOSM);
document.getElementById('countStationsOpenData').textContent = formatSpaceSeparator(stats.countStationsOpenData);
document.getElementById('countStationsAVERE').textContent = formatSpaceSeparator(40000);
document.getElementById('countStationsOpenData').textContent = formatSpaceSeparator(stats.count_unique_id_station_itinerance);
document.getElementById('countStationsAVERE').textContent = formatSpaceSeparator(stations_avere);
document.getElementById('countPointsDeChargeAVERE').textContent = formatSpaceSeparator(stats.countStationsAVERE);
document.getElementById('countPointsDeChargeOSM').textContent = formatSpaceSeparator(stats.countPointsDeChargeOSM);
document.getElementById('countPointsDeChargeOpenData').textContent = formatSpaceSeparator(stats.countPointsDeChargeOpenData);
document.getElementById('dateGeneration').textContent = stats.dateGeneration;
france_twh = 500
irve_monthly_consumption_gwh = 69
annual_consumption_gwh = compute_annual_consumption_gwh(irve_monthly_consumption_gwh, france_twh)
proportion_annual_consumption_gwh = compute_proportion_annual_consumption_gwh(annual_consumption_gwh, stats.countStationsAVERE)
stats.proportion_annual_consumption_gwh = proportion_annual_consumption_gwh;
console.log('estimation de la consommation annuelle des stations de recharge en France', annual_consumption_gwh, 'GWh sur ', france_twh * 1000, 'GWh')
console.log('proportion de la consommation annuelle par borne', proportion_annual_consumption_gwh)
// document.addEventListener('DOMContentLoaded', () => {
makeComparaisonAnalyse(stats);
// });
})
.catch(error => {
console.error('Erreur lors du chargement du fichier stats.json:', error);
});
function makeComparaisonAnalyse(stats) {
annual_consumption_gwh = compute_annual_consumption_gwh(irve_monthly_consumption_gwh, france_twh)
let analyse = document.getElementById('analyse_comparaison');
if (analyse) {
analyse.textContent = 'La consommation annuelle des stations de recharge en France est de ' + formatSpaceSeparator(annual_consumption_gwh) + 'GWh sur ' + formatSpaceSeparator(france_twh * 1000) + 'GWh. Soit ' + formatSpaceSeparator(stats.proportion_annual_consumption_gwh) + '% de la consommation annuelle en électricité de la France.';
let manqueOSM = stations_avere - stats.countStationsOSM;
let pourcentageManquant = ((manqueOSM / stations_avere) * 100).toFixed(1);
// let manquePointsDeChargeOSM = stats.countStationsOpenData - stats.countPointsDeChargeOSM;
// let pourcentagePointsDeChargeManquant = ((manquePointsDeChargeOSM / stats.countStationsOpenData) * 100).toFixed(1);
// analyse.innerHTML += `<br/> Il manque ${formatSpaceSeparator(manquePointsDeChargeOSM)} points de charge dans OSM par rapport aux données de l'OpenData, soit ${pourcentagePointsDeChargeManquant}% des points de charge.`;
analyse.innerHTML += `<br/> Il manque ${formatSpaceSeparator(manqueOSM)} stations dans OSM par rapport aux données de l'AVERE, soit ${pourcentageManquant}% des stations et de points de charge.`;
}
}
function compute_annual_consumption_gwh(irve_monthly_consumption_gwh, france_twh) {
return irve_monthly_consumption_gwh * 12 * france_twh;
return irve_monthly_consumption_gwh * 12;
}
function compute_proportion_annual_consumption_gwh(annual_consumption_gwh, countStationsAVERE) {
@ -38,4 +75,4 @@ function compute_proportion_annual_consumption_gwh(annual_consumption_gwh, count
function formatSpaceSeparator(number) {
return number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, " ");
}
}

View file

@ -24,6 +24,10 @@
<img class="icon-img" src="img/prise-de-courant.png" alt="prise"> Statistiques de
<a href="/">Libre Charge Map</a> 📊
</h1>
<p>
Ces nombres sont des estimations concernant les données OSM, ce qui est compté comme station ou point de charge est
en partie non distingué par les personnes qui contribuent aux données.
</p>
<p>
Mise à jour le <span id="dateGeneration"></span>
</p>
@ -31,6 +35,7 @@
<div>
<div class="stats-item">
<h2>Nombre de bornes de recharges en France</h2>
<p id="analyse_comparaison"></p>
<h3>Dans OSM:</h3>
<div class="pair">
@ -44,6 +49,7 @@
<p id="countPointsDeChargeOSM" class="text-right counter"></p>
</div>
<hr>
<h3>Dans L'OpenData de DataGouv:</h3>
<div class="pair">
@ -57,8 +63,10 @@
<p id="countPointsDeChargeOpenData" class="text-right counter"></p>
</div>
<hr>
<h3>Sur le site de l'AVERE:</h3>
<p>Nombre de stations</p>
<p class="description">Info introuvable sur le site de l'AVERE</p>
<p id="countStationsAVERE" class="text-right counter"></p>
<p>Nombre de points de charge</p>
<p id="countPointsDeChargeAVERE" class="text-right counter"></p>
@ -66,18 +74,65 @@
</div>
<div class="stats-item">
<h2>Répartition par type de borne</h2>
<img src="img/avere_repartition_puissance_nominale.png"
<p class="description">
Environ un cinquième des points de charge est de la recharge réellement rapide, proposant 50kW ou plus. Ce qui
permet de faire une recharge de 26kWh en moins de 30 minutes. Les bornes installées depuis 2024 sont
principalement plus rapides et permettent de faire des pauses entre 4 et 15 minutes pour faire 2h d'autoroute,
jusqu'à la prochaine pause.
</p>
<p>Selon les données OSM</p>
<img style="max-width: 95vw;" src="/img/repartition_puissance_bornes.png"
alt="répartition des bornes de recharge par puissance nominale">
<p>Selon le baromètre de l'AVERE</p>
<img style="max-width: 95vw;" src="img/avere_repartition_puissance_nominale.png"
alt="répartition des bornes de recharge par puissance nominale">
<p id="repartitionTypeBorne"></p>
</div>
<div class="stats-item"></div>
<h2>Issues Osmose</h2>
<p>Nombre de stations à intégrer</p>
<p id="issuesOsmose">
<img src="https://osmose.openstreetmap.fr/en/issues/graph.png?item=8410
" alt="graphique issues charging station">
</p>
<p class="description">Osmose détecte près de 27 000 stations manquantes dans OSM.</p>
</div>
<h3>Électricité en France</h3>
<img style="width: 95vw;" src="/img/edfgroupe_comprendre_consommation_repartition_1066x595.png"
alt="électricité en France">
</div>
<h2>
Sources
</h2>
<ul>
<li>
Osmose : <a href="https://osmose.openstreetmap.fr/en/issues/graph.png?item=8410">
https://osmose.openstreetmap.fr/en/issues/graph.png?item=8410
</a>
</li>
<li>
Avere : <a href="https://barometre.avere.fr/"> https://barometre.avere.fr/ </a>
</li>
<li>
EDF : <a
href="https://www.edf.fr/groupe-edf/comprendre/electricite-au-quotidien/usages/consommation-electricite-en-chiffres">
https://www.edf.fr/groupe-edf/comprendre/electricite-au-quotidien/usages/consommation-electricite-en-chiffres
</a>
</li>
<li>
Transports: <a href="https://www.statistiques.developpement-durable.gouv.fr/bilan-annuel-des-transports-en-2023">
https://www.statistiques.developpement-durable.gouv.fr/bilan-annuel-des-transports-en-2023
</a>
</li>
<li>
Libre Charge Map : <a href="https://libre-charge-map.cipherbliss.com/">
https://libre-charge-map.cipherbliss.com/
</a>
</li>
</ul>
</body>
</html>

View file

@ -20,4 +20,12 @@
display: flex;
justify-content: space-between;
}
img {
width: 95vw;
}
.description {
color: #555;
}
}