carolinejean-pierre commited on
Commit
4a27959
·
1 Parent(s): 291e05e

Update functions to add range values

Browse files
Files changed (1) hide show
  1. src/utils.py +75 -33
src/utils.py CHANGED
@@ -5,6 +5,9 @@ from ecologits.model_repository import models
5
  from ecologits.impacts.modeling import Impacts, Energy, GWP, ADPe, PE
6
  #from ecologits.tracers.utils import llm_impacts
7
  from pint import UnitRegistry, Quantity
 
 
 
8
 
9
  #####################################################################################
10
  ### UNITS DEFINITION
@@ -32,9 +35,17 @@ q = u.Quantity
32
  @dataclass
33
  class QImpacts:
34
  energy: Quantity
 
 
35
  gwp: Quantity
 
 
36
  adpe: Quantity
 
 
37
  pe: Quantity
 
 
38
 
39
 
40
  class PhysicalActivity(str, Enum):
@@ -95,46 +106,75 @@ AIRPLANE_PARIS_NYC_GWP_EQ = q("177000 kgCO2eq")
95
  #####################################################################################
96
 
97
  def format_energy(energy: Energy) -> Quantity:
98
- val = q(energy.value, energy.unit)
99
- if val < q("1 kWh"):
100
- val = val.to("Wh")
101
- return val
 
 
 
 
 
 
 
 
102
 
103
  def format_gwp(gwp: GWP) -> Quantity:
104
- val = q(gwp.value, gwp.unit)
105
- if val < q("1 kgCO2eq"):
106
- val = val.to("gCO2eq")
107
- return val
 
 
 
 
 
 
 
 
108
 
109
  def format_adpe(adpe: ADPe) -> Quantity:
110
- return q(adpe.value, adpe.unit)
 
 
 
 
 
111
 
112
  def format_pe(pe: PE) -> Quantity:
113
- val = q(pe.value, pe.unit)
114
- if val < q("1 MJ"):
115
- val = val.to("kJ")
116
- return val
117
 
118
- def format_impacts(impacts: Impacts) -> QImpacts:
 
 
 
 
 
 
 
 
 
119
 
120
- try:
121
- impacts.energy.value = (impacts.energy.value.max + impacts.energy.value.min)/2
122
- impacts.gwp.value = (impacts.gwp.value.max + impacts.gwp.value.min)/2
123
- impacts.adpe.value = (impacts.adpe.value.max + impacts.adpe.value.min)/2
124
- impacts.pe.value = (impacts.pe.value.max + impacts.pe.value.min)/2
125
- return QImpacts(
126
- energy=format_energy(impacts.energy),
127
- gwp=format_gwp(impacts.gwp),
128
- adpe=format_adpe(impacts.adpe),
129
- pe=format_pe(impacts.pe)
130
- ), impacts.usage, impacts.embodied
131
- except: #when no range
132
- return QImpacts(
133
- energy=format_energy(impacts.energy),
134
- gwp=format_gwp(impacts.gwp),
135
- adpe=format_adpe(impacts.adpe),
136
- pe=format_pe(impacts.pe)
137
- ), impacts.usage, impacts.embodied
 
 
 
138
 
139
  def split_impacts_u_e(impacts: Impacts) -> QImpacts:
140
  return impacts.usage, impacts.embodied
@@ -216,4 +256,6 @@ def format_energy_eq_electricity_consumption_ireland(energy: Quantity) -> Quanti
216
  def format_gwp_eq_airplane_paris_nyc(gwp: Quantity) -> Quantity:
217
  gwp_eq = gwp * ONE_PERCENT_WORLD_POPULATION * DAYS_IN_YEAR
218
  gwp_eq = gwp_eq.to("kgCO2eq")
219
- return gwp_eq / AIRPLANE_PARIS_NYC_GWP_EQ####################################################################################### MODELS PARAMETER####################################################################################
 
 
 
5
  from ecologits.impacts.modeling import Impacts, Energy, GWP, ADPe, PE
6
  #from ecologits.tracers.utils import llm_impacts
7
  from pint import UnitRegistry, Quantity
8
+ import streamlit as st
9
+ import plotly.express as px
10
+ import plotly.graph_objects as go
11
 
