Source code for greenlang.calculations.ghg.scope_3.leased_assets

""" Upstream and Downstream Leased Assets calculation methods """

from ..base.base import BaseCalculationMethod
from .forms.leased_assets import (
    LeasedBuildingsAssetSpecificMethodForm,
    LeasedBuildingsAverageDataMethodForm,
)


[docs] class LeasedBuildingsAssetSpecificMethod(BaseCalculationMethod): """Leased Buildings - Asset Specific method""" @property def form_class(self): """Return form class.""" return LeasedBuildingsAssetSpecificMethodForm
[docs] def total_co2(self, collection_item): """Return total co2. Can not be used because there are 2 total_co2, one for scope 1 and one for scope 2. """ return 1
[docs] def compute(self, collection_item): """Compute.""" scope1_emissions = collection_item.widget_data["scope1_emissions"] scope2_emissions = collection_item.widget_data["scope2_emissions"] return self.amount(collection_item) * (scope1_emissions + scope2_emissions)
[docs] def explain(self, collection_item): """Return formula html.""" leased_ratio = ( collection_item.widget_data["total_floor_space"] / collection_item.widget_data["total_floor_space"] ) leased_ratio_per_year = ( leased_ratio * collection_item.widget_data["leased_month_count"] / 12 ) text = f"\ Total floor space = {collection_item.widget_data['total_floor_space']} m2<br>\ Leased floor space = {collection_item.widget_data['leased_floor_space']} m2<br>\ Leased month count = {collection_item.widget_data['leased_month_count']} months<br>\ Scope 1 emissions = {collection_item.widget_data['scope1_emissions']} kg CO2<br>\ Scope 2 emissions = {collection_item.widget_data['scope2_emissions']} kg CO<br>\ <br>\ " text += f""" Calculus : Leased ratio = Leased floor space / Total floor space = {collection_item.widget_data['leased_floor_space']} / {collection_item.widget_data['total_floor_space']} = {leased_ratio} m2<br> Leased ratio per year = Leased ratio * Leased month count / 12 = {leased_ratio} * collection_item.widget_data['leased_month_count'] / 12 = {leased_ratio_per_year} m2/year<br> Total Emissions = Leased ratio per year * (Scope 1 emissions + Scope 2 emissions) = {leased_ratio_per_year} * ({collection_item.widget_data['scope1_emissions']} + {collection_item.widget_data['scope2_emissions']}) = {self.compute(collection_item)} kg CO2 <br> """ return text
[docs] class LeasedBuildingsAverageDataMethod(BaseCalculationMethod): """Leased Buildings - Average-data method""" @property def form_class(self): """Return form class.""" return LeasedBuildingsAverageDataMethodForm
[docs] def compute(self, collection_item): """Compute.""" leased_month_count = collection_item.widget_data["leased_month_count"] return super().compute(collection_item) * leased_month_count / 12
[docs] class LeasedVehiclesFuelAmountMethod(BaseCalculationMethod): """Leased Vehicles - Fuel Amount method"""
[docs] class LeasedVehiclesVehicleTypeMethod(BaseCalculationMethod): """Leased Vehicles - Vehicle Type method"""