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('

⚡️ Energy

', unsafe_allow_html = True) st.latex(f'\Large {impacts.energy.magnitude:.3g} \ \large {impacts.energy.units}') st.markdown(f'

Evaluates the electricity consumption

', unsafe_allow_html = True) with col_ghg: st.markdown('

🌍️ GHG Emissions

', unsafe_allow_html = True) st.latex(f'\Large {impacts.gwp.magnitude:.3g} \ \large {impacts.gwp.units}') st.markdown(f'

Evaluates the effect on global warming

', unsafe_allow_html = True) with col_adpe: st.markdown('

🪨 Abiotic Resources

', unsafe_allow_html = True) st.latex(f'\Large {impacts.adpe.magnitude:.3g} \ \large {impacts.adpe.units}') st.markdown(f'

Evaluates the use of metals and minerals

', unsafe_allow_html = True) with col_pe: st.markdown('

⛽️ Primary Energy

', unsafe_allow_html = True) st.latex(f'\Large {impacts.pe.magnitude:.3g} \ \large {impacts.pe.units}') st.markdown(f'

Evaluates the use of energy resources

', unsafe_allow_html = True) with col_water: st.markdown('

🚰 Water

', unsafe_allow_html = True) st.latex('\Large Upcoming...') st.markdown(f'

Evaluates the use of water

', 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'

{physical_activity}

', unsafe_allow_html = True) st.latex(f'\Large {distance.magnitude:.3g} \ \large {distance.units}') st.markdown(f'

Based on energy consumption

', unsafe_allow_html = True) with col2: ev_eq = format_energy_eq_electric_vehicle(impacts.energy) st.markdown(f'

🔋 Electric Vehicle

', unsafe_allow_html = True) st.latex(f'\Large {ev_eq.magnitude:.3g} \ \large {ev_eq.units}') st.markdown(f'

Based on energy consumption

', unsafe_allow_html = True) with col3: streaming_eq = format_gwp_eq_streaming(impacts.gwp) st.markdown(f'

⏯️ Streaming

', unsafe_allow_html = True) st.latex(f'\Large {streaming_eq.magnitude:.3g} \ \large {streaming_eq.units}') st.markdown(f'

Based on GHG emissions

', unsafe_allow_html = True) st.divider() st.markdown('

What if 1% of the planet does this request everyday for 1 year ?

', unsafe_allow_html = True) st.markdown('

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.

', 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'

{emoji} {count.magnitude:.0f} {name} (yearly)

', unsafe_allow_html = True) st.markdown(f'

Based on energy consumption

', unsafe_allow_html = True) with col5: ireland_count = format_energy_eq_electricity_consumption_ireland(impacts.energy) st.markdown(f'

🇮🇪 {ireland_count.magnitude:.3f} x Ireland (yearly ⚡️ cons.)

', unsafe_allow_html = True) st.markdown(f'

Based on energy consumption

', unsafe_allow_html = True) with col6: paris_nyc_airplane = format_gwp_eq_airplane_paris_nyc(impacts.gwp) st.markdown(f'

✈️ {round(paris_nyc_airplane.magnitude):,} Paris ↔ NYC

', unsafe_allow_html = True) st.markdown(f'

Based on GHG emissions

', unsafe_allow_html = True)