#region Chargement des packages
import sys
import os
if os.path.basename(os.getcwd())=='Prospective_conso':
sys.path.append('../../')
from functions.f_notebook import hide_toggle
import pandas as pd
from functions.f_tools import *
from functions.f_graphicalTools import *
from Models.Prospective_conso.f_evolution_tools import *
# import qgrid # great package https://github.com/quantopian/qgrid
from mycolorpy import colorlist as mcp
import numpy as np
import time
from functools import partial
dpe_colors = ['#009900', '#33cc33', '#B3FF00', '#e6e600', '#FFB300', '#FF4D00', '#FF0000',"#000000"]
Graphic_folder = "Graphics/"
Data_folder = "data/"
#endregion
This is notebook Evolution_Transport_2D.ipynb from Models/Prospective_conso
#region chargement des données voyageurs
start = time.process_time()
dim_names=["Categorie","year","Vecteur"];
Index_names = ["Categorie"];Energy_system_name="Categorie"
data_set_from_excel = pd.read_excel(Data_folder+"Hypotheses_Transport_1D.xlsx", None);
sim_param = extract_sim_param(data_set_from_excel,Index_names = Index_names,dim_names=dim_names,Energy_system_name=Energy_system_name)
sim_param["init_sim_stock"]=create_initial_parc(sim_param).sort_index()
sim_param["volume_variable_name"] = "Mds_voy_km"
sim_param["retrofit_improvement"]=pd.DataFrame([sim_param["retrofit_improvement"]]*len(sim_param['base_index_year']),index =sim_param['base_index_year'])[0]
Para_2_fill = {param : sim_param["base_index_year"] for param in ["retrofit_change_Mds_voy_km","retrofit_Transition"]}
sim_param = interpolate_sim_param(sim_param)
sim_param["retrofit_change_Mds_voy_km"]=sim_param["retrofit_change_total_proportion_Mds_voy_km"].diff().fillna(0)
sim_param = complete_parameters(sim_param,Para_2_fill=Para_2_fill)
sim_param["retrofit_change_Mds_voy_km"]=sim_param["retrofit_change_Mds_voy_km"]*sim_param["init_sim_stock"]["Mds_voy_km"]
#sim_param["init_sim_stock"]["energy_need_per_Mds_voy_km"] = sim_param["init_sim_stock"].apply(
# lambda x: 1 /(100*x["remplissage"]), axis=1).fillna(0)
sim_param=set_model_functions_simple(sim_param)
sim_param["retrofit_Transition"]=sim_param["retrofit_Transition"].fillna(0)
sim_param_voyageurs = sim_param
end = time.process_time()
print("Chargement des données, des modèles et interpolation terminés en : "+str(end-start)+" secondes")
#endregion
Chargement des données, des modèles et interpolation terminés en : 0.48995000000000033 secondes
modifiez directement le fichier de données d'entrées, située dans le dossier data. Vous pouvez modifier le fichier "Hypotheses_Transport_Fret_1D_variable.xlsx" pour faire varier les inputs (et garder le fichier original comme référence).
#region chargement des données fret
start = time.process_time()
dim_names=["Categorie","year","Vecteur"];
Index_names = ["Categorie"];Energy_system_name="Categorie"
data_set_from_excel = pd.read_excel(Data_folder+"Hypotheses_Transport_Fret_1D.xlsx", None);
sim_param = extract_sim_param(data_set_from_excel,Index_names = Index_names,dim_names=dim_names,Energy_system_name=Energy_system_name)
sim_param["init_sim_stock"]=create_initial_parc(sim_param).sort_index()
sim_param["volume_variable_name"] = "Mds_t_km"
sim_param["retrofit_improvement"]=pd.DataFrame([sim_param["retrofit_improvement"]]*len(sim_param['base_index_year']),index =sim_param['base_index_year'])[0]
Para_2_fill = {param : sim_param["base_index_year"] for param in ["retrofit_change_Mds_t_km","retrofit_Transition"]}
sim_param = interpolate_sim_param(sim_param)
sim_param["retrofit_change_Mds_t_km"]=sim_param["retrofit_change_total_proportion_Mds_t_km"].diff().fillna(0)
sim_param = complete_parameters(sim_param,Para_2_fill=Para_2_fill)
sim_param["retrofit_change_Mds_t_km"]=sim_param["retrofit_change_Mds_t_km"]*sim_param["init_sim_stock"]["Mds_t_km"]
#sim_param["init_sim_stock"]["energy_need_per_Mds_t_km"] = sim_param["init_sim_stock"].apply(lambda x: 1 /(100), axis=1).fillna(0)
sim_param=set_model_functions_simple(sim_param)
sim_param["retrofit_Transition"]=sim_param["retrofit_Transition"].fillna(0)
sim_param_fret = sim_param
end = time.process_time()
print("Chargement des données, des modèles et interpolation terminés en : "+str(end-start)+" secondes")
#endregion
Chargement des données, des modèles et interpolation terminés en : 0.23768400000000023 secondes
#region simulation
sim_stock_voyageurs = launch_simulation(sim_param_voyageurs)
sim_stock_df_voyageurs = pd.concat(sim_stock_voyageurs, axis=0).reset_index().\
rename(columns={"level_0":"year"}).set_index([ "year" , Energy_system_name , "old_new"])
sim_stock_fret = launch_simulation(sim_param_fret)
sim_stock_df_fret = pd.concat(sim_stock_fret, axis=0).reset_index().\
rename(columns={"level_0":"year"}).set_index([ "year" , Energy_system_name , "old_new"])
sim_stock_df = pd.concat([sim_stock_df_voyageurs,sim_stock_df_fret])
#endregion
Computing: [########################################] 30/30 Computing: [########################################] 30/30
### categories pour avoir des groupes de couleurs dans les graphiques
col_class_dict={'Bus et cars GNV' : 1, 'Bus et cars H2':1, 'Bus et cars diesel':1, 'Bus et cars électrique':1,
'Rail court':2, 'Rail long':2, 'Camion fret' : 2,'camion fret H2' : 2,
'VP GNV':3, 'VP fuel':3, 'VP électrique':3,
'VUL GNV':4, 'VUL fuel':4, 'VUL électrique':4,
'aerien_international':5, 'aerien_interne':5, 'aerien_outre_mer':5,
'deux roues diesel':6, 'deux roues électrique':6,
'Avion fret international': 7, 'Bateau fret international': 7,'Train fret':7}
import plotly.express as px
Var = "Conso"
y_df = sim_stock_df.loc[(2021,slice(None),slice(None))].groupby([Energy_system_name])[Var].sum().to_frame().reset_index()
#y_df.loc[:,"Categorie"]=pd.MultiIndex.from_tuples([(str(col_class_dict[key]),key) for key in y_df.Categorie])
color_dict = gen_grouped_color_map(col_class_dict)
y_df["class"]=[col_class_dict[cat] for cat in y_df["Categorie"]]
y_df=y_df.sort_values(by=['class'])
fig = px.bar(y_df,x="class", y=Var, color="Categorie", title="Wide-Form Input",color_discrete_map=color_dict)
fig=fig.update_layout(title_text="Conso énergie finale par mode de transport (en TWh)", xaxis_title="Categorie",yaxis_title="Conso [TWh]")
fig.show()
Var = "emissions"
y_df = sim_stock_df.loc[(2021,slice(None),slice(None))].groupby([Energy_system_name])[Var].sum().to_frame().reset_index()
#y_df.loc[:,"Categorie"]=pd.MultiIndex.from_tuples([(str(col_class_dict[key]),key) for key in y_df.Categorie])
color_dict = gen_grouped_color_map(col_class_dict)
y_df["class"]=[col_class_dict[cat] for cat in y_df["Categorie"]]
y_df=y_df.sort_values(by=['class'])
fig = px.bar(y_df,x="class", y=Var, color="Categorie", title="Wide-Form Input",color_discrete_map=color_dict)
fig=fig.update_layout(title_text="Emissions par mode de transport (en MTCO2)", xaxis_title="Categorie",yaxis_title="Emissions [MTCO2]")
fig.show()
#region représentations graphiques
Var = "Conso"
y_df = sim_stock_df.groupby(["year",Energy_system_name])[Var].sum().to_frame().reset_index().\
pivot(index=['year'], columns=Energy_system_name).loc[[year for year in sim_param["years"][1:]],Var]
y_df.columns=pd.MultiIndex.from_tuples([(str(col_class_dict[key]),key) for key in y_df.columns])
fig = MyStackedPlotly(y_df=y_df)
fig=fig.update_layout(title_text="Conso énergie finale par mode de transport (en TWh)", xaxis_title="Année",yaxis_title="Conso [TWh]")
#plotly.offline.plot(fig, filename=Graphic_folder+'file.html') ## offline
fig.show()
#endregion
Var = "emissions"
y_df = sim_stock_df.groupby(["year",Energy_system_name])[Var].sum().to_frame().reset_index().\
pivot(index=['year'], columns=Energy_system_name).loc[[year for year in sim_param["years"][1:]],Var]/10**3
y_df.columns=pd.MultiIndex.from_tuples([(str(col_class_dict[key]),key) for key in y_df.columns])
fig = MyStackedPlotly(y_df=y_df)
fig=fig.update_layout(title_text="Emissions de GES par mode de transport (en MtCO2e)", xaxis_title="Année",yaxis_title="Conso [MtCO2e]")
#plotly.offline.plot(fig, filename=Graphic_folder+'file.html') ## offline
fig.show()
y_df = sim_stock_df.groupby(["year"])[[ 'conso_'+Vecteur for Vecteur in sim_param["Vecteurs"]]].sum().loc[[year for year in sim_param["years"][1:]],:]
fig = MyStackedPlotly(y_df=y_df)
fig=fig.update_layout(title_text="Conso énergie finale par vecteur (en TWh)", xaxis_title="Année",yaxis_title="Conso [TWh]")
#plotly.offline.plot(fig, filename=Graphic_folder+'file.html') ## offline
fig.show()
y_df = sim_stock_df.groupby(["year"])[[ 'emissions_'+Vecteur for Vecteur in sim_param["Vecteurs"]]].sum().loc[[year for year in sim_param["years"][1:]],:]/10**3
fig = MyStackedPlotly(y_df=y_df)
fig=fig.update_layout(title_text="Emissions par vecteur [MT CO2]", xaxis_title="Année",yaxis_title="CO2 [MT]")
#plotly.offline.plot(fig, filename=Graphic_folder+'file.html') ## offline
fig.show()
Guide très complet du gouvernement donne les consommations et les émissions pour toutes les sortes de transports et les analyses qui permettent d'obtenir ces valeurs.
Les chiffres clés du transport du SDES
Etude Prospective de France stratégie février 2022
Etude prospective de l'ADEME "transition 2050" le transport est p172
Rapport parlementaire de 2021 Transport de marchandises face aux impératifs environnementaux
Un document du lobby de l'avition pas inintéressant. Le problème n'est pas l'inefficacité de l'avion mais la démesure du besoin de distance/vitesse.