File size: 5,861 Bytes
197f5ec
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
import streamlit as st
import ecologits
from src.utils import (
    format_energy_eq_electric_vehicle,
    format_energy_eq_electricity_consumption_ireland,
    format_energy_eq_electricity_production,
    format_energy_eq_physical_activity,
    format_gwp_eq_airplane_paris_nyc,
    format_gwp_eq_streaming,
    PhysicalActivity,
    EnergyProduction
)

############################################################################################################

def get_impacts(model, active_params, total_params, mix_ghg, mix_adpe, mix_pe):

    return 1

############################################################################################################


def display_impacts(impacts):

    st.divider()

    col_energy, col_ghg, col_adpe, col_pe, col_water = st.columns(5)

    with col_energy:
        st.markdown('<h4 align="center">⚡️ Energy</h4>', unsafe_allow_html = True)
        st.latex(f'\Large {impacts.energy.magnitude:.3g} \ \large {impacts.energy.units}')
        st.markdown(f'<p align="center"><i>Evaluates the electricity consumption<i></p>', unsafe_allow_html = True)

    with col_ghg:
        st.markdown('<h4 align="center">🌍️ GHG Emissions</h4>', unsafe_allow_html = True)
        st.latex(f'\Large {impacts.gwp.magnitude:.3g} \ \large {impacts.gwp.units}')
        st.markdown(f'<p align="center"><i>Evaluates the effect on global warming<i></p>', unsafe_allow_html = True)

    with col_adpe:
        st.markdown('<h4 align="center">🪨 Abiotic Resources</h4>', unsafe_allow_html = True)
        st.latex(f'\Large {impacts.adpe.magnitude:.3g} \ \large {impacts.adpe.units}')
        st.markdown(f'<p align="center"><i>Evaluates the use of metals and minerals<i></p>', unsafe_allow_html = True)

    with col_pe:
        st.markdown('<h4 align="center">⛽️ Primary Energy</h4>', unsafe_allow_html = True)
        st.latex(f'\Large {impacts.pe.magnitude:.3g} \ \large {impacts.pe.units}')
        st.markdown(f'<p align="center"><i>Evaluates the use of energy resources<i></p>', unsafe_allow_html = True)

    with col_water:
        st.markdown('<h4 align="center">🚰 Water</h4>', unsafe_allow_html = True)
        st.latex('\Large Upcoming...')
        st.markdown(f'<p align="center"><i>Evaluates the use of water<i></p>', unsafe_allow_html = True)

############################################################################################################

def display_equivalent(impacts):

    st.divider()

    ev_eq = format_energy_eq_electric_vehicle(impacts.energy)
    
    streaming_eq = format_gwp_eq_streaming(impacts.gwp)

    col1, col2, col3 = st.columns(3)

    with col1:
        physical_activity, distance = format_energy_eq_physical_activity(impacts.energy)
        if physical_activity == PhysicalActivity.WALKING:
            physical_activity = "🚶 " + physical_activity.capitalize()
        if physical_activity == PhysicalActivity.RUNNING:
            physical_activity = "🏃 " + physical_activity.capitalize()

        st.markdown(f'<h4 align="center">{physical_activity}</h4>', unsafe_allow_html = True)
        st.latex(f'\Large {distance.magnitude:.3g} \ \large {distance.units}')
        st.markdown(f'<p align="center"><i>Based on energy consumption<i></p>', unsafe_allow_html = True)

    with col2:
        ev_eq = format_energy_eq_electric_vehicle(impacts.energy)
        st.markdown(f'<h4 align="center">🔋 Electric Vehicle</h4>', unsafe_allow_html = True)
        st.latex(f'\Large {ev_eq.magnitude:.3g} \ \large {ev_eq.units}')
        st.markdown(f'<p align="center"><i>Based on energy consumption<i></p>', unsafe_allow_html = True)

    with col3:
        streaming_eq = format_gwp_eq_streaming(impacts.gwp)
        st.markdown(f'<h4 align="center">⏯️ Streaming</h4>', unsafe_allow_html = True)
        st.latex(f'\Large {streaming_eq.magnitude:.3g} \ \large {streaming_eq.units}')
        st.markdown(f'<p align="center"><i>Based on GHG emissions<i></p>', unsafe_allow_html = True)
    
    st.divider()
    
    st.markdown('<h3 align="center">What if 1% of the planet does this request everyday for 1 year ?</h3>', unsafe_allow_html = True)
    st.markdown('<p align="center">If this use case is largely deployed around the world, the equivalent impacts would be the impacts of this request x 1% of 8 billion people x 365 days in a year.</p>', unsafe_allow_html = True)

    col4, col5, col6 = st.columns(3)

    with col4:

        electricity_production, count = format_energy_eq_electricity_production(impacts.energy)
        if electricity_production == EnergyProduction.NUCLEAR:
            emoji = "☢️"
            name = "Nuclear power plants"
        if electricity_production == EnergyProduction.WIND:
            emoji = "💨️ "
            name = "Wind turbines"
        st.markdown(f'<h4 align="center">{emoji} {count.magnitude:.0f} {name} (yearly)</h4>', unsafe_allow_html = True)
        st.markdown(f'<p align="center"><i>Based on energy consumption<i></p>', unsafe_allow_html = True)
        
    with col5:
        ireland_count = format_energy_eq_electricity_consumption_ireland(impacts.energy)
        st.markdown(f'<h4 align="center">🇮🇪 {ireland_count.magnitude:.3f} x Ireland <span style="font-size: 12px">(yearly ⚡️ cons.)</span></h2></h4>', unsafe_allow_html = True)
        st.markdown(f'<p align="center"><i>Based on energy consumption<i></p>', unsafe_allow_html = True)

    with col6:
        paris_nyc_airplane = format_gwp_eq_airplane_paris_nyc(impacts.gwp)
        st.markdown(f'<h4 align="center">✈️ {round(paris_nyc_airplane.magnitude):,} Paris ↔ NYC</h4>', unsafe_allow_html = True)
        st.markdown(f'<p align="center"><i>Based on GHG emissions<i></p>', unsafe_allow_html = True)