12
  #####################################################################################
13
  ### UNITS DEFINITION
 
35
  @dataclass
36
  class QImpacts:
37
  energy: Quantity
38
+ energy_min : Quantity
39
+ energy_max : Quantity
40
  gwp: Quantity
41
+ gwp_min : Quantity
42
+ gwp_max : Quantity
43
  adpe: Quantity
44
+ adpe_min : Quantity
45
+ adpe_max : Quantity
46
  pe: Quantity
47
+ pe_min : Quantity
48
+ pe_max : Quantity
49
 
50
 
51
  class PhysicalActivity(str, Enum):
 
106
  #####################################################################################
107
 
108
  def format_energy(energy: Energy) -> Quantity:
109
+
110
+ val_min = q(energy.value.min, energy.unit)
111
+ val_max = q(energy.value.max, energy.unit)
112
+ val_mean = (val_min + val_max)/2
113
+
114
+ if val_max < q("1 kWh"):
115
+ val_min = val_min.to("Wh")
116
+ val_max = val_max.to("Wh")
117
+ val_mean = val_mean.to("Wh")
118
+
119
+ return val_mean, val_min, val_max
120
+
121
 
122
  def format_gwp(gwp: GWP) -> Quantity:
123
+
124
+ val_min = q(gwp.value.min, gwp.unit)
125
+ val_max =q(gwp.value.max, gwp.unit)
126
+ val_mean = (val_min + val_max)/2
127
+
128
+ if val_max < q("1 kgCO2eq"):
129
+ val_min = val_min.to("gCO2eq")
130
+ val_max = val_max.to("gCO2eq")
131
+ val_mean = val_mean.to("gCO2eq")
132
+
133
+ return val_mean, val_min, val_max
134
+
135
 
136
  def format_adpe(adpe: ADPe) -> Quantity:
137
+
138
+ val_min = q(adpe.value.min, adpe.unit)
139
+ val_max = q(adpe.value.max, adpe.unit)
140
+ val_mean = (val_min + val_max)/2
141
+ return val_mean, val_min, val_max
142
+
143
 
144
  def format_pe(pe: PE) -> Quantity:
 
 
 
 
145
 
146
+ val_min = q(pe.value.min, pe.unit)
147
+ val_max = q(pe.value.max, pe.unit)
148
+ val_mean = (val_min + val_max)/2
149
+
150
+ if val_max < q("1 MJ"):
151
+ val_min = val_min.to("kJ")
152
+ val_max = val_max.to("kJ")
153
+ val_mean = val_mean.to("kJ")
154
+
155
+ return val_mean, val_min, val_max
156
 
157
+
158
+ def format_impacts(impacts: Impacts) -> QImpacts:
159
+ energy, energy_min, energy_max = format_energy(impacts.energy)
160
+ gwp, gwp_min, gwp_max = format_gwp(impacts.gwp)
161
+ adpe, adpe_min, adpe_max = format_adpe(impacts.adpe)
162
+ pe, pe_min, pe_max = format_pe(impacts.pe)
163
+ return QImpacts(
164
+ energy= energy,
165
+ energy_min=energy_min,
166
+ energy_max=energy_max,
167
+ gwp = gwp,
168
+ gwp_min = gwp_min,
169
+ gwp_max = gwp_max,
170
+ adpe = adpe,
171
+ adpe_min = adpe_min,
172
+ adpe_max = adpe_max,
173
+ pe = pe,
174
+ pe_min = pe_min,
175
+ pe_max = pe_max
176
+ ), impacts.usage, impacts.embodied
177
+
178
 
179
  def split_impacts_u_e(impacts: Impacts) -> QImpacts:
180
  return impacts.usage, impacts.embodied
 
256
  def format_gwp_eq_airplane_paris_nyc(gwp: Quantity) -> Quantity:
257
  gwp_eq = gwp * ONE_PERCENT_WORLD_POPULATION * DAYS_IN_YEAR
258
  gwp_eq = gwp_eq.to("kgCO2eq")
259
+ return gwp_eq / AIRPLANE_PARIS_NYC_GWP_EQ####################################################################################### MODELS PARAMETER####################################################################################
260
+
261
+