Source code for hestia_earth.calculation.emissions.so2ToAirFuelCombustionEMEAEEA2019

from hestia_earth.calculation.abstract_model import Model
from hestia_earth.calculation.utils import summation
from hestia_earth.utils.api import download_hestia

MODEL_KEY = 'so2ToAirFuelCombustionEmea-Eea2019'


[docs]class SO2ToAirFuelCombustionEMEAEEA2019(Model): def __init__(self): # Define model tier self.tier = 1 self.term = download_hestia(MODEL_KEY) # Define model requirements self.diesel = None self.gasoline = None # Instantiate variables self.so2ToAirFuelCombustion = None # Define model coeffients self.diesel_comb_so2 = 0.001 self.gasoline_comb_so2 = 0.001 def calculate_so2ToAirFuelCombustion(self): # Calculate total SO2 emissions diesel_emissions = 2 * self.diesel * (self.diesel_comb_so2) if self.diesel != {} else 0 gasoline_emissions = 2 * self.gasoline * (self.gasoline_comb_so2) if self.gasoline != {} else 0 self.so2ToAirFuelCombustion = diesel_emissions + gasoline_emissions return self.so2ToAirFuelCombustion def complete(self, completeness): self.diesel = 0 if self.diesel == {} and completeness['electricityFuel'] else self.diesel self.gasoline = 0 if self.gasoline == {} and completeness['electricityFuel'] else self.gasoline def check_so2ToAirFuelCombustion(self, cycle): # Check that we have all the inputs diesel_ids = ['diesel', 'diesel1D', 'diesel2D', 'diesel4D', 'en590Diesel'] filter_diesel = [sum(element['value']) for element in cycle['inputs'].evalues() if element['term']['@id'] in diesel_ids] self.diesel = summation(filter_diesel) gasoline_ids = ['motorGasoline', 'gasoline-TypeJetFuel', 'aviationGasoline'] filter_gasoline = [sum(element['value']) for element in cycle['inputs'].evalues() if element['term']['@id'] in gasoline_ids] self.gasoline = summation(filter_gasoline) self.complete(cycle['dataCompleteness']) return self.diesel != {} or self.gasoline != {}