Source code for energia.library.components

"""Library of elements"""

from __future__ import annotations

from typing import TYPE_CHECKING

from ..components.commodities.currency import Currency
from ..components.impact.categories import Environ
from ..components.measure.unit import Unit

# from ..components.temporal.scales import TemporalScales

if TYPE_CHECKING:
    from ..represent.model import Model


[docs] def time_units(model: Model): """Time units""" model.TemporalScales([1, 365, 24, 60, 60], ["y", "d", "h", "min", "s"])
[docs] def si_units(model: Model): """SI units""" # Base units model.m = Unit(label="m") # meter model.kg = Unit(label="kg") # kilogram model.km = 1000 * model.m # kilometer # Derived units model.kW = 1000 * Unit(label="W") # kilowatt model.MW = 1000 * model.kW # megawatt model.GW = 1000 * model.MW # gigawatt model.J = Unit(label="J") # joule model.kJ = 1000 * model.J # kilojoule model.MJ = 1000 * model.kJ # megajoule model.siunits_set = True
[docs] def misc_units(model: Model): """Miscellaneous units""" if not model.siunits_set: si_units(model) model.L = 0.001 * Unit(label="m^3") # liter model.gallon = 3.78541 * model.L # gallon model.barrel = 158.987 * model.L # barrel model.mmbtu = 1.055e9 * model.J # million british thermal unit model.ton = 1000 * model.kg # tonne model.mile = 1.60934 * Unit(label="mile") # miles model.PJ = 1e15 * model.J # petajoule model.GJ = 1e9 * model.J # gigajoule
[docs] def env_indicators(model): """Load default indicators""" model.GWP = Environ(label="Global Warming Potential (kg CO2)") model.ODP = Environ(label="Ozone Depletion Potential (CFC-11 eq") model.AP = Environ(label="Acidification Potential (kg SO2)") model.EP = Environ(label="Eutrophication Potential (kg PO4)") model.POCP = Environ(label="Photochemical Ozone Creation Potential (kg C2H4)") model.HTP = Environ(label="Human Toxicity Potential (kg 1,4-DCB)") model.ETP = Environ(label="Ecotoxicity Potential (kg 1,4-DCB)") model.FFDP = Environ(label="Fossil Fuel Depletion Potential (kg oil)") model.MRDP = Environ(label="Mineral Resource Depletion Potential (kg resource)")
[docs] def currencies(model: Model): """Load default currencies citation -------- Triennial Central Bank Survey: Foreign Exchange Turnover in April 2022. Bank for International Settlements, 27 Oct. 2022, p. 12. Bank for International Settlements, https://www.bis.org/statistics/rpfx22_fx.pdf """ model.USD = Currency(label="U.S. Dollar") model.EUR = Currency(label="Euro") model.JPY = Currency(label="Japanese Yen") model.GBP = Currency(label="Pound Sterling") model.CNY = Currency(label="Renminbi") model.AUD = Currency(label="Australian Dollar") model.CAD = Currency(label="Canadian Dollar") model.CHF = Currency(label="Swiss Franc") model.HKD = Currency(label="Hong Kong Dollar") model.SGD = Currency(label="Singapore Dollar") model.SEK = Currency(label="Swedish Krona") model.KRW = Currency(label="South Korean Won") model.NOK = Currency(label="Norwegian Krone") model.NZD = Currency(label="New Zealand Dollar") model.INR = Currency(label="Indian Rupee") model.MXN = Currency(label="Mexican Peso") model.TWD = Currency(label="New Taiwan Dollar") model.ZAR = Currency(label="South African Rand") model.BRL = Currency(label="Brazilian Real") model.DKK = Currency(label="Danish Krone") model.PLN = Currency(label="Polish Złoty") model.THB = Currency(label="Thai Baht") model.ILS = Currency(label="Israeli New Shekel") model.IDR = Currency(label="Indonesian Rupiah") model.CZK = Currency(label="Czech Koruna") model.AED = Currency(label="UAE Dirham") model.TRY_ = Currency(label="Turkish Lira") # TRY is reserved in Python model.HUF = Currency(label="Hungarian Forint") model.CLP = Currency(label="Chilean Peso") model.SAR = Currency(label="Saudi Riyal") model.PHP = Currency(label="Philippine Peso") model.MYR = Currency(label="Malaysian Ringgit") model.COP = Currency(label="Colombian Peso") model.RUB = Currency(label="Russian Ruble") model.RON = Currency(label="Romanian Leu") model.PEN = Currency(label="Peruvian Sol